From 03f8c504160e686394a6d2b8f8b7dffa324ab4a7 Mon Sep 17 00:00:00 2001 From: StevenDufresne Date: Mon, 18 Nov 2024 00:33:08 +0000 Subject: [PATCH 01/84] Squash merge try/release-page --- .../class-plugin-directory.php | 19 +- .../plugin-directory/class-plugin-release.php | 193 ++++++++++++ .../plugin-directory/class-template.php | 1 + .../build/blocks/archive-page/index.asset.php | 2 +- .../build/blocks/archive-page/index.js | 184 ++++++++++- .../category-navigation/index.asset.php | 2 +- .../build/blocks/category-navigation/index.js | 184 ++++++++++- .../build/blocks/filter-bar/index.asset.php | 2 +- .../build/blocks/filter-bar/index.js | 184 ++++++++++- .../build/blocks/front-page/index.asset.php | 2 +- .../build/blocks/front-page/index.js | 184 ++++++++++- .../build/blocks/plugin-card/index.asset.php | 2 +- .../build/blocks/plugin-card/index.js | 184 ++++++++++- .../build/blocks/plugin-card/view.asset.php | 2 +- .../build/blocks/plugin-card/view.js | 37 ++- .../build/blocks/release-changelog/block.json | 18 ++ .../blocks/release-changelog/index.asset.php | 1 + .../build/blocks/release-changelog/index.js | 298 ++++++++++++++++++ .../build/blocks/release-changelog/render.php | 4 + .../blocks/release-changelog/style-index.css | 4 + .../blocks/release-checks copy/block.json | 18 ++ .../release-checks copy/index.asset.php | 1 + .../build/blocks/release-checks copy/index.js | 298 ++++++++++++++++++ .../blocks/release-checks copy/render.php | 11 + .../release-checks copy/style-index.css | 4 + .../build/blocks/release-checks/block.json | 21 ++ .../blocks/release-checks/index.asset.php | 1 + .../build/blocks/release-checks/index.js | 298 ++++++++++++++++++ .../build/blocks/release-checks/render.php | 11 + .../blocks/release-checks/style-index.css | 4 + .../blocks/release-confirmation/block.json | 21 ++ .../release-confirmation/index.asset.php | 1 + .../blocks/release-confirmation/index.js | 298 ++++++++++++++++++ .../blocks/release-confirmation/render.php | 56 ++++ .../release-confirmation/style-index.css | 8 + .../blocks/release-status copy/block.json | 21 ++ .../release-status copy/index.asset.php | 1 + .../build/blocks/release-status copy/index.js | 298 ++++++++++++++++++ .../blocks/release-status copy/render.php | 16 + .../release-status copy/style-index.css | 11 + .../blocks/release-status-tab/block.json | 18 ++ .../blocks/release-status-tab/index.asset.php | 1 + .../build/blocks/release-status-tab/index.js | 298 ++++++++++++++++++ .../blocks/release-status-tab/render.php | 11 + .../blocks/release-status-tab/style-index.css | 4 + .../build/blocks/release-status/block.json | 21 ++ .../blocks/release-status/index.asset.php | 1 + .../build/blocks/release-status/index.js | 298 ++++++++++++++++++ .../build/blocks/release-status/render.php | 16 + .../blocks/release-status/style-index.css | 11 + .../build/blocks/releases/block.json | 18 ++ .../build/blocks/releases/index.asset.php | 1 + .../build/blocks/releases/index.js | 298 ++++++++++++++++++ .../build/blocks/releases/render.php | 53 ++++ .../build/blocks/releases/style-index.css | 9 + .../build/blocks/search-page/index.asset.php | 2 +- .../build/blocks/search-page/index.js | 184 ++++++++++- .../blocks/single-plugin/index.asset.php | 2 +- .../build/blocks/single-plugin/index.js | 184 ++++++++++- .../components/plugin/_plugin-release.scss | 21 ++ .../client/components/plugin/style.scss | 30 +- .../client/styles/components/_components.scss | 1 + .../pub/wporg-plugins-2024/css/style-rtl.css | 6 +- .../pub/wporg-plugins-2024/css/style.css | 6 +- .../pub/wporg-plugins-2024/functions.php | 4 + .../wporg-plugins-2024/parts/releases.html | 51 +++ .../patterns/releases-no-results.php | 15 + .../src/blocks/release-changelog/block.json | 18 ++ .../src/blocks/release-changelog/index.js | 28 ++ .../src/blocks/release-changelog/index.php | 22 ++ .../src/blocks/release-changelog/render.php | 4 + .../src/blocks/release-changelog/style.scss | 0 .../src/blocks/release-checks/block.json | 19 ++ .../src/blocks/release-checks/index.js | 28 ++ .../src/blocks/release-checks/index.php | 22 ++ .../src/blocks/release-checks/render.php | 26 ++ .../src/blocks/release-checks/style.scss | 0 .../blocks/release-confirmation/block.json | 19 ++ .../src/blocks/release-confirmation/index.js | 28 ++ .../src/blocks/release-confirmation/index.php | 22 ++ .../blocks/release-confirmation/render.php | 56 ++++ .../blocks/release-confirmation/style.scss | 3 + .../src/blocks/release-status/block.json | 19 ++ .../src/blocks/release-status/index.js | 28 ++ .../src/blocks/release-status/index.php | 22 ++ .../src/blocks/release-status/render.php | 16 + .../src/blocks/release-status/style.scss | 6 + .../src/blocks/releases/block.json | 18 ++ .../src/blocks/releases/index.js | 28 ++ .../src/blocks/releases/index.php | 22 ++ .../src/blocks/releases/render.php | 50 +++ .../src/blocks/releases/style.scss | 4 + .../themes/pub/wporg-plugins-2024/style.css | 2 +- .../template-parts/plugin-single.php | 25 +- 94 files changed, 4963 insertions(+), 41 deletions(-) create mode 100644 wordpress.org/public_html/wp-content/plugins/plugin-directory/class-plugin-release.php create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-changelog/block.json create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-changelog/index.asset.php create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-changelog/index.js create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-changelog/render.php create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-changelog/style-index.css create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks copy/block.json create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks copy/index.asset.php create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks copy/index.js create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks copy/render.php create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks copy/style-index.css create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks/block.json create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks/index.asset.php create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks/index.js create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks/render.php create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks/style-index.css create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-confirmation/block.json create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-confirmation/index.asset.php create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-confirmation/index.js create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-confirmation/render.php create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-confirmation/style-index.css create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status copy/block.json create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status copy/index.asset.php create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status copy/index.js create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status copy/render.php create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status copy/style-index.css create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status-tab/block.json create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status-tab/index.asset.php create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status-tab/index.js create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status-tab/render.php create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status-tab/style-index.css create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status/block.json create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status/index.asset.php create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status/index.js create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status/render.php create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status/style-index.css create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/releases/block.json create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/releases/index.asset.php create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/releases/index.js create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/releases/render.php create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/releases/style-index.css create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/client/components/plugin/_plugin-release.scss create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/parts/releases.html create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/patterns/releases-no-results.php create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-changelog/block.json create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-changelog/index.js create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-changelog/index.php create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-changelog/render.php create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-changelog/style.scss create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-checks/block.json create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-checks/index.js create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-checks/index.php create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-checks/render.php create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-checks/style.scss create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-confirmation/block.json create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-confirmation/index.js create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-confirmation/index.php create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-confirmation/render.php create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-confirmation/style.scss create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-status/block.json create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-status/index.js create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-status/index.php create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-status/render.php create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-status/style.scss create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/releases/block.json create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/releases/index.js create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/releases/index.php create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/releases/render.php create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/releases/style.scss diff --git a/wordpress.org/public_html/wp-content/plugins/plugin-directory/class-plugin-directory.php b/wordpress.org/public_html/wp-content/plugins/plugin-directory/class-plugin-directory.php index ef7f4c6ca9..7e95c7ea2b 100644 --- a/wordpress.org/public_html/wp-content/plugins/plugin-directory/class-plugin-directory.php +++ b/wordpress.org/public_html/wp-content/plugins/plugin-directory/class-plugin-directory.php @@ -557,7 +557,7 @@ public function init() { // Add duplicate search rule which will be hit before the following old-plugin tab rules add_rewrite_rule( '^search/([^/]+)/?$', 'index.php?s=$matches[1]', 'top' ); - + // Add additional tags endpoint, to avoid being caught in old-plugins tab rules. See: https://meta.trac.wordpress.org/ticket/6819. add_rewrite_rule( '^tags/([^/]+)/?$', 'index.php?plugin_tags=$matches[1]', 'top' ); @@ -1735,9 +1735,15 @@ public static function get_releases( $plugin ) { $plugin = self::get_plugin_post( $plugin ); $releases = get_post_meta( $plugin->ID, 'releases', true ); - // Meta doesn't exist yet? Lets fill it out. + // Data doesn't exist yet? Lets fill it out. if ( false === $releases || ! is_array( $releases ) ) { - $releases = self::prefill_releses_meta( $plugin ); + $releases = self::prefill_releases_meta( $plugin ); + + // FIXME: limit creation of data while we're testing. Remove this for production. + // For now we'll mirror the releases postmeta into the CPT. If/when we're confident the behaviour is identical, we can remove the postmeta part. + if ( in_array( 'wordpressdotorg', Tools::get_plugin_committers( $plugin->ID ) ) ) { + Plugin_Release::instance()->update_releases( $plugin, $releases ); + } } /** @@ -1756,15 +1762,12 @@ public static function get_releases( $plugin ) { } /** - * Prefill the releases meta for a plugin. + * Prefill the releases meta items for a plugin. * * @param \WP_Post $plugin Plugin post object. * @return array */ - public static function prefill_releses_meta( $plugin ) { - if ( ! $plugin->releases ) { - update_post_meta( $plugin->ID, 'releases', [] ); - } + public static function prefill_releases_meta( $plugin ) { $tags = get_post_meta( $plugin->ID, 'tags', true ); if ( $tags ) { diff --git a/wordpress.org/public_html/wp-content/plugins/plugin-directory/class-plugin-release.php b/wordpress.org/public_html/wp-content/plugins/plugin-directory/class-plugin-release.php new file mode 100644 index 0000000000..737ca44a3e --- /dev/null +++ b/wordpress.org/public_html/wp-content/plugins/plugin-directory/class-plugin-release.php @@ -0,0 +1,193 @@ + array( + 'name' => __( 'Releases', 'wporg-plugins' ), + 'singular_name' => __( 'Release', 'wporg-plugins' ), + ), + 'public' => false, + 'show_ui' => false, + 'exclude_from_search' => true, + 'publicly_queryable' => false, + 'show_in_rest' => true, // FIXME: maybe? + 'supports' => array( 'title', 'editor' ), // TBD + 'rewrite' => false, + 'query_var' => false, + 'hierarchical' => false, // Disappointingly, this doesn't help us make a Post -> Release hierarchy. + ) ); + } + + // Starting point for an internal API, mostly copilot-generated. + + /** + * Get all releases for a plugin. + */ + public function get_releases( $plugin ) { + $plugin_id = ( get_post( $plugin ) )->ID; + + $releases = get_posts( array( + 'post_type' => 'plugin_release', + 'posts_per_page' => -1, + 'post_parent' => $plugin_id, + 'orderby' => 'date', + 'order' => 'DESC', + ) ); + + return $releases; + } + + /** + * Add release info for a plugin. + */ + public function add_release( $plugin, $release ) { + $plugin_id = ( get_post( $plugin ) )->ID; + + // Make sure we don't accidentally add junk from a sandbox while tinkering. + die( "Not yet ready for use" ); + + $release_date = date( 'Y-m-d H:i:s', strtotime( $tag['date'] ) ); + $committer_user_id = get_user_by( 'login', $tag['author'] )->ID; + if ( ! $committer_user_id ) { + return new WP_Error( 'invalid_committer', 'Invalid committer' ); + } + + $release_id = wp_insert_post( array( + 'post_type' => 'plugin_release', + 'post_title' => $release['version'], + 'post_parent' => $plugin_id, + 'post_status' => 'publish', + 'post_date' => $release_date, // And/or post_date_gmt? + // Mirrors the metadata. + 'meta_input' => array( + 'release_date' => $release['date'], + 'release_tag' => $release['tag'], + 'release_version' => $release['version'], + 'release_committer' => $release['committer'], + 'release_zips_built' => $release['zips_built'], + 'release_confirmations_required' => $release['confirmations_required'], + ), + // TODO: what else? Could store the changelog or other content at the point of release for comparison purposes. + ) ); + + return $release_id; + } + + /** + * Update existing release info. + */ + public function update_release( $release_id, $release ) { + // Make sure we don't accidentally add junk from a sandbox while tinkering. + die( "Not yet ready for use" ); + + $release_date = date( 'Y-m-d H:i:s', strtotime( $tag['date'] ) ); + $committer_user_id = get_user_by( 'login', $tag['author'] )->ID; + if ( ! $committer_user_id ) { + return new WP_Error( 'invalid_committer', 'Invalid committer' ); + } + + $release_id = wp_update_post( array( + 'ID' => $release_id, + 'post_type' => 'plugin_release', + 'post_title' => $release['version'], + 'post_parent' => $plugin_id, + 'post_status' => 'publish', + 'post_date' => $release_date, // And/or post_date_gmt? + // Mirrors the metadata. + 'meta_input' => array( + 'release_date' => $release['date'], + 'release_tag' => $release['tag'], + 'release_version' => $release['version'], + 'release_committer' => $release['committer'], + 'release_zips_built' => $release['zips_built'], + 'release_confirmations_required' => $release['confirmations_required'], + ), + // TODO: what else? Could store the changelog or other content at the point of release for comparison purposes. + ) ); + + return $release_id; + } + + /** + * Update all release info for a plugin. This will insert or update each release, and remove any unknown releases. + */ + public function update_releases( $plugin, $releases ) { + $plugin_id = ( get_post( $plugin ) )->ID; + + // Make sure we don't accidentally add junk from a sandbox while tinkering. + die( "Not yet ready for use" ); + + $changed = false; + + // The current releases, if any, that need to be updated. + $current_releases = $this->get_releases( $plugin ); + $current_versions = wp_list_pluck( $current_releases, 'post_title', 'ID' ); + + // Add or update each release. + foreach ( $releases as $release ) { + if ( ! isset( $current_versions[ $release['version'] ] ) ) { + $changed = $changed | (bool)$this->add_release( $plugin, $release ); + } else { + $release_id = $current_versions[ $release['version'] ]; + $changed = $changed | (bool)$this->update_release( $release_id, $release ); + } + } + + // Remove any releases that are no longer present. + foreach ( $current_releases as $release_id => $release ) { + if ( ! in_array( $release->post_title, wp_list_pluck( $releases, 'version' ) ) ) { + $changed = $changed | (bool)wp_delete_post( $release_id, true ); // Force delete. + } + } + + return $changed; + } + + /** + * Get a specific plugin release. + */ + public function get_release( $plugin, $version ) { + $plugin_id = ( get_post( $plugin ) )->ID; + + $release = get_posts( array( + 'post_type' => 'plugin_release', + 'posts_per_page' => 1, + 'post_parent' => $plugin_id, + 'post_title' => $version, + ) ); + + return $release ? $release[0] : null; + } + +} \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/plugins/plugin-directory/class-template.php b/wordpress.org/public_html/wp-content/plugins/plugin-directory/class-template.php index 021c35a094..c6382db2ff 100644 --- a/wordpress.org/public_html/wp-content/plugins/plugin-directory/class-template.php +++ b/wordpress.org/public_html/wp-content/plugins/plugin-directory/class-template.php @@ -353,6 +353,7 @@ public static function get_plugin_section_titles() { 'developers' => _x( 'Contributors & Developers', 'plugin tab title', 'wporg-plugins' ), 'other_notes' => _x( 'Other Notes', 'plugin tab title', 'wporg-plugins' ), 'blocks' => _x( 'Blocks', 'plugin tab title', 'wporg-plugins' ), + 'releases' => _x( 'Releases', 'plugin tab title', 'wporg-plugins' ) ]; } diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/archive-page/index.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/archive-page/index.asset.php index d7b228686a..9202f58eda 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/archive-page/index.asset.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/archive-page/index.asset.php @@ -1 +1 @@ - array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => '8627e1da9b24373a1f90'); + array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => '7f26875761f01d13f9dd'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/archive-page/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/archive-page/index.js index 1b86a728bd..772b3d2c7e 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/archive-page/index.js +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/archive-page/index.js @@ -1 +1,183 @@ -(()=>{"use strict";var e={n:t=>{var r=t&&t.__esModule?()=>t.default:()=>t;return e.d(r,{a:r}),r},d:(t,r)=>{for(var o in r)e.o(r,o)&&!e.o(t,o)&&Object.defineProperty(t,o,{enumerable:!0,get:r[o]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t)};const t=window.React,r=window.wp.components,o=window.wp.blocks,n=window.wp.serverSideRender;var a=e.n(n);const c=window.wp.blockEditor,i=JSON.parse('{"u2":"wporg/archive-page"}');(0,o.registerBlockType)(i.u2,{edit:function({attributes:e,name:o}){return(0,t.createElement)("div",{...(0,c.useBlockProps)()},(0,t.createElement)(r.Disabled,null,(0,t.createElement)(a(),{block:o,attributes:e})))},save:()=>null})})(); \ No newline at end of file +/******/ (() => { // webpackBootstrap +/******/ "use strict"; +/******/ var __webpack_modules__ = ({ + +/***/ "react": +/*!************************!*\ + !*** external "React" ***! + \************************/ +/***/ ((module) => { + +module.exports = window["React"]; + +/***/ }), + +/***/ "@wordpress/block-editor": +/*!*************************************!*\ + !*** external ["wp","blockEditor"] ***! + \*************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["blockEditor"]; + +/***/ }), + +/***/ "@wordpress/blocks": +/*!********************************!*\ + !*** external ["wp","blocks"] ***! + \********************************/ +/***/ ((module) => { + +module.exports = window["wp"]["blocks"]; + +/***/ }), + +/***/ "@wordpress/components": +/*!************************************!*\ + !*** external ["wp","components"] ***! + \************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["components"]; + +/***/ }), + +/***/ "@wordpress/server-side-render": +/*!******************************************!*\ + !*** external ["wp","serverSideRender"] ***! + \******************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["serverSideRender"]; + +/***/ }), + +/***/ "./src/blocks/archive-page/block.json": +/*!********************************************!*\ + !*** ./src/blocks/archive-page/block.json ***! + \********************************************/ +/***/ ((module) => { + +module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"wporg/archive-page","version":"0.1.0","title":"Archive Page Content","category":"design","icon":"","description":"A block that displays the archive page content","textdomain":"wporg","attributes":{},"supports":{"html":false},"editorScript":"file:./index.js","render":"file:./render.php"}'); + +/***/ }) + +/******/ }); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ // no module.id needed +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/************************************************************************/ +/******/ /* webpack/runtime/compat get default export */ +/******/ (() => { +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = (module) => { +/******/ var getter = module && module.__esModule ? +/******/ () => (module['default']) : +/******/ () => (module); +/******/ __webpack_require__.d(getter, { a: getter }); +/******/ return getter; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/define property getters */ +/******/ (() => { +/******/ // define getter functions for harmony exports +/******/ __webpack_require__.d = (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 */ +/******/ (() => { +/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) +/******/ })(); +/******/ +/******/ /* webpack/runtime/make namespace object */ +/******/ (() => { +/******/ // define __esModule on exports +/******/ __webpack_require__.r = (exports) => { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ })(); +/******/ +/************************************************************************/ +var __webpack_exports__ = {}; +// This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk. +(() => { +/*!******************************************!*\ + !*** ./src/blocks/archive-page/index.js ***! + \******************************************/ +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); +/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/blocks */ "@wordpress/blocks"); +/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/server-side-render */ "@wordpress/server-side-render"); +/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/block-editor */ "@wordpress/block-editor"); +/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__); +/* harmony import */ var _block_json__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./block.json */ "./src/blocks/archive-page/block.json"); + +/** + * WordPress dependencies + */ + + + + + +/** + * Internal dependencies + */ + +function Edit({ + attributes, + name +}) { + return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", { + ...(0,_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__.useBlockProps)() + }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Disabled, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)((_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default()), { + block: name, + attributes: attributes + }))); +} +(0,_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__.registerBlockType)(_block_json__WEBPACK_IMPORTED_MODULE_5__.name, { + edit: Edit, + save: () => null +}); +})(); + +/******/ })() +; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/category-navigation/index.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/category-navigation/index.asset.php index ab2fb9f31a..94878f12bf 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/category-navigation/index.asset.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/category-navigation/index.asset.php @@ -1 +1 @@ - array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => '6bce91817a063cdf476d'); + array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => '9b7cfda9379a258a4745'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/category-navigation/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/category-navigation/index.js index e8e14d7ec6..a639fdc3e3 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/category-navigation/index.js +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/category-navigation/index.js @@ -1 +1,183 @@ -(()=>{"use strict";var e={n:t=>{var r=t&&t.__esModule?()=>t.default:()=>t;return e.d(r,{a:r}),r},d:(t,r)=>{for(var o in r)e.o(r,o)&&!e.o(t,o)&&Object.defineProperty(t,o,{enumerable:!0,get:r[o]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t)};const t=window.React,r=window.wp.components,o=window.wp.blocks,n=window.wp.serverSideRender;var a=e.n(n);const i=window.wp.blockEditor,c=JSON.parse('{"u2":"wporg/category-navigation"}');(0,o.registerBlockType)(c.u2,{edit:function({attributes:e,name:o}){return(0,t.createElement)("div",{...(0,i.useBlockProps)()},(0,t.createElement)(r.Disabled,null,(0,t.createElement)(a(),{block:o,attributes:e})))},save:()=>null})})(); \ No newline at end of file +/******/ (() => { // webpackBootstrap +/******/ "use strict"; +/******/ var __webpack_modules__ = ({ + +/***/ "react": +/*!************************!*\ + !*** external "React" ***! + \************************/ +/***/ ((module) => { + +module.exports = window["React"]; + +/***/ }), + +/***/ "@wordpress/block-editor": +/*!*************************************!*\ + !*** external ["wp","blockEditor"] ***! + \*************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["blockEditor"]; + +/***/ }), + +/***/ "@wordpress/blocks": +/*!********************************!*\ + !*** external ["wp","blocks"] ***! + \********************************/ +/***/ ((module) => { + +module.exports = window["wp"]["blocks"]; + +/***/ }), + +/***/ "@wordpress/components": +/*!************************************!*\ + !*** external ["wp","components"] ***! + \************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["components"]; + +/***/ }), + +/***/ "@wordpress/server-side-render": +/*!******************************************!*\ + !*** external ["wp","serverSideRender"] ***! + \******************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["serverSideRender"]; + +/***/ }), + +/***/ "./src/blocks/category-navigation/block.json": +/*!***************************************************!*\ + !*** ./src/blocks/category-navigation/block.json ***! + \***************************************************/ +/***/ ((module) => { + +module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"wporg/category-navigation","version":"0.2.0","title":"Category Navigation","category":"design","icon":"","description":"Adds the category navigation menu","textdomain":"wporg","attributes":{},"supports":{"html":false},"editorScript":"file:./index.js","render":"file:./render.php"}'); + +/***/ }) + +/******/ }); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ // no module.id needed +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/************************************************************************/ +/******/ /* webpack/runtime/compat get default export */ +/******/ (() => { +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = (module) => { +/******/ var getter = module && module.__esModule ? +/******/ () => (module['default']) : +/******/ () => (module); +/******/ __webpack_require__.d(getter, { a: getter }); +/******/ return getter; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/define property getters */ +/******/ (() => { +/******/ // define getter functions for harmony exports +/******/ __webpack_require__.d = (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 */ +/******/ (() => { +/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) +/******/ })(); +/******/ +/******/ /* webpack/runtime/make namespace object */ +/******/ (() => { +/******/ // define __esModule on exports +/******/ __webpack_require__.r = (exports) => { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ })(); +/******/ +/************************************************************************/ +var __webpack_exports__ = {}; +// This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk. +(() => { +/*!*************************************************!*\ + !*** ./src/blocks/category-navigation/index.js ***! + \*************************************************/ +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); +/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/blocks */ "@wordpress/blocks"); +/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/server-side-render */ "@wordpress/server-side-render"); +/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/block-editor */ "@wordpress/block-editor"); +/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__); +/* harmony import */ var _block_json__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./block.json */ "./src/blocks/category-navigation/block.json"); + +/** + * WordPress dependencies + */ + + + + + +/** + * Internal dependencies + */ + +function Edit({ + attributes, + name +}) { + return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", { + ...(0,_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__.useBlockProps)() + }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Disabled, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)((_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default()), { + block: name, + attributes: attributes + }))); +} +(0,_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__.registerBlockType)(_block_json__WEBPACK_IMPORTED_MODULE_5__.name, { + edit: Edit, + save: () => null +}); +})(); + +/******/ })() +; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/filter-bar/index.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/filter-bar/index.asset.php index 32cfe90ff5..922b695350 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/filter-bar/index.asset.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/filter-bar/index.asset.php @@ -1 +1 @@ - array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => '4e25fbe50d772f6a1559'); + array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => 'fe9a74e9340bde2c89fa'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/filter-bar/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/filter-bar/index.js index 3662ea6f71..1d81e7ca65 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/filter-bar/index.js +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/filter-bar/index.js @@ -1 +1,183 @@ -(()=>{"use strict";var e={n:t=>{var r=t&&t.__esModule?()=>t.default:()=>t;return e.d(r,{a:r}),r},d:(t,r)=>{for(var o in r)e.o(r,o)&&!e.o(t,o)&&Object.defineProperty(t,o,{enumerable:!0,get:r[o]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t)};const t=window.React,r=window.wp.components,o=window.wp.blocks,n=window.wp.serverSideRender;var a=e.n(n);const l=window.wp.blockEditor,i=JSON.parse('{"u2":"wporg/filter-bar"}');(0,o.registerBlockType)(i.u2,{edit:function({attributes:e,name:o}){return(0,t.createElement)("div",{...(0,l.useBlockProps)()},(0,t.createElement)(r.Disabled,null,(0,t.createElement)(a(),{block:o,attributes:e})))},save:()=>null})})(); \ No newline at end of file +/******/ (() => { // webpackBootstrap +/******/ "use strict"; +/******/ var __webpack_modules__ = ({ + +/***/ "react": +/*!************************!*\ + !*** external "React" ***! + \************************/ +/***/ ((module) => { + +module.exports = window["React"]; + +/***/ }), + +/***/ "@wordpress/block-editor": +/*!*************************************!*\ + !*** external ["wp","blockEditor"] ***! + \*************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["blockEditor"]; + +/***/ }), + +/***/ "@wordpress/blocks": +/*!********************************!*\ + !*** external ["wp","blocks"] ***! + \********************************/ +/***/ ((module) => { + +module.exports = window["wp"]["blocks"]; + +/***/ }), + +/***/ "@wordpress/components": +/*!************************************!*\ + !*** external ["wp","components"] ***! + \************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["components"]; + +/***/ }), + +/***/ "@wordpress/server-side-render": +/*!******************************************!*\ + !*** external ["wp","serverSideRender"] ***! + \******************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["serverSideRender"]; + +/***/ }), + +/***/ "./src/blocks/filter-bar/block.json": +/*!******************************************!*\ + !*** ./src/blocks/filter-bar/block.json ***! + \******************************************/ +/***/ ((module) => { + +module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"wporg/filter-bar","version":"0.2.0","title":"Filter Bar","category":"design","icon":"","description":"Adds a filter bar","textdomain":"wporg","attributes":{},"supports":{"html":false},"editorScript":"file:./index.js","render":"file:./render.php"}'); + +/***/ }) + +/******/ }); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ // no module.id needed +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/************************************************************************/ +/******/ /* webpack/runtime/compat get default export */ +/******/ (() => { +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = (module) => { +/******/ var getter = module && module.__esModule ? +/******/ () => (module['default']) : +/******/ () => (module); +/******/ __webpack_require__.d(getter, { a: getter }); +/******/ return getter; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/define property getters */ +/******/ (() => { +/******/ // define getter functions for harmony exports +/******/ __webpack_require__.d = (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 */ +/******/ (() => { +/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) +/******/ })(); +/******/ +/******/ /* webpack/runtime/make namespace object */ +/******/ (() => { +/******/ // define __esModule on exports +/******/ __webpack_require__.r = (exports) => { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ })(); +/******/ +/************************************************************************/ +var __webpack_exports__ = {}; +// This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk. +(() => { +/*!****************************************!*\ + !*** ./src/blocks/filter-bar/index.js ***! + \****************************************/ +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); +/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/blocks */ "@wordpress/blocks"); +/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/server-side-render */ "@wordpress/server-side-render"); +/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/block-editor */ "@wordpress/block-editor"); +/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__); +/* harmony import */ var _block_json__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./block.json */ "./src/blocks/filter-bar/block.json"); + +/** + * WordPress dependencies + */ + + + + + +/** + * Internal dependencies + */ + +function Edit({ + attributes, + name +}) { + return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", { + ...(0,_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__.useBlockProps)() + }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Disabled, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)((_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default()), { + block: name, + attributes: attributes + }))); +} +(0,_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__.registerBlockType)(_block_json__WEBPACK_IMPORTED_MODULE_5__.name, { + edit: Edit, + save: () => null +}); +})(); + +/******/ })() +; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/front-page/index.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/front-page/index.asset.php index 09684019c7..264faed9d3 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/front-page/index.asset.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/front-page/index.asset.php @@ -1 +1 @@ - array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => '3f3755bbf3697bb808f8'); + array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => 'b4c88578d4fb8d783dd4'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/front-page/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/front-page/index.js index 7a3c8b2166..7136a3f573 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/front-page/index.js +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/front-page/index.js @@ -1 +1,183 @@ -(()=>{"use strict";var e={n:t=>{var r=t&&t.__esModule?()=>t.default:()=>t;return e.d(r,{a:r}),r},d:(t,r)=>{for(var o in r)e.o(r,o)&&!e.o(t,o)&&Object.defineProperty(t,o,{enumerable:!0,get:r[o]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t)};const t=window.React,r=window.wp.components,o=window.wp.blocks,n=window.wp.serverSideRender;var a=e.n(n);const l=window.wp.blockEditor,c=JSON.parse('{"u2":"wporg/front-page"}');(0,o.registerBlockType)(c.u2,{edit:function({attributes:e,name:o}){return(0,t.createElement)("div",{...(0,l.useBlockProps)()},(0,t.createElement)(r.Disabled,null,(0,t.createElement)(a(),{block:o,attributes:e})))},save:()=>null})})(); \ No newline at end of file +/******/ (() => { // webpackBootstrap +/******/ "use strict"; +/******/ var __webpack_modules__ = ({ + +/***/ "react": +/*!************************!*\ + !*** external "React" ***! + \************************/ +/***/ ((module) => { + +module.exports = window["React"]; + +/***/ }), + +/***/ "@wordpress/block-editor": +/*!*************************************!*\ + !*** external ["wp","blockEditor"] ***! + \*************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["blockEditor"]; + +/***/ }), + +/***/ "@wordpress/blocks": +/*!********************************!*\ + !*** external ["wp","blocks"] ***! + \********************************/ +/***/ ((module) => { + +module.exports = window["wp"]["blocks"]; + +/***/ }), + +/***/ "@wordpress/components": +/*!************************************!*\ + !*** external ["wp","components"] ***! + \************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["components"]; + +/***/ }), + +/***/ "@wordpress/server-side-render": +/*!******************************************!*\ + !*** external ["wp","serverSideRender"] ***! + \******************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["serverSideRender"]; + +/***/ }), + +/***/ "./src/blocks/front-page/block.json": +/*!******************************************!*\ + !*** ./src/blocks/front-page/block.json ***! + \******************************************/ +/***/ ((module) => { + +module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"wporg/front-page","version":"0.1.0","title":"Front Page Content","category":"design","icon":"","description":"A block that displays the front page content","textdomain":"wporg","attributes":{},"supports":{"html":false},"editorScript":"file:./index.js","render":"file:./render.php"}'); + +/***/ }) + +/******/ }); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ // no module.id needed +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/************************************************************************/ +/******/ /* webpack/runtime/compat get default export */ +/******/ (() => { +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = (module) => { +/******/ var getter = module && module.__esModule ? +/******/ () => (module['default']) : +/******/ () => (module); +/******/ __webpack_require__.d(getter, { a: getter }); +/******/ return getter; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/define property getters */ +/******/ (() => { +/******/ // define getter functions for harmony exports +/******/ __webpack_require__.d = (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 */ +/******/ (() => { +/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) +/******/ })(); +/******/ +/******/ /* webpack/runtime/make namespace object */ +/******/ (() => { +/******/ // define __esModule on exports +/******/ __webpack_require__.r = (exports) => { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ })(); +/******/ +/************************************************************************/ +var __webpack_exports__ = {}; +// This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk. +(() => { +/*!****************************************!*\ + !*** ./src/blocks/front-page/index.js ***! + \****************************************/ +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); +/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/blocks */ "@wordpress/blocks"); +/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/server-side-render */ "@wordpress/server-side-render"); +/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/block-editor */ "@wordpress/block-editor"); +/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__); +/* harmony import */ var _block_json__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./block.json */ "./src/blocks/front-page/block.json"); + +/** + * WordPress dependencies + */ + + + + + +/** + * Internal dependencies + */ + +function Edit({ + attributes, + name +}) { + return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", { + ...(0,_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__.useBlockProps)() + }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Disabled, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)((_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default()), { + block: name, + attributes: attributes + }))); +} +(0,_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__.registerBlockType)(_block_json__WEBPACK_IMPORTED_MODULE_5__.name, { + edit: Edit, + save: () => null +}); +})(); + +/******/ })() +; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/plugin-card/index.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/plugin-card/index.asset.php index f1dd1a21c9..b579c818ac 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/plugin-card/index.asset.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/plugin-card/index.asset.php @@ -1 +1 @@ - array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => '58f6f779c22873c960e8'); + array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => '26ed8b457f67063bbcbe'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/plugin-card/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/plugin-card/index.js index 3f9a8e7de5..77b892a7b3 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/plugin-card/index.js +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/plugin-card/index.js @@ -1 +1,183 @@ -(()=>{"use strict";var e={n:t=>{var r=t&&t.__esModule?()=>t.default:()=>t;return e.d(r,{a:r}),r},d:(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:(e,t)=>Object.prototype.hasOwnProperty.call(e,t)};const t=window.React,r=window.wp.components,n=window.wp.blocks,o=window.wp.serverSideRender;var a=e.n(o);const l=window.wp.blockEditor,c=JSON.parse('{"u2":"wporg/plugin-card"}');(0,n.registerBlockType)(c.u2,{edit:function({attributes:e,name:n}){return(0,t.createElement)("div",{...(0,l.useBlockProps)()},(0,t.createElement)(r.Disabled,null,(0,t.createElement)(a(),{block:n,attributes:e})))},save:()=>null})})(); \ No newline at end of file +/******/ (() => { // webpackBootstrap +/******/ "use strict"; +/******/ var __webpack_modules__ = ({ + +/***/ "react": +/*!************************!*\ + !*** external "React" ***! + \************************/ +/***/ ((module) => { + +module.exports = window["React"]; + +/***/ }), + +/***/ "@wordpress/block-editor": +/*!*************************************!*\ + !*** external ["wp","blockEditor"] ***! + \*************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["blockEditor"]; + +/***/ }), + +/***/ "@wordpress/blocks": +/*!********************************!*\ + !*** external ["wp","blocks"] ***! + \********************************/ +/***/ ((module) => { + +module.exports = window["wp"]["blocks"]; + +/***/ }), + +/***/ "@wordpress/components": +/*!************************************!*\ + !*** external ["wp","components"] ***! + \************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["components"]; + +/***/ }), + +/***/ "@wordpress/server-side-render": +/*!******************************************!*\ + !*** external ["wp","serverSideRender"] ***! + \******************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["serverSideRender"]; + +/***/ }), + +/***/ "./src/blocks/plugin-card/block.json": +/*!*******************************************!*\ + !*** ./src/blocks/plugin-card/block.json ***! + \*******************************************/ +/***/ ((module) => { + +module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"wporg/plugin-card","version":"0.1.0","title":"Plugin Card for Archive Pages","category":"design","icon":"","description":"A block that displays a plugin card.","textdomain":"wporg","attributes":{},"supports":{"html":false},"editorScript":"file:./index.js","render":"file:./render.php","viewScript":"file:./view.js"}'); + +/***/ }) + +/******/ }); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ // no module.id needed +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/************************************************************************/ +/******/ /* webpack/runtime/compat get default export */ +/******/ (() => { +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = (module) => { +/******/ var getter = module && module.__esModule ? +/******/ () => (module['default']) : +/******/ () => (module); +/******/ __webpack_require__.d(getter, { a: getter }); +/******/ return getter; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/define property getters */ +/******/ (() => { +/******/ // define getter functions for harmony exports +/******/ __webpack_require__.d = (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 */ +/******/ (() => { +/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) +/******/ })(); +/******/ +/******/ /* webpack/runtime/make namespace object */ +/******/ (() => { +/******/ // define __esModule on exports +/******/ __webpack_require__.r = (exports) => { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ })(); +/******/ +/************************************************************************/ +var __webpack_exports__ = {}; +// This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk. +(() => { +/*!*****************************************!*\ + !*** ./src/blocks/plugin-card/index.js ***! + \*****************************************/ +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); +/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/blocks */ "@wordpress/blocks"); +/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/server-side-render */ "@wordpress/server-side-render"); +/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/block-editor */ "@wordpress/block-editor"); +/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__); +/* harmony import */ var _block_json__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./block.json */ "./src/blocks/plugin-card/block.json"); + +/** + * WordPress dependencies + */ + + + + + +/** + * Internal dependencies + */ + +function Edit({ + attributes, + name +}) { + return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", { + ...(0,_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__.useBlockProps)() + }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Disabled, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)((_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default()), { + block: name, + attributes: attributes + }))); +} +(0,_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__.registerBlockType)(_block_json__WEBPACK_IMPORTED_MODULE_5__.name, { + edit: Edit, + save: () => null +}); +})(); + +/******/ })() +; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/plugin-card/view.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/plugin-card/view.asset.php index a451d28c8a..0dd4c71ab5 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/plugin-card/view.asset.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/plugin-card/view.asset.php @@ -1 +1 @@ - array(), 'version' => 'f221373b7e38d2ff3d7c'); + array(), 'version' => '038d83c28b7b82ea64d9'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/plugin-card/view.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/plugin-card/view.js index f3234f94de..a0ec1ebc4a 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/plugin-card/view.js +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/plugin-card/view.js @@ -1 +1,36 @@ -document.addEventListener("DOMContentLoaded",(function(){var e=document.querySelectorAll(".plugin-cards li");e&&e.forEach((function(e){e.addEventListener("click",(function(t){var n=window.getSelection().toString();if("a"!==t.target.tagName.toLowerCase()&&""===n){var o=e.querySelector("a");if(o){var r=o.getAttribute("href");window.location.href=r}}}))}))})); \ No newline at end of file +/******/ (() => { // webpackBootstrap +var __webpack_exports__ = {}; +/*!****************************************!*\ + !*** ./src/blocks/plugin-card/view.js ***! + \****************************************/ +/** + * Binds click events to navigate on plugin card click. + */ +document.addEventListener('DOMContentLoaded', function () { + var cards = document.querySelectorAll('.plugin-cards li'); + if (cards) { + cards.forEach(function (card) { + card.addEventListener('click', function (event) { + var selectedText = window.getSelection().toString(); + + // Keep regular anchor tag function + if ('a' === event.target.tagName.toLowerCase()) { + return; + } + + // If they are selecting text, let's not navigate. + if ('' !== selectedText) { + return; + } + var anchorTag = card.querySelector('a'); + if (anchorTag) { + var link = anchorTag.getAttribute('href'); + window.location.href = link; + } + }); + }); + } +}); +/******/ })() +; +//# sourceMappingURL=view.js.map \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-changelog/block.json b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-changelog/block.json new file mode 100644 index 0000000000..8f294063db --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-changelog/block.json @@ -0,0 +1,18 @@ +{ + "$schema": "https://schemas.wp.org/trunk/block.json", + "apiVersion": 2, + "name": "wporg/release-changelog", + "version": "0.1.0", + "title": "Displays release changelog.", + "category": "design", + "icon": "", + "description": "A block to display release changelog", + "textdomain": "wporg", + "attributes": {}, + "supports": { + "html": false + }, + "editorScript": "file:./index.js", + "render": "file:./render.php", + "style": "file:./style-index.css" +} \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-changelog/index.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-changelog/index.asset.php new file mode 100644 index 0000000000..24548ddad2 --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-changelog/index.asset.php @@ -0,0 +1 @@ + array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => '16b93262d18ec0d0ccbd'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-changelog/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-changelog/index.js new file mode 100644 index 0000000000..ab1b057388 --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-changelog/index.js @@ -0,0 +1,298 @@ +/******/ (() => { // webpackBootstrap +/******/ "use strict"; +/******/ var __webpack_modules__ = ({ + +/***/ "./src/blocks/release-changelog/index.js": +/*!***********************************************!*\ + !*** ./src/blocks/release-changelog/index.js ***! + \***********************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); +/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/blocks */ "@wordpress/blocks"); +/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/server-side-render */ "@wordpress/server-side-render"); +/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/block-editor */ "@wordpress/block-editor"); +/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__); +/* harmony import */ var _block_json__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./block.json */ "./src/blocks/release-changelog/block.json"); +/* harmony import */ var _style_scss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./style.scss */ "./src/blocks/release-changelog/style.scss"); + +/** + * WordPress dependencies + */ + + + + + +/** + * Internal dependencies + */ + + +function Edit({ + attributes, + name +}) { + return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", { + ...(0,_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__.useBlockProps)() + }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Disabled, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)((_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default()), { + block: name, + attributes: attributes + }))); +} +(0,_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__.registerBlockType)(_block_json__WEBPACK_IMPORTED_MODULE_5__.name, { + edit: Edit, + save: () => null +}); + +/***/ }), + +/***/ "./src/blocks/release-changelog/style.scss": +/*!*************************************************!*\ + !*** ./src/blocks/release-changelog/style.scss ***! + \*************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +// extracted by mini-css-extract-plugin + + +/***/ }), + +/***/ "react": +/*!************************!*\ + !*** external "React" ***! + \************************/ +/***/ ((module) => { + +module.exports = window["React"]; + +/***/ }), + +/***/ "@wordpress/block-editor": +/*!*************************************!*\ + !*** external ["wp","blockEditor"] ***! + \*************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["blockEditor"]; + +/***/ }), + +/***/ "@wordpress/blocks": +/*!********************************!*\ + !*** external ["wp","blocks"] ***! + \********************************/ +/***/ ((module) => { + +module.exports = window["wp"]["blocks"]; + +/***/ }), + +/***/ "@wordpress/components": +/*!************************************!*\ + !*** external ["wp","components"] ***! + \************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["components"]; + +/***/ }), + +/***/ "@wordpress/server-side-render": +/*!******************************************!*\ + !*** external ["wp","serverSideRender"] ***! + \******************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["serverSideRender"]; + +/***/ }), + +/***/ "./src/blocks/release-changelog/block.json": +/*!*************************************************!*\ + !*** ./src/blocks/release-changelog/block.json ***! + \*************************************************/ +/***/ ((module) => { + +module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"wporg/release-changelog","version":"0.1.0","title":"Displays release changelog.","category":"design","icon":"","description":"A block to display release changelog","textdomain":"wporg","attributes":{},"supports":{"html":false},"editorScript":"file:./index.js","render":"file:./render.php","style":"file:./style-index.css"}'); + +/***/ }) + +/******/ }); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ // no module.id needed +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = __webpack_modules__; +/******/ +/************************************************************************/ +/******/ /* webpack/runtime/chunk loaded */ +/******/ (() => { +/******/ var deferred = []; +/******/ __webpack_require__.O = (result, chunkIds, fn, priority) => { +/******/ if(chunkIds) { +/******/ priority = priority || 0; +/******/ for(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1]; +/******/ deferred[i] = [chunkIds, fn, priority]; +/******/ return; +/******/ } +/******/ var notFulfilled = Infinity; +/******/ for (var i = 0; i < deferred.length; i++) { +/******/ var chunkIds = deferred[i][0]; +/******/ var fn = deferred[i][1]; +/******/ var priority = deferred[i][2]; +/******/ var fulfilled = true; +/******/ for (var j = 0; j < chunkIds.length; j++) { +/******/ if ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) { +/******/ chunkIds.splice(j--, 1); +/******/ } else { +/******/ fulfilled = false; +/******/ if(priority < notFulfilled) notFulfilled = priority; +/******/ } +/******/ } +/******/ if(fulfilled) { +/******/ deferred.splice(i--, 1) +/******/ var r = fn(); +/******/ if (r !== undefined) result = r; +/******/ } +/******/ } +/******/ return result; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/compat get default export */ +/******/ (() => { +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = (module) => { +/******/ var getter = module && module.__esModule ? +/******/ () => (module['default']) : +/******/ () => (module); +/******/ __webpack_require__.d(getter, { a: getter }); +/******/ return getter; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/define property getters */ +/******/ (() => { +/******/ // define getter functions for harmony exports +/******/ __webpack_require__.d = (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 */ +/******/ (() => { +/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) +/******/ })(); +/******/ +/******/ /* webpack/runtime/make namespace object */ +/******/ (() => { +/******/ // define __esModule on exports +/******/ __webpack_require__.r = (exports) => { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/jsonp chunk loading */ +/******/ (() => { +/******/ // no baseURI +/******/ +/******/ // object to store loaded and loading chunks +/******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched +/******/ // [resolve, reject, Promise] = chunk loading, 0 = chunk loaded +/******/ var installedChunks = { +/******/ "blocks/release-changelog/index": 0, +/******/ "blocks/release-changelog/style-index": 0 +/******/ }; +/******/ +/******/ // no chunk on demand loading +/******/ +/******/ // no prefetching +/******/ +/******/ // no preloaded +/******/ +/******/ // no HMR +/******/ +/******/ // no HMR manifest +/******/ +/******/ __webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0); +/******/ +/******/ // install a JSONP callback for chunk loading +/******/ var webpackJsonpCallback = (parentChunkLoadingFunction, data) => { +/******/ var chunkIds = data[0]; +/******/ var moreModules = data[1]; +/******/ var runtime = data[2]; +/******/ // add "moreModules" to the modules object, +/******/ // then flag all "chunkIds" as loaded and fire callback +/******/ var moduleId, chunkId, i = 0; +/******/ if(chunkIds.some((id) => (installedChunks[id] !== 0))) { +/******/ for(moduleId in moreModules) { +/******/ if(__webpack_require__.o(moreModules, moduleId)) { +/******/ __webpack_require__.m[moduleId] = moreModules[moduleId]; +/******/ } +/******/ } +/******/ if(runtime) var result = runtime(__webpack_require__); +/******/ } +/******/ if(parentChunkLoadingFunction) parentChunkLoadingFunction(data); +/******/ for(;i < chunkIds.length; i++) { +/******/ chunkId = chunkIds[i]; +/******/ if(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) { +/******/ installedChunks[chunkId][0](); +/******/ } +/******/ installedChunks[chunkId] = 0; +/******/ } +/******/ return __webpack_require__.O(result); +/******/ } +/******/ +/******/ var chunkLoadingGlobal = self["webpackChunkwporg_plugins_2024"] = self["webpackChunkwporg_plugins_2024"] || []; +/******/ chunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0)); +/******/ chunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal)); +/******/ })(); +/******/ +/************************************************************************/ +/******/ +/******/ // startup +/******/ // Load entry module and return exports +/******/ // This entry module depends on other loaded chunks and execution need to be delayed +/******/ var __webpack_exports__ = __webpack_require__.O(undefined, ["blocks/release-changelog/style-index"], () => (__webpack_require__("./src/blocks/release-changelog/index.js"))) +/******/ __webpack_exports__ = __webpack_require__.O(__webpack_exports__); +/******/ +/******/ })() +; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-changelog/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-changelog/render.php new file mode 100644 index 0000000000..bbd25746fb --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-changelog/render.php @@ -0,0 +1,4 @@ + diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-changelog/style-index.css b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-changelog/style-index.css new file mode 100644 index 0000000000..c4a25cabe0 --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-changelog/style-index.css @@ -0,0 +1,4 @@ +/*!****************************************************************************************************************************************************************************************************************************************************************!*\ + !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/blocks/release-changelog/style.scss ***! + \****************************************************************************************************************************************************************************************************************************************************************/ + diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks copy/block.json b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks copy/block.json new file mode 100644 index 0000000000..d98ac30881 --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks copy/block.json @@ -0,0 +1,18 @@ +{ + "$schema": "https://schemas.wp.org/trunk/block.json", + "apiVersion": 2, + "name": "wporg/release-checks", + "version": "0.1.0", + "title": "Displays release checks.", + "category": "design", + "icon": "", + "description": "A block to display release checks", + "textdomain": "wporg", + "attributes": {}, + "supports": { + "html": false + }, + "editorScript": "file:./index.js", + "render": "file:./render.php", + "style": "file:./style-index.css" +} \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks copy/index.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks copy/index.asset.php new file mode 100644 index 0000000000..35b2f9de48 --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks copy/index.asset.php @@ -0,0 +1 @@ + array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => 'd68e487a800311586374'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks copy/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks copy/index.js new file mode 100644 index 0000000000..b25b4852d0 --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks copy/index.js @@ -0,0 +1,298 @@ +/******/ (() => { // webpackBootstrap +/******/ "use strict"; +/******/ var __webpack_modules__ = ({ + +/***/ "./src/blocks/release-checks copy/index.js": +/*!*************************************************!*\ + !*** ./src/blocks/release-checks copy/index.js ***! + \*************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); +/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/blocks */ "@wordpress/blocks"); +/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/server-side-render */ "@wordpress/server-side-render"); +/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/block-editor */ "@wordpress/block-editor"); +/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__); +/* harmony import */ var _block_json__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./block.json */ "./src/blocks/release-checks copy/block.json"); +/* harmony import */ var _style_scss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./style.scss */ "./src/blocks/release-checks copy/style.scss"); + +/** + * WordPress dependencies + */ + + + + + +/** + * Internal dependencies + */ + + +function Edit({ + attributes, + name +}) { + return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", { + ...(0,_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__.useBlockProps)() + }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Disabled, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)((_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default()), { + block: name, + attributes: attributes + }))); +} +(0,_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__.registerBlockType)(_block_json__WEBPACK_IMPORTED_MODULE_5__.name, { + edit: Edit, + save: () => null +}); + +/***/ }), + +/***/ "./src/blocks/release-checks copy/style.scss": +/*!***************************************************!*\ + !*** ./src/blocks/release-checks copy/style.scss ***! + \***************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +// extracted by mini-css-extract-plugin + + +/***/ }), + +/***/ "react": +/*!************************!*\ + !*** external "React" ***! + \************************/ +/***/ ((module) => { + +module.exports = window["React"]; + +/***/ }), + +/***/ "@wordpress/block-editor": +/*!*************************************!*\ + !*** external ["wp","blockEditor"] ***! + \*************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["blockEditor"]; + +/***/ }), + +/***/ "@wordpress/blocks": +/*!********************************!*\ + !*** external ["wp","blocks"] ***! + \********************************/ +/***/ ((module) => { + +module.exports = window["wp"]["blocks"]; + +/***/ }), + +/***/ "@wordpress/components": +/*!************************************!*\ + !*** external ["wp","components"] ***! + \************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["components"]; + +/***/ }), + +/***/ "@wordpress/server-side-render": +/*!******************************************!*\ + !*** external ["wp","serverSideRender"] ***! + \******************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["serverSideRender"]; + +/***/ }), + +/***/ "./src/blocks/release-checks copy/block.json": +/*!***************************************************!*\ + !*** ./src/blocks/release-checks copy/block.json ***! + \***************************************************/ +/***/ ((module) => { + +module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"wporg/release-checks","version":"0.1.0","title":"Displays release checks.","category":"design","icon":"","description":"A block to display release checks","textdomain":"wporg","attributes":{},"supports":{"html":false},"editorScript":"file:./index.js","render":"file:./render.php","style":"file:./style-index.css"}'); + +/***/ }) + +/******/ }); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ // no module.id needed +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = __webpack_modules__; +/******/ +/************************************************************************/ +/******/ /* webpack/runtime/chunk loaded */ +/******/ (() => { +/******/ var deferred = []; +/******/ __webpack_require__.O = (result, chunkIds, fn, priority) => { +/******/ if(chunkIds) { +/******/ priority = priority || 0; +/******/ for(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1]; +/******/ deferred[i] = [chunkIds, fn, priority]; +/******/ return; +/******/ } +/******/ var notFulfilled = Infinity; +/******/ for (var i = 0; i < deferred.length; i++) { +/******/ var chunkIds = deferred[i][0]; +/******/ var fn = deferred[i][1]; +/******/ var priority = deferred[i][2]; +/******/ var fulfilled = true; +/******/ for (var j = 0; j < chunkIds.length; j++) { +/******/ if ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) { +/******/ chunkIds.splice(j--, 1); +/******/ } else { +/******/ fulfilled = false; +/******/ if(priority < notFulfilled) notFulfilled = priority; +/******/ } +/******/ } +/******/ if(fulfilled) { +/******/ deferred.splice(i--, 1) +/******/ var r = fn(); +/******/ if (r !== undefined) result = r; +/******/ } +/******/ } +/******/ return result; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/compat get default export */ +/******/ (() => { +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = (module) => { +/******/ var getter = module && module.__esModule ? +/******/ () => (module['default']) : +/******/ () => (module); +/******/ __webpack_require__.d(getter, { a: getter }); +/******/ return getter; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/define property getters */ +/******/ (() => { +/******/ // define getter functions for harmony exports +/******/ __webpack_require__.d = (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 */ +/******/ (() => { +/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) +/******/ })(); +/******/ +/******/ /* webpack/runtime/make namespace object */ +/******/ (() => { +/******/ // define __esModule on exports +/******/ __webpack_require__.r = (exports) => { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/jsonp chunk loading */ +/******/ (() => { +/******/ // no baseURI +/******/ +/******/ // object to store loaded and loading chunks +/******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched +/******/ // [resolve, reject, Promise] = chunk loading, 0 = chunk loaded +/******/ var installedChunks = { +/******/ "blocks/release-checks copy/index": 0, +/******/ "blocks/release-checks copy/style-index": 0 +/******/ }; +/******/ +/******/ // no chunk on demand loading +/******/ +/******/ // no prefetching +/******/ +/******/ // no preloaded +/******/ +/******/ // no HMR +/******/ +/******/ // no HMR manifest +/******/ +/******/ __webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0); +/******/ +/******/ // install a JSONP callback for chunk loading +/******/ var webpackJsonpCallback = (parentChunkLoadingFunction, data) => { +/******/ var chunkIds = data[0]; +/******/ var moreModules = data[1]; +/******/ var runtime = data[2]; +/******/ // add "moreModules" to the modules object, +/******/ // then flag all "chunkIds" as loaded and fire callback +/******/ var moduleId, chunkId, i = 0; +/******/ if(chunkIds.some((id) => (installedChunks[id] !== 0))) { +/******/ for(moduleId in moreModules) { +/******/ if(__webpack_require__.o(moreModules, moduleId)) { +/******/ __webpack_require__.m[moduleId] = moreModules[moduleId]; +/******/ } +/******/ } +/******/ if(runtime) var result = runtime(__webpack_require__); +/******/ } +/******/ if(parentChunkLoadingFunction) parentChunkLoadingFunction(data); +/******/ for(;i < chunkIds.length; i++) { +/******/ chunkId = chunkIds[i]; +/******/ if(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) { +/******/ installedChunks[chunkId][0](); +/******/ } +/******/ installedChunks[chunkId] = 0; +/******/ } +/******/ return __webpack_require__.O(result); +/******/ } +/******/ +/******/ var chunkLoadingGlobal = self["webpackChunkwporg_plugins_2024"] = self["webpackChunkwporg_plugins_2024"] || []; +/******/ chunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0)); +/******/ chunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal)); +/******/ })(); +/******/ +/************************************************************************/ +/******/ +/******/ // startup +/******/ // Load entry module and return exports +/******/ // This entry module depends on other loaded chunks and execution need to be delayed +/******/ var __webpack_exports__ = __webpack_require__.O(undefined, ["blocks/release-checks copy/style-index"], () => (__webpack_require__("./src/blocks/release-checks copy/index.js"))) +/******/ __webpack_exports__ = __webpack_require__.O(__webpack_exports__); +/******/ +/******/ })() +; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks copy/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks copy/render.php new file mode 100644 index 0000000000..55230a69d7 --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks copy/render.php @@ -0,0 +1,11 @@ + + + diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks copy/style-index.css b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks copy/style-index.css new file mode 100644 index 0000000000..8e453a747c --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks copy/style-index.css @@ -0,0 +1,4 @@ +/*!******************************************************************************************************************************************************************************************************************************************************************!*\ + !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/blocks/release-checks copy/style.scss ***! + \******************************************************************************************************************************************************************************************************************************************************************/ + diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks/block.json b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks/block.json new file mode 100644 index 0000000000..6201b31e86 --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks/block.json @@ -0,0 +1,21 @@ +{ + "$schema": "https://schemas.wp.org/trunk/block.json", + "apiVersion": 2, + "name": "wporg/release-checks", + "version": "0.1.0", + "title": "Displays release checks.", + "category": "design", + "icon": "", + "description": "A block to display release checks", + "textdomain": "wporg", + "attributes": {}, + "supports": { + "html": false + }, + "usesContext": [ + "postId" + ], + "editorScript": "file:./index.js", + "render": "file:./render.php", + "style": "file:./style-index.css" +} \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks/index.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks/index.asset.php new file mode 100644 index 0000000000..65e11078f8 --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks/index.asset.php @@ -0,0 +1 @@ + array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => 'e8840736b53778e9b720'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks/index.js new file mode 100644 index 0000000000..a295a33d84 --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks/index.js @@ -0,0 +1,298 @@ +/******/ (() => { // webpackBootstrap +/******/ "use strict"; +/******/ var __webpack_modules__ = ({ + +/***/ "./src/blocks/release-checks/index.js": +/*!********************************************!*\ + !*** ./src/blocks/release-checks/index.js ***! + \********************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); +/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/blocks */ "@wordpress/blocks"); +/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/server-side-render */ "@wordpress/server-side-render"); +/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/block-editor */ "@wordpress/block-editor"); +/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__); +/* harmony import */ var _block_json__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./block.json */ "./src/blocks/release-checks/block.json"); +/* harmony import */ var _style_scss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./style.scss */ "./src/blocks/release-checks/style.scss"); + +/** + * WordPress dependencies + */ + + + + + +/** + * Internal dependencies + */ + + +function Edit({ + attributes, + name +}) { + return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", { + ...(0,_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__.useBlockProps)() + }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Disabled, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)((_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default()), { + block: name, + attributes: attributes + }))); +} +(0,_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__.registerBlockType)(_block_json__WEBPACK_IMPORTED_MODULE_5__.name, { + edit: Edit, + save: () => null +}); + +/***/ }), + +/***/ "./src/blocks/release-checks/style.scss": +/*!**********************************************!*\ + !*** ./src/blocks/release-checks/style.scss ***! + \**********************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +// extracted by mini-css-extract-plugin + + +/***/ }), + +/***/ "react": +/*!************************!*\ + !*** external "React" ***! + \************************/ +/***/ ((module) => { + +module.exports = window["React"]; + +/***/ }), + +/***/ "@wordpress/block-editor": +/*!*************************************!*\ + !*** external ["wp","blockEditor"] ***! + \*************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["blockEditor"]; + +/***/ }), + +/***/ "@wordpress/blocks": +/*!********************************!*\ + !*** external ["wp","blocks"] ***! + \********************************/ +/***/ ((module) => { + +module.exports = window["wp"]["blocks"]; + +/***/ }), + +/***/ "@wordpress/components": +/*!************************************!*\ + !*** external ["wp","components"] ***! + \************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["components"]; + +/***/ }), + +/***/ "@wordpress/server-side-render": +/*!******************************************!*\ + !*** external ["wp","serverSideRender"] ***! + \******************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["serverSideRender"]; + +/***/ }), + +/***/ "./src/blocks/release-checks/block.json": +/*!**********************************************!*\ + !*** ./src/blocks/release-checks/block.json ***! + \**********************************************/ +/***/ ((module) => { + +module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"wporg/release-checks","version":"0.1.0","title":"Displays release checks.","category":"design","icon":"","description":"A block to display release checks","textdomain":"wporg","attributes":{},"supports":{"html":false},"usesContext":["postId"],"editorScript":"file:./index.js","render":"file:./render.php","style":"file:./style-index.css"}'); + +/***/ }) + +/******/ }); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ // no module.id needed +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = __webpack_modules__; +/******/ +/************************************************************************/ +/******/ /* webpack/runtime/chunk loaded */ +/******/ (() => { +/******/ var deferred = []; +/******/ __webpack_require__.O = (result, chunkIds, fn, priority) => { +/******/ if(chunkIds) { +/******/ priority = priority || 0; +/******/ for(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1]; +/******/ deferred[i] = [chunkIds, fn, priority]; +/******/ return; +/******/ } +/******/ var notFulfilled = Infinity; +/******/ for (var i = 0; i < deferred.length; i++) { +/******/ var chunkIds = deferred[i][0]; +/******/ var fn = deferred[i][1]; +/******/ var priority = deferred[i][2]; +/******/ var fulfilled = true; +/******/ for (var j = 0; j < chunkIds.length; j++) { +/******/ if ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) { +/******/ chunkIds.splice(j--, 1); +/******/ } else { +/******/ fulfilled = false; +/******/ if(priority < notFulfilled) notFulfilled = priority; +/******/ } +/******/ } +/******/ if(fulfilled) { +/******/ deferred.splice(i--, 1) +/******/ var r = fn(); +/******/ if (r !== undefined) result = r; +/******/ } +/******/ } +/******/ return result; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/compat get default export */ +/******/ (() => { +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = (module) => { +/******/ var getter = module && module.__esModule ? +/******/ () => (module['default']) : +/******/ () => (module); +/******/ __webpack_require__.d(getter, { a: getter }); +/******/ return getter; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/define property getters */ +/******/ (() => { +/******/ // define getter functions for harmony exports +/******/ __webpack_require__.d = (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 */ +/******/ (() => { +/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) +/******/ })(); +/******/ +/******/ /* webpack/runtime/make namespace object */ +/******/ (() => { +/******/ // define __esModule on exports +/******/ __webpack_require__.r = (exports) => { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/jsonp chunk loading */ +/******/ (() => { +/******/ // no baseURI +/******/ +/******/ // object to store loaded and loading chunks +/******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched +/******/ // [resolve, reject, Promise] = chunk loading, 0 = chunk loaded +/******/ var installedChunks = { +/******/ "blocks/release-checks/index": 0, +/******/ "blocks/release-checks/style-index": 0 +/******/ }; +/******/ +/******/ // no chunk on demand loading +/******/ +/******/ // no prefetching +/******/ +/******/ // no preloaded +/******/ +/******/ // no HMR +/******/ +/******/ // no HMR manifest +/******/ +/******/ __webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0); +/******/ +/******/ // install a JSONP callback for chunk loading +/******/ var webpackJsonpCallback = (parentChunkLoadingFunction, data) => { +/******/ var chunkIds = data[0]; +/******/ var moreModules = data[1]; +/******/ var runtime = data[2]; +/******/ // add "moreModules" to the modules object, +/******/ // then flag all "chunkIds" as loaded and fire callback +/******/ var moduleId, chunkId, i = 0; +/******/ if(chunkIds.some((id) => (installedChunks[id] !== 0))) { +/******/ for(moduleId in moreModules) { +/******/ if(__webpack_require__.o(moreModules, moduleId)) { +/******/ __webpack_require__.m[moduleId] = moreModules[moduleId]; +/******/ } +/******/ } +/******/ if(runtime) var result = runtime(__webpack_require__); +/******/ } +/******/ if(parentChunkLoadingFunction) parentChunkLoadingFunction(data); +/******/ for(;i < chunkIds.length; i++) { +/******/ chunkId = chunkIds[i]; +/******/ if(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) { +/******/ installedChunks[chunkId][0](); +/******/ } +/******/ installedChunks[chunkId] = 0; +/******/ } +/******/ return __webpack_require__.O(result); +/******/ } +/******/ +/******/ var chunkLoadingGlobal = self["webpackChunkwporg_plugins_2024"] = self["webpackChunkwporg_plugins_2024"] || []; +/******/ chunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0)); +/******/ chunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal)); +/******/ })(); +/******/ +/************************************************************************/ +/******/ +/******/ // startup +/******/ // Load entry module and return exports +/******/ // This entry module depends on other loaded chunks and execution need to be delayed +/******/ var __webpack_exports__ = __webpack_require__.O(undefined, ["blocks/release-checks/style-index"], () => (__webpack_require__("./src/blocks/release-checks/index.js"))) +/******/ __webpack_exports__ = __webpack_require__.O(__webpack_exports__); +/******/ +/******/ })() +; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks/render.php new file mode 100644 index 0000000000..55230a69d7 --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks/render.php @@ -0,0 +1,11 @@ + + + diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks/style-index.css b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks/style-index.css new file mode 100644 index 0000000000..177995f6fe --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks/style-index.css @@ -0,0 +1,4 @@ +/*!*************************************************************************************************************************************************************************************************************************************************************!*\ + !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/blocks/release-checks/style.scss ***! + \*************************************************************************************************************************************************************************************************************************************************************/ + diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-confirmation/block.json b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-confirmation/block.json new file mode 100644 index 0000000000..09fc18d944 --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-confirmation/block.json @@ -0,0 +1,21 @@ +{ + "$schema": "https://schemas.wp.org/trunk/block.json", + "apiVersion": 2, + "name": "wporg/release-confirmation", + "version": "0.1.0", + "title": "Release confirmation banner.", + "category": "design", + "icon": "", + "description": "A block to display release confirmation banner.", + "textdomain": "wporg", + "attributes": {}, + "supports": { + "html": false + }, + "usesContext": [ + "postId" + ], + "editorScript": "file:./index.js", + "render": "file:./render.php", + "style": "file:./style-index.css" +} \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-confirmation/index.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-confirmation/index.asset.php new file mode 100644 index 0000000000..c63d21c5fa --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-confirmation/index.asset.php @@ -0,0 +1 @@ + array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => '7e90263901f994049c19'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-confirmation/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-confirmation/index.js new file mode 100644 index 0000000000..0763f98fa9 --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-confirmation/index.js @@ -0,0 +1,298 @@ +/******/ (() => { // webpackBootstrap +/******/ "use strict"; +/******/ var __webpack_modules__ = ({ + +/***/ "./src/blocks/release-confirmation/index.js": +/*!**************************************************!*\ + !*** ./src/blocks/release-confirmation/index.js ***! + \**************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); +/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/blocks */ "@wordpress/blocks"); +/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/server-side-render */ "@wordpress/server-side-render"); +/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/block-editor */ "@wordpress/block-editor"); +/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__); +/* harmony import */ var _block_json__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./block.json */ "./src/blocks/release-confirmation/block.json"); +/* harmony import */ var _style_scss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./style.scss */ "./src/blocks/release-confirmation/style.scss"); + +/** + * WordPress dependencies + */ + + + + + +/** + * Internal dependencies + */ + + +function Edit({ + attributes, + name +}) { + return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", { + ...(0,_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__.useBlockProps)() + }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Disabled, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)((_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default()), { + block: name, + attributes: attributes + }))); +} +(0,_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__.registerBlockType)(_block_json__WEBPACK_IMPORTED_MODULE_5__.name, { + edit: Edit, + save: () => null +}); + +/***/ }), + +/***/ "./src/blocks/release-confirmation/style.scss": +/*!****************************************************!*\ + !*** ./src/blocks/release-confirmation/style.scss ***! + \****************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +// extracted by mini-css-extract-plugin + + +/***/ }), + +/***/ "react": +/*!************************!*\ + !*** external "React" ***! + \************************/ +/***/ ((module) => { + +module.exports = window["React"]; + +/***/ }), + +/***/ "@wordpress/block-editor": +/*!*************************************!*\ + !*** external ["wp","blockEditor"] ***! + \*************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["blockEditor"]; + +/***/ }), + +/***/ "@wordpress/blocks": +/*!********************************!*\ + !*** external ["wp","blocks"] ***! + \********************************/ +/***/ ((module) => { + +module.exports = window["wp"]["blocks"]; + +/***/ }), + +/***/ "@wordpress/components": +/*!************************************!*\ + !*** external ["wp","components"] ***! + \************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["components"]; + +/***/ }), + +/***/ "@wordpress/server-side-render": +/*!******************************************!*\ + !*** external ["wp","serverSideRender"] ***! + \******************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["serverSideRender"]; + +/***/ }), + +/***/ "./src/blocks/release-confirmation/block.json": +/*!****************************************************!*\ + !*** ./src/blocks/release-confirmation/block.json ***! + \****************************************************/ +/***/ ((module) => { + +module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"wporg/release-confirmation","version":"0.1.0","title":"Release confirmation banner.","category":"design","icon":"","description":"A block to display release confirmation banner.","textdomain":"wporg","attributes":{},"supports":{"html":false},"usesContext":["postId"],"editorScript":"file:./index.js","render":"file:./render.php","style":"file:./style-index.css"}'); + +/***/ }) + +/******/ }); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ // no module.id needed +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = __webpack_modules__; +/******/ +/************************************************************************/ +/******/ /* webpack/runtime/chunk loaded */ +/******/ (() => { +/******/ var deferred = []; +/******/ __webpack_require__.O = (result, chunkIds, fn, priority) => { +/******/ if(chunkIds) { +/******/ priority = priority || 0; +/******/ for(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1]; +/******/ deferred[i] = [chunkIds, fn, priority]; +/******/ return; +/******/ } +/******/ var notFulfilled = Infinity; +/******/ for (var i = 0; i < deferred.length; i++) { +/******/ var chunkIds = deferred[i][0]; +/******/ var fn = deferred[i][1]; +/******/ var priority = deferred[i][2]; +/******/ var fulfilled = true; +/******/ for (var j = 0; j < chunkIds.length; j++) { +/******/ if ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) { +/******/ chunkIds.splice(j--, 1); +/******/ } else { +/******/ fulfilled = false; +/******/ if(priority < notFulfilled) notFulfilled = priority; +/******/ } +/******/ } +/******/ if(fulfilled) { +/******/ deferred.splice(i--, 1) +/******/ var r = fn(); +/******/ if (r !== undefined) result = r; +/******/ } +/******/ } +/******/ return result; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/compat get default export */ +/******/ (() => { +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = (module) => { +/******/ var getter = module && module.__esModule ? +/******/ () => (module['default']) : +/******/ () => (module); +/******/ __webpack_require__.d(getter, { a: getter }); +/******/ return getter; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/define property getters */ +/******/ (() => { +/******/ // define getter functions for harmony exports +/******/ __webpack_require__.d = (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 */ +/******/ (() => { +/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) +/******/ })(); +/******/ +/******/ /* webpack/runtime/make namespace object */ +/******/ (() => { +/******/ // define __esModule on exports +/******/ __webpack_require__.r = (exports) => { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/jsonp chunk loading */ +/******/ (() => { +/******/ // no baseURI +/******/ +/******/ // object to store loaded and loading chunks +/******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched +/******/ // [resolve, reject, Promise] = chunk loading, 0 = chunk loaded +/******/ var installedChunks = { +/******/ "blocks/release-confirmation/index": 0, +/******/ "blocks/release-confirmation/style-index": 0 +/******/ }; +/******/ +/******/ // no chunk on demand loading +/******/ +/******/ // no prefetching +/******/ +/******/ // no preloaded +/******/ +/******/ // no HMR +/******/ +/******/ // no HMR manifest +/******/ +/******/ __webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0); +/******/ +/******/ // install a JSONP callback for chunk loading +/******/ var webpackJsonpCallback = (parentChunkLoadingFunction, data) => { +/******/ var chunkIds = data[0]; +/******/ var moreModules = data[1]; +/******/ var runtime = data[2]; +/******/ // add "moreModules" to the modules object, +/******/ // then flag all "chunkIds" as loaded and fire callback +/******/ var moduleId, chunkId, i = 0; +/******/ if(chunkIds.some((id) => (installedChunks[id] !== 0))) { +/******/ for(moduleId in moreModules) { +/******/ if(__webpack_require__.o(moreModules, moduleId)) { +/******/ __webpack_require__.m[moduleId] = moreModules[moduleId]; +/******/ } +/******/ } +/******/ if(runtime) var result = runtime(__webpack_require__); +/******/ } +/******/ if(parentChunkLoadingFunction) parentChunkLoadingFunction(data); +/******/ for(;i < chunkIds.length; i++) { +/******/ chunkId = chunkIds[i]; +/******/ if(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) { +/******/ installedChunks[chunkId][0](); +/******/ } +/******/ installedChunks[chunkId] = 0; +/******/ } +/******/ return __webpack_require__.O(result); +/******/ } +/******/ +/******/ var chunkLoadingGlobal = self["webpackChunkwporg_plugins_2024"] = self["webpackChunkwporg_plugins_2024"] || []; +/******/ chunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0)); +/******/ chunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal)); +/******/ })(); +/******/ +/************************************************************************/ +/******/ +/******/ // startup +/******/ // Load entry module and return exports +/******/ // This entry module depends on other loaded chunks and execution need to be delayed +/******/ var __webpack_exports__ = __webpack_require__.O(undefined, ["blocks/release-confirmation/style-index"], () => (__webpack_require__("./src/blocks/release-confirmation/index.js"))) +/******/ __webpack_exports__ = __webpack_require__.O(__webpack_exports__); +/******/ +/******/ })() +; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-confirmation/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-confirmation/render.php new file mode 100644 index 0000000000..ed6aa94c30 --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-confirmation/render.php @@ -0,0 +1,56 @@ +context['postId']; +if ( ! $current_post_id ) { + return; +} + +$post = get_post( $block->context['postId'] ); +if ( ! $post ) { + return; +} + +if( 'publish' === $post->post_status) { + return; +} + +$copy = sprintf( + 'This release was last updated on %s by %s.', + date_i18n( get_option( 'date_format' ) . ' ' . get_option( 'time_format' ), strtotime( $post->post_modified ) ), + get_the_author_meta( 'display_name', $post->post_author ) +); + +?> + +
> + + +
+

+ + + +

+ + + +
+
+
+ + + +
+
+
+
+ + + + + + +
+ + + diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-confirmation/style-index.css b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-confirmation/style-index.css new file mode 100644 index 0000000000..aeb3acd5c6 --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-confirmation/style-index.css @@ -0,0 +1,8 @@ +/*!*******************************************************************************************************************************************************************************************************************************************************************!*\ + !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/blocks/release-confirmation/style.scss ***! + \*******************************************************************************************************************************************************************************************************************************************************************/ +.wp-block-wporg-release-confirmation .wp-block-buttons { + display: flex; +} + +/*# sourceMappingURL=style-index.css.map*/ \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status copy/block.json b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status copy/block.json new file mode 100644 index 0000000000..b92e587f36 --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status copy/block.json @@ -0,0 +1,21 @@ +{ + "$schema": "https://schemas.wp.org/trunk/block.json", + "apiVersion": 2, + "name": "wporg/release-status", + "version": "0.1.0", + "title": "Displays release status.", + "category": "design", + "icon": "", + "description": "A block to display release status", + "textdomain": "wporg", + "attributes": {}, + "supports": { + "html": false + }, + "usesContext": [ + "postId" + ], + "editorScript": "file:./index.js", + "render": "file:./render.php", + "style": "file:./style-index.css" +} \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status copy/index.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status copy/index.asset.php new file mode 100644 index 0000000000..047eab21cf --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status copy/index.asset.php @@ -0,0 +1 @@ + array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => 'bcb8765d8662b3726a15'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status copy/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status copy/index.js new file mode 100644 index 0000000000..1717ab0084 --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status copy/index.js @@ -0,0 +1,298 @@ +/******/ (() => { // webpackBootstrap +/******/ "use strict"; +/******/ var __webpack_modules__ = ({ + +/***/ "./src/blocks/release-status copy/index.js": +/*!*************************************************!*\ + !*** ./src/blocks/release-status copy/index.js ***! + \*************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); +/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/blocks */ "@wordpress/blocks"); +/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/server-side-render */ "@wordpress/server-side-render"); +/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/block-editor */ "@wordpress/block-editor"); +/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__); +/* harmony import */ var _block_json__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./block.json */ "./src/blocks/release-status copy/block.json"); +/* harmony import */ var _style_scss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./style.scss */ "./src/blocks/release-status copy/style.scss"); + +/** + * WordPress dependencies + */ + + + + + +/** + * Internal dependencies + */ + + +function Edit({ + attributes, + name +}) { + return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", { + ...(0,_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__.useBlockProps)() + }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Disabled, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)((_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default()), { + block: name, + attributes: attributes + }))); +} +(0,_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__.registerBlockType)(_block_json__WEBPACK_IMPORTED_MODULE_5__.name, { + edit: Edit, + save: () => null +}); + +/***/ }), + +/***/ "./src/blocks/release-status copy/style.scss": +/*!***************************************************!*\ + !*** ./src/blocks/release-status copy/style.scss ***! + \***************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +// extracted by mini-css-extract-plugin + + +/***/ }), + +/***/ "react": +/*!************************!*\ + !*** external "React" ***! + \************************/ +/***/ ((module) => { + +module.exports = window["React"]; + +/***/ }), + +/***/ "@wordpress/block-editor": +/*!*************************************!*\ + !*** external ["wp","blockEditor"] ***! + \*************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["blockEditor"]; + +/***/ }), + +/***/ "@wordpress/blocks": +/*!********************************!*\ + !*** external ["wp","blocks"] ***! + \********************************/ +/***/ ((module) => { + +module.exports = window["wp"]["blocks"]; + +/***/ }), + +/***/ "@wordpress/components": +/*!************************************!*\ + !*** external ["wp","components"] ***! + \************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["components"]; + +/***/ }), + +/***/ "@wordpress/server-side-render": +/*!******************************************!*\ + !*** external ["wp","serverSideRender"] ***! + \******************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["serverSideRender"]; + +/***/ }), + +/***/ "./src/blocks/release-status copy/block.json": +/*!***************************************************!*\ + !*** ./src/blocks/release-status copy/block.json ***! + \***************************************************/ +/***/ ((module) => { + +module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"wporg/release-status","version":"0.1.0","title":"Displays release status.","category":"design","icon":"","description":"A block to display release status","textdomain":"wporg","attributes":{},"supports":{"html":false},"usesContext":["postId"],"editorScript":"file:./index.js","render":"file:./render.php","style":"file:./style-index.css"}'); + +/***/ }) + +/******/ }); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ // no module.id needed +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = __webpack_modules__; +/******/ +/************************************************************************/ +/******/ /* webpack/runtime/chunk loaded */ +/******/ (() => { +/******/ var deferred = []; +/******/ __webpack_require__.O = (result, chunkIds, fn, priority) => { +/******/ if(chunkIds) { +/******/ priority = priority || 0; +/******/ for(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1]; +/******/ deferred[i] = [chunkIds, fn, priority]; +/******/ return; +/******/ } +/******/ var notFulfilled = Infinity; +/******/ for (var i = 0; i < deferred.length; i++) { +/******/ var chunkIds = deferred[i][0]; +/******/ var fn = deferred[i][1]; +/******/ var priority = deferred[i][2]; +/******/ var fulfilled = true; +/******/ for (var j = 0; j < chunkIds.length; j++) { +/******/ if ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) { +/******/ chunkIds.splice(j--, 1); +/******/ } else { +/******/ fulfilled = false; +/******/ if(priority < notFulfilled) notFulfilled = priority; +/******/ } +/******/ } +/******/ if(fulfilled) { +/******/ deferred.splice(i--, 1) +/******/ var r = fn(); +/******/ if (r !== undefined) result = r; +/******/ } +/******/ } +/******/ return result; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/compat get default export */ +/******/ (() => { +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = (module) => { +/******/ var getter = module && module.__esModule ? +/******/ () => (module['default']) : +/******/ () => (module); +/******/ __webpack_require__.d(getter, { a: getter }); +/******/ return getter; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/define property getters */ +/******/ (() => { +/******/ // define getter functions for harmony exports +/******/ __webpack_require__.d = (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 */ +/******/ (() => { +/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) +/******/ })(); +/******/ +/******/ /* webpack/runtime/make namespace object */ +/******/ (() => { +/******/ // define __esModule on exports +/******/ __webpack_require__.r = (exports) => { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/jsonp chunk loading */ +/******/ (() => { +/******/ // no baseURI +/******/ +/******/ // object to store loaded and loading chunks +/******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched +/******/ // [resolve, reject, Promise] = chunk loading, 0 = chunk loaded +/******/ var installedChunks = { +/******/ "blocks/release-status copy/index": 0, +/******/ "blocks/release-status copy/style-index": 0 +/******/ }; +/******/ +/******/ // no chunk on demand loading +/******/ +/******/ // no prefetching +/******/ +/******/ // no preloaded +/******/ +/******/ // no HMR +/******/ +/******/ // no HMR manifest +/******/ +/******/ __webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0); +/******/ +/******/ // install a JSONP callback for chunk loading +/******/ var webpackJsonpCallback = (parentChunkLoadingFunction, data) => { +/******/ var chunkIds = data[0]; +/******/ var moreModules = data[1]; +/******/ var runtime = data[2]; +/******/ // add "moreModules" to the modules object, +/******/ // then flag all "chunkIds" as loaded and fire callback +/******/ var moduleId, chunkId, i = 0; +/******/ if(chunkIds.some((id) => (installedChunks[id] !== 0))) { +/******/ for(moduleId in moreModules) { +/******/ if(__webpack_require__.o(moreModules, moduleId)) { +/******/ __webpack_require__.m[moduleId] = moreModules[moduleId]; +/******/ } +/******/ } +/******/ if(runtime) var result = runtime(__webpack_require__); +/******/ } +/******/ if(parentChunkLoadingFunction) parentChunkLoadingFunction(data); +/******/ for(;i < chunkIds.length; i++) { +/******/ chunkId = chunkIds[i]; +/******/ if(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) { +/******/ installedChunks[chunkId][0](); +/******/ } +/******/ installedChunks[chunkId] = 0; +/******/ } +/******/ return __webpack_require__.O(result); +/******/ } +/******/ +/******/ var chunkLoadingGlobal = self["webpackChunkwporg_plugins_2024"] = self["webpackChunkwporg_plugins_2024"] || []; +/******/ chunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0)); +/******/ chunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal)); +/******/ })(); +/******/ +/************************************************************************/ +/******/ +/******/ // startup +/******/ // Load entry module and return exports +/******/ // This entry module depends on other loaded chunks and execution need to be delayed +/******/ var __webpack_exports__ = __webpack_require__.O(undefined, ["blocks/release-status copy/style-index"], () => (__webpack_require__("./src/blocks/release-status copy/index.js"))) +/******/ __webpack_exports__ = __webpack_require__.O(__webpack_exports__); +/******/ +/******/ })() +; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status copy/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status copy/render.php new file mode 100644 index 0000000000..7ee87a9871 --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status copy/render.php @@ -0,0 +1,16 @@ +context['postId']; +if ( ! $current_post_id ) { + return; +} + +$post = get_post( $block->context['postId'] ); +if ( ! $post ) { + return; +} +?> + +
> +post_status)->label; ?> +
diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status copy/style-index.css b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status copy/style-index.css new file mode 100644 index 0000000000..16b3b8b379 --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status copy/style-index.css @@ -0,0 +1,11 @@ +/*!******************************************************************************************************************************************************************************************************************************************************************!*\ + !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/blocks/release-status copy/style.scss ***! + \******************************************************************************************************************************************************************************************************************************************************************/ +.wp-block-wporg-release-status { + padding: 2px 10px; + border: 1px solid var(--wp--preset--color--blueberry-3); + font-size: var(--wp--preset--font-size--extra-small); + border-radius: var(--wp--custom--button--border--radius); +} + +/*# sourceMappingURL=style-index.css.map*/ \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status-tab/block.json b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status-tab/block.json new file mode 100644 index 0000000000..0bf86d5258 --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status-tab/block.json @@ -0,0 +1,18 @@ +{ + "$schema": "https://schemas.wp.org/trunk/block.json", + "apiVersion": 2, + "name": "wporg/release-status", + "version": "0.1.0", + "title": "Displays release status.", + "category": "design", + "icon": "", + "description": "A block to display release status", + "textdomain": "wporg", + "attributes": {}, + "supports": { + "html": false + }, + "editorScript": "file:./index.js", + "render": "file:./render.php", + "style": "file:./style-index.css" +} \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status-tab/index.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status-tab/index.asset.php new file mode 100644 index 0000000000..32b7d9f747 --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status-tab/index.asset.php @@ -0,0 +1 @@ + array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => '2fb9fcaa2ec206c0e60f'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status-tab/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status-tab/index.js new file mode 100644 index 0000000000..6918d5b4fa --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status-tab/index.js @@ -0,0 +1,298 @@ +/******/ (() => { // webpackBootstrap +/******/ "use strict"; +/******/ var __webpack_modules__ = ({ + +/***/ "./src/blocks/release-status-tab/index.js": +/*!************************************************!*\ + !*** ./src/blocks/release-status-tab/index.js ***! + \************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); +/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/blocks */ "@wordpress/blocks"); +/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/server-side-render */ "@wordpress/server-side-render"); +/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/block-editor */ "@wordpress/block-editor"); +/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__); +/* harmony import */ var _block_json__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./block.json */ "./src/blocks/release-status-tab/block.json"); +/* harmony import */ var _style_scss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./style.scss */ "./src/blocks/release-status-tab/style.scss"); + +/** + * WordPress dependencies + */ + + + + + +/** + * Internal dependencies + */ + + +function Edit({ + attributes, + name +}) { + return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", { + ...(0,_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__.useBlockProps)() + }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Disabled, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)((_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default()), { + block: name, + attributes: attributes + }))); +} +(0,_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__.registerBlockType)(_block_json__WEBPACK_IMPORTED_MODULE_5__.name, { + edit: Edit, + save: () => null +}); + +/***/ }), + +/***/ "./src/blocks/release-status-tab/style.scss": +/*!**************************************************!*\ + !*** ./src/blocks/release-status-tab/style.scss ***! + \**************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +// extracted by mini-css-extract-plugin + + +/***/ }), + +/***/ "react": +/*!************************!*\ + !*** external "React" ***! + \************************/ +/***/ ((module) => { + +module.exports = window["React"]; + +/***/ }), + +/***/ "@wordpress/block-editor": +/*!*************************************!*\ + !*** external ["wp","blockEditor"] ***! + \*************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["blockEditor"]; + +/***/ }), + +/***/ "@wordpress/blocks": +/*!********************************!*\ + !*** external ["wp","blocks"] ***! + \********************************/ +/***/ ((module) => { + +module.exports = window["wp"]["blocks"]; + +/***/ }), + +/***/ "@wordpress/components": +/*!************************************!*\ + !*** external ["wp","components"] ***! + \************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["components"]; + +/***/ }), + +/***/ "@wordpress/server-side-render": +/*!******************************************!*\ + !*** external ["wp","serverSideRender"] ***! + \******************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["serverSideRender"]; + +/***/ }), + +/***/ "./src/blocks/release-status-tab/block.json": +/*!**************************************************!*\ + !*** ./src/blocks/release-status-tab/block.json ***! + \**************************************************/ +/***/ ((module) => { + +module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"wporg/release-status","version":"0.1.0","title":"Displays release status.","category":"design","icon":"","description":"A block to display release status","textdomain":"wporg","attributes":{},"supports":{"html":false},"editorScript":"file:./index.js","render":"file:./render.php","style":"file:./style-index.css"}'); + +/***/ }) + +/******/ }); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ // no module.id needed +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = __webpack_modules__; +/******/ +/************************************************************************/ +/******/ /* webpack/runtime/chunk loaded */ +/******/ (() => { +/******/ var deferred = []; +/******/ __webpack_require__.O = (result, chunkIds, fn, priority) => { +/******/ if(chunkIds) { +/******/ priority = priority || 0; +/******/ for(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1]; +/******/ deferred[i] = [chunkIds, fn, priority]; +/******/ return; +/******/ } +/******/ var notFulfilled = Infinity; +/******/ for (var i = 0; i < deferred.length; i++) { +/******/ var chunkIds = deferred[i][0]; +/******/ var fn = deferred[i][1]; +/******/ var priority = deferred[i][2]; +/******/ var fulfilled = true; +/******/ for (var j = 0; j < chunkIds.length; j++) { +/******/ if ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) { +/******/ chunkIds.splice(j--, 1); +/******/ } else { +/******/ fulfilled = false; +/******/ if(priority < notFulfilled) notFulfilled = priority; +/******/ } +/******/ } +/******/ if(fulfilled) { +/******/ deferred.splice(i--, 1) +/******/ var r = fn(); +/******/ if (r !== undefined) result = r; +/******/ } +/******/ } +/******/ return result; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/compat get default export */ +/******/ (() => { +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = (module) => { +/******/ var getter = module && module.__esModule ? +/******/ () => (module['default']) : +/******/ () => (module); +/******/ __webpack_require__.d(getter, { a: getter }); +/******/ return getter; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/define property getters */ +/******/ (() => { +/******/ // define getter functions for harmony exports +/******/ __webpack_require__.d = (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 */ +/******/ (() => { +/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) +/******/ })(); +/******/ +/******/ /* webpack/runtime/make namespace object */ +/******/ (() => { +/******/ // define __esModule on exports +/******/ __webpack_require__.r = (exports) => { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/jsonp chunk loading */ +/******/ (() => { +/******/ // no baseURI +/******/ +/******/ // object to store loaded and loading chunks +/******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched +/******/ // [resolve, reject, Promise] = chunk loading, 0 = chunk loaded +/******/ var installedChunks = { +/******/ "blocks/release-status-tab/index": 0, +/******/ "blocks/release-status-tab/style-index": 0 +/******/ }; +/******/ +/******/ // no chunk on demand loading +/******/ +/******/ // no prefetching +/******/ +/******/ // no preloaded +/******/ +/******/ // no HMR +/******/ +/******/ // no HMR manifest +/******/ +/******/ __webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0); +/******/ +/******/ // install a JSONP callback for chunk loading +/******/ var webpackJsonpCallback = (parentChunkLoadingFunction, data) => { +/******/ var chunkIds = data[0]; +/******/ var moreModules = data[1]; +/******/ var runtime = data[2]; +/******/ // add "moreModules" to the modules object, +/******/ // then flag all "chunkIds" as loaded and fire callback +/******/ var moduleId, chunkId, i = 0; +/******/ if(chunkIds.some((id) => (installedChunks[id] !== 0))) { +/******/ for(moduleId in moreModules) { +/******/ if(__webpack_require__.o(moreModules, moduleId)) { +/******/ __webpack_require__.m[moduleId] = moreModules[moduleId]; +/******/ } +/******/ } +/******/ if(runtime) var result = runtime(__webpack_require__); +/******/ } +/******/ if(parentChunkLoadingFunction) parentChunkLoadingFunction(data); +/******/ for(;i < chunkIds.length; i++) { +/******/ chunkId = chunkIds[i]; +/******/ if(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) { +/******/ installedChunks[chunkId][0](); +/******/ } +/******/ installedChunks[chunkId] = 0; +/******/ } +/******/ return __webpack_require__.O(result); +/******/ } +/******/ +/******/ var chunkLoadingGlobal = self["webpackChunkwporg_plugins_2024"] = self["webpackChunkwporg_plugins_2024"] || []; +/******/ chunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0)); +/******/ chunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal)); +/******/ })(); +/******/ +/************************************************************************/ +/******/ +/******/ // startup +/******/ // Load entry module and return exports +/******/ // This entry module depends on other loaded chunks and execution need to be delayed +/******/ var __webpack_exports__ = __webpack_require__.O(undefined, ["blocks/release-status-tab/style-index"], () => (__webpack_require__("./src/blocks/release-status-tab/index.js"))) +/******/ __webpack_exports__ = __webpack_require__.O(__webpack_exports__); +/******/ +/******/ })() +; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status-tab/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status-tab/render.php new file mode 100644 index 0000000000..55230a69d7 --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status-tab/render.php @@ -0,0 +1,11 @@ + + + diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status-tab/style-index.css b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status-tab/style-index.css new file mode 100644 index 0000000000..a6faefb59c --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status-tab/style-index.css @@ -0,0 +1,4 @@ +/*!*****************************************************************************************************************************************************************************************************************************************************************!*\ + !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/blocks/release-status-tab/style.scss ***! + \*****************************************************************************************************************************************************************************************************************************************************************/ + diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status/block.json b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status/block.json new file mode 100644 index 0000000000..b92e587f36 --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status/block.json @@ -0,0 +1,21 @@ +{ + "$schema": "https://schemas.wp.org/trunk/block.json", + "apiVersion": 2, + "name": "wporg/release-status", + "version": "0.1.0", + "title": "Displays release status.", + "category": "design", + "icon": "", + "description": "A block to display release status", + "textdomain": "wporg", + "attributes": {}, + "supports": { + "html": false + }, + "usesContext": [ + "postId" + ], + "editorScript": "file:./index.js", + "render": "file:./render.php", + "style": "file:./style-index.css" +} \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status/index.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status/index.asset.php new file mode 100644 index 0000000000..a633bbc607 --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status/index.asset.php @@ -0,0 +1 @@ + array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => 'c8b67e982eee590fc342'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status/index.js new file mode 100644 index 0000000000..7e48e7abc5 --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status/index.js @@ -0,0 +1,298 @@ +/******/ (() => { // webpackBootstrap +/******/ "use strict"; +/******/ var __webpack_modules__ = ({ + +/***/ "./src/blocks/release-status/index.js": +/*!********************************************!*\ + !*** ./src/blocks/release-status/index.js ***! + \********************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); +/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/blocks */ "@wordpress/blocks"); +/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/server-side-render */ "@wordpress/server-side-render"); +/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/block-editor */ "@wordpress/block-editor"); +/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__); +/* harmony import */ var _block_json__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./block.json */ "./src/blocks/release-status/block.json"); +/* harmony import */ var _style_scss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./style.scss */ "./src/blocks/release-status/style.scss"); + +/** + * WordPress dependencies + */ + + + + + +/** + * Internal dependencies + */ + + +function Edit({ + attributes, + name +}) { + return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", { + ...(0,_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__.useBlockProps)() + }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Disabled, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)((_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default()), { + block: name, + attributes: attributes + }))); +} +(0,_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__.registerBlockType)(_block_json__WEBPACK_IMPORTED_MODULE_5__.name, { + edit: Edit, + save: () => null +}); + +/***/ }), + +/***/ "./src/blocks/release-status/style.scss": +/*!**********************************************!*\ + !*** ./src/blocks/release-status/style.scss ***! + \**********************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +// extracted by mini-css-extract-plugin + + +/***/ }), + +/***/ "react": +/*!************************!*\ + !*** external "React" ***! + \************************/ +/***/ ((module) => { + +module.exports = window["React"]; + +/***/ }), + +/***/ "@wordpress/block-editor": +/*!*************************************!*\ + !*** external ["wp","blockEditor"] ***! + \*************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["blockEditor"]; + +/***/ }), + +/***/ "@wordpress/blocks": +/*!********************************!*\ + !*** external ["wp","blocks"] ***! + \********************************/ +/***/ ((module) => { + +module.exports = window["wp"]["blocks"]; + +/***/ }), + +/***/ "@wordpress/components": +/*!************************************!*\ + !*** external ["wp","components"] ***! + \************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["components"]; + +/***/ }), + +/***/ "@wordpress/server-side-render": +/*!******************************************!*\ + !*** external ["wp","serverSideRender"] ***! + \******************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["serverSideRender"]; + +/***/ }), + +/***/ "./src/blocks/release-status/block.json": +/*!**********************************************!*\ + !*** ./src/blocks/release-status/block.json ***! + \**********************************************/ +/***/ ((module) => { + +module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"wporg/release-status","version":"0.1.0","title":"Displays release status.","category":"design","icon":"","description":"A block to display release status","textdomain":"wporg","attributes":{},"supports":{"html":false},"usesContext":["postId"],"editorScript":"file:./index.js","render":"file:./render.php","style":"file:./style-index.css"}'); + +/***/ }) + +/******/ }); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ // no module.id needed +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = __webpack_modules__; +/******/ +/************************************************************************/ +/******/ /* webpack/runtime/chunk loaded */ +/******/ (() => { +/******/ var deferred = []; +/******/ __webpack_require__.O = (result, chunkIds, fn, priority) => { +/******/ if(chunkIds) { +/******/ priority = priority || 0; +/******/ for(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1]; +/******/ deferred[i] = [chunkIds, fn, priority]; +/******/ return; +/******/ } +/******/ var notFulfilled = Infinity; +/******/ for (var i = 0; i < deferred.length; i++) { +/******/ var chunkIds = deferred[i][0]; +/******/ var fn = deferred[i][1]; +/******/ var priority = deferred[i][2]; +/******/ var fulfilled = true; +/******/ for (var j = 0; j < chunkIds.length; j++) { +/******/ if ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) { +/******/ chunkIds.splice(j--, 1); +/******/ } else { +/******/ fulfilled = false; +/******/ if(priority < notFulfilled) notFulfilled = priority; +/******/ } +/******/ } +/******/ if(fulfilled) { +/******/ deferred.splice(i--, 1) +/******/ var r = fn(); +/******/ if (r !== undefined) result = r; +/******/ } +/******/ } +/******/ return result; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/compat get default export */ +/******/ (() => { +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = (module) => { +/******/ var getter = module && module.__esModule ? +/******/ () => (module['default']) : +/******/ () => (module); +/******/ __webpack_require__.d(getter, { a: getter }); +/******/ return getter; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/define property getters */ +/******/ (() => { +/******/ // define getter functions for harmony exports +/******/ __webpack_require__.d = (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 */ +/******/ (() => { +/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) +/******/ })(); +/******/ +/******/ /* webpack/runtime/make namespace object */ +/******/ (() => { +/******/ // define __esModule on exports +/******/ __webpack_require__.r = (exports) => { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/jsonp chunk loading */ +/******/ (() => { +/******/ // no baseURI +/******/ +/******/ // object to store loaded and loading chunks +/******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched +/******/ // [resolve, reject, Promise] = chunk loading, 0 = chunk loaded +/******/ var installedChunks = { +/******/ "blocks/release-status/index": 0, +/******/ "blocks/release-status/style-index": 0 +/******/ }; +/******/ +/******/ // no chunk on demand loading +/******/ +/******/ // no prefetching +/******/ +/******/ // no preloaded +/******/ +/******/ // no HMR +/******/ +/******/ // no HMR manifest +/******/ +/******/ __webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0); +/******/ +/******/ // install a JSONP callback for chunk loading +/******/ var webpackJsonpCallback = (parentChunkLoadingFunction, data) => { +/******/ var chunkIds = data[0]; +/******/ var moreModules = data[1]; +/******/ var runtime = data[2]; +/******/ // add "moreModules" to the modules object, +/******/ // then flag all "chunkIds" as loaded and fire callback +/******/ var moduleId, chunkId, i = 0; +/******/ if(chunkIds.some((id) => (installedChunks[id] !== 0))) { +/******/ for(moduleId in moreModules) { +/******/ if(__webpack_require__.o(moreModules, moduleId)) { +/******/ __webpack_require__.m[moduleId] = moreModules[moduleId]; +/******/ } +/******/ } +/******/ if(runtime) var result = runtime(__webpack_require__); +/******/ } +/******/ if(parentChunkLoadingFunction) parentChunkLoadingFunction(data); +/******/ for(;i < chunkIds.length; i++) { +/******/ chunkId = chunkIds[i]; +/******/ if(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) { +/******/ installedChunks[chunkId][0](); +/******/ } +/******/ installedChunks[chunkId] = 0; +/******/ } +/******/ return __webpack_require__.O(result); +/******/ } +/******/ +/******/ var chunkLoadingGlobal = self["webpackChunkwporg_plugins_2024"] = self["webpackChunkwporg_plugins_2024"] || []; +/******/ chunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0)); +/******/ chunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal)); +/******/ })(); +/******/ +/************************************************************************/ +/******/ +/******/ // startup +/******/ // Load entry module and return exports +/******/ // This entry module depends on other loaded chunks and execution need to be delayed +/******/ var __webpack_exports__ = __webpack_require__.O(undefined, ["blocks/release-status/style-index"], () => (__webpack_require__("./src/blocks/release-status/index.js"))) +/******/ __webpack_exports__ = __webpack_require__.O(__webpack_exports__); +/******/ +/******/ })() +; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status/render.php new file mode 100644 index 0000000000..7ee87a9871 --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status/render.php @@ -0,0 +1,16 @@ +context['postId']; +if ( ! $current_post_id ) { + return; +} + +$post = get_post( $block->context['postId'] ); +if ( ! $post ) { + return; +} +?> + +
> +post_status)->label; ?> +
diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status/style-index.css b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status/style-index.css new file mode 100644 index 0000000000..3a9fab5125 --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status/style-index.css @@ -0,0 +1,11 @@ +/*!*************************************************************************************************************************************************************************************************************************************************************!*\ + !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/blocks/release-status/style.scss ***! + \*************************************************************************************************************************************************************************************************************************************************************/ +.wp-block-wporg-release-status { + padding: 2px 10px; + border: 1px solid var(--wp--preset--color--blueberry-3); + font-size: var(--wp--preset--font-size--extra-small); + border-radius: var(--wp--custom--button--border--radius); +} + +/*# sourceMappingURL=style-index.css.map*/ \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/releases/block.json b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/releases/block.json new file mode 100644 index 0000000000..cf0728f8cd --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/releases/block.json @@ -0,0 +1,18 @@ +{ + "$schema": "https://schemas.wp.org/trunk/block.json", + "apiVersion": 2, + "name": "wporg/releases", + "version": "0.1.0", + "title": "Displays releases.", + "category": "design", + "icon": "", + "description": "A block to display releases", + "textdomain": "wporg", + "attributes": {}, + "supports": { + "html": false + }, + "editorScript": "file:./index.js", + "render": "file:./render.php", + "style": "file:./style-index.css" +} \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/releases/index.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/releases/index.asset.php new file mode 100644 index 0000000000..cd604a1be5 --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/releases/index.asset.php @@ -0,0 +1 @@ + array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => '92b98939fc1c5933a17d'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/releases/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/releases/index.js new file mode 100644 index 0000000000..dc1de64504 --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/releases/index.js @@ -0,0 +1,298 @@ +/******/ (() => { // webpackBootstrap +/******/ "use strict"; +/******/ var __webpack_modules__ = ({ + +/***/ "./src/blocks/releases/index.js": +/*!**************************************!*\ + !*** ./src/blocks/releases/index.js ***! + \**************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); +/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/blocks */ "@wordpress/blocks"); +/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/server-side-render */ "@wordpress/server-side-render"); +/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/block-editor */ "@wordpress/block-editor"); +/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__); +/* harmony import */ var _block_json__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./block.json */ "./src/blocks/releases/block.json"); +/* harmony import */ var _style_scss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./style.scss */ "./src/blocks/releases/style.scss"); + +/** + * WordPress dependencies + */ + + + + + +/** + * Internal dependencies + */ + + +function Edit({ + attributes, + name +}) { + return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", { + ...(0,_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__.useBlockProps)() + }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Disabled, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)((_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default()), { + block: name, + attributes: attributes + }))); +} +(0,_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__.registerBlockType)(_block_json__WEBPACK_IMPORTED_MODULE_5__.name, { + edit: Edit, + save: () => null +}); + +/***/ }), + +/***/ "./src/blocks/releases/style.scss": +/*!****************************************!*\ + !*** ./src/blocks/releases/style.scss ***! + \****************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +// extracted by mini-css-extract-plugin + + +/***/ }), + +/***/ "react": +/*!************************!*\ + !*** external "React" ***! + \************************/ +/***/ ((module) => { + +module.exports = window["React"]; + +/***/ }), + +/***/ "@wordpress/block-editor": +/*!*************************************!*\ + !*** external ["wp","blockEditor"] ***! + \*************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["blockEditor"]; + +/***/ }), + +/***/ "@wordpress/blocks": +/*!********************************!*\ + !*** external ["wp","blocks"] ***! + \********************************/ +/***/ ((module) => { + +module.exports = window["wp"]["blocks"]; + +/***/ }), + +/***/ "@wordpress/components": +/*!************************************!*\ + !*** external ["wp","components"] ***! + \************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["components"]; + +/***/ }), + +/***/ "@wordpress/server-side-render": +/*!******************************************!*\ + !*** external ["wp","serverSideRender"] ***! + \******************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["serverSideRender"]; + +/***/ }), + +/***/ "./src/blocks/releases/block.json": +/*!****************************************!*\ + !*** ./src/blocks/releases/block.json ***! + \****************************************/ +/***/ ((module) => { + +module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"wporg/releases","version":"0.1.0","title":"Displays releases.","category":"design","icon":"","description":"A block to display releases","textdomain":"wporg","attributes":{},"supports":{"html":false},"editorScript":"file:./index.js","render":"file:./render.php","style":"file:./style-index.css"}'); + +/***/ }) + +/******/ }); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ // no module.id needed +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = __webpack_modules__; +/******/ +/************************************************************************/ +/******/ /* webpack/runtime/chunk loaded */ +/******/ (() => { +/******/ var deferred = []; +/******/ __webpack_require__.O = (result, chunkIds, fn, priority) => { +/******/ if(chunkIds) { +/******/ priority = priority || 0; +/******/ for(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1]; +/******/ deferred[i] = [chunkIds, fn, priority]; +/******/ return; +/******/ } +/******/ var notFulfilled = Infinity; +/******/ for (var i = 0; i < deferred.length; i++) { +/******/ var chunkIds = deferred[i][0]; +/******/ var fn = deferred[i][1]; +/******/ var priority = deferred[i][2]; +/******/ var fulfilled = true; +/******/ for (var j = 0; j < chunkIds.length; j++) { +/******/ if ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) { +/******/ chunkIds.splice(j--, 1); +/******/ } else { +/******/ fulfilled = false; +/******/ if(priority < notFulfilled) notFulfilled = priority; +/******/ } +/******/ } +/******/ if(fulfilled) { +/******/ deferred.splice(i--, 1) +/******/ var r = fn(); +/******/ if (r !== undefined) result = r; +/******/ } +/******/ } +/******/ return result; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/compat get default export */ +/******/ (() => { +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = (module) => { +/******/ var getter = module && module.__esModule ? +/******/ () => (module['default']) : +/******/ () => (module); +/******/ __webpack_require__.d(getter, { a: getter }); +/******/ return getter; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/define property getters */ +/******/ (() => { +/******/ // define getter functions for harmony exports +/******/ __webpack_require__.d = (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 */ +/******/ (() => { +/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) +/******/ })(); +/******/ +/******/ /* webpack/runtime/make namespace object */ +/******/ (() => { +/******/ // define __esModule on exports +/******/ __webpack_require__.r = (exports) => { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/jsonp chunk loading */ +/******/ (() => { +/******/ // no baseURI +/******/ +/******/ // object to store loaded and loading chunks +/******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched +/******/ // [resolve, reject, Promise] = chunk loading, 0 = chunk loaded +/******/ var installedChunks = { +/******/ "blocks/releases/index": 0, +/******/ "blocks/releases/style-index": 0 +/******/ }; +/******/ +/******/ // no chunk on demand loading +/******/ +/******/ // no prefetching +/******/ +/******/ // no preloaded +/******/ +/******/ // no HMR +/******/ +/******/ // no HMR manifest +/******/ +/******/ __webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0); +/******/ +/******/ // install a JSONP callback for chunk loading +/******/ var webpackJsonpCallback = (parentChunkLoadingFunction, data) => { +/******/ var chunkIds = data[0]; +/******/ var moreModules = data[1]; +/******/ var runtime = data[2]; +/******/ // add "moreModules" to the modules object, +/******/ // then flag all "chunkIds" as loaded and fire callback +/******/ var moduleId, chunkId, i = 0; +/******/ if(chunkIds.some((id) => (installedChunks[id] !== 0))) { +/******/ for(moduleId in moreModules) { +/******/ if(__webpack_require__.o(moreModules, moduleId)) { +/******/ __webpack_require__.m[moduleId] = moreModules[moduleId]; +/******/ } +/******/ } +/******/ if(runtime) var result = runtime(__webpack_require__); +/******/ } +/******/ if(parentChunkLoadingFunction) parentChunkLoadingFunction(data); +/******/ for(;i < chunkIds.length; i++) { +/******/ chunkId = chunkIds[i]; +/******/ if(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) { +/******/ installedChunks[chunkId][0](); +/******/ } +/******/ installedChunks[chunkId] = 0; +/******/ } +/******/ return __webpack_require__.O(result); +/******/ } +/******/ +/******/ var chunkLoadingGlobal = self["webpackChunkwporg_plugins_2024"] = self["webpackChunkwporg_plugins_2024"] || []; +/******/ chunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0)); +/******/ chunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal)); +/******/ })(); +/******/ +/************************************************************************/ +/******/ +/******/ // startup +/******/ // Load entry module and return exports +/******/ // This entry module depends on other loaded chunks and execution need to be delayed +/******/ var __webpack_exports__ = __webpack_require__.O(undefined, ["blocks/releases/style-index"], () => (__webpack_require__("./src/blocks/releases/index.js"))) +/******/ __webpack_exports__ = __webpack_require__.O(__webpack_exports__); +/******/ +/******/ })() +; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/releases/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/releases/render.php new file mode 100644 index 0000000000..aa0276a40c --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/releases/render.php @@ -0,0 +1,53 @@ + +
+ +
+ +
+
+
+ +
+ + + +
+

Actions

+
+
+ + + +
+

Checks

+ + + + + +

Flags

+ + + + + +

Changelog

+ + +
+
+ +
+
+ +BLOCKS +); + +printf( + '
%2$s
', + get_block_wrapper_attributes(), + $content +); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/releases/style-index.css b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/releases/style-index.css new file mode 100644 index 0000000000..7adf0240dc --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/releases/style-index.css @@ -0,0 +1,9 @@ +/*!*******************************************************************************************************************************************************************************************************************************************************!*\ + !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/blocks/releases/style.scss ***! + \*******************************************************************************************************************************************************************************************************************************************************/ +.wp-block-wporg-releases ul { + margin-top: 0; + font-size: var(--wp--preset--font-size--small); +} + +/*# sourceMappingURL=style-index.css.map*/ \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/search-page/index.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/search-page/index.asset.php index 3874c78df8..324a1e825f 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/search-page/index.asset.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/search-page/index.asset.php @@ -1 +1 @@ - array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => '6b2f02802534bd210435'); + array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => '2932d78d72daed3eaacc'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/search-page/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/search-page/index.js index 66e06627aa..7e3f159885 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/search-page/index.js +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/search-page/index.js @@ -1 +1,183 @@ -(()=>{"use strict";var e={n:t=>{var r=t&&t.__esModule?()=>t.default:()=>t;return e.d(r,{a:r}),r},d:(t,r)=>{for(var o in r)e.o(r,o)&&!e.o(t,o)&&Object.defineProperty(t,o,{enumerable:!0,get:r[o]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t)};const t=window.React,r=window.wp.components,o=window.wp.blocks,n=window.wp.serverSideRender;var a=e.n(n);const c=window.wp.blockEditor,l=JSON.parse('{"u2":"wporg/search-page"}');(0,o.registerBlockType)(l.u2,{edit:function({attributes:e,name:o}){return(0,t.createElement)("div",{...(0,c.useBlockProps)()},(0,t.createElement)(r.Disabled,null,(0,t.createElement)(a(),{block:o,attributes:e})))},save:()=>null})})(); \ No newline at end of file +/******/ (() => { // webpackBootstrap +/******/ "use strict"; +/******/ var __webpack_modules__ = ({ + +/***/ "react": +/*!************************!*\ + !*** external "React" ***! + \************************/ +/***/ ((module) => { + +module.exports = window["React"]; + +/***/ }), + +/***/ "@wordpress/block-editor": +/*!*************************************!*\ + !*** external ["wp","blockEditor"] ***! + \*************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["blockEditor"]; + +/***/ }), + +/***/ "@wordpress/blocks": +/*!********************************!*\ + !*** external ["wp","blocks"] ***! + \********************************/ +/***/ ((module) => { + +module.exports = window["wp"]["blocks"]; + +/***/ }), + +/***/ "@wordpress/components": +/*!************************************!*\ + !*** external ["wp","components"] ***! + \************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["components"]; + +/***/ }), + +/***/ "@wordpress/server-side-render": +/*!******************************************!*\ + !*** external ["wp","serverSideRender"] ***! + \******************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["serverSideRender"]; + +/***/ }), + +/***/ "./src/blocks/search-page/block.json": +/*!*******************************************!*\ + !*** ./src/blocks/search-page/block.json ***! + \*******************************************/ +/***/ ((module) => { + +module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"wporg/search-page","version":"0.1.0","title":"Search Page Content","category":"design","icon":"","description":"A block that displays the search page content","textdomain":"wporg","attributes":{},"supports":{"html":false},"editorScript":"file:./index.js","render":"file:./render.php"}'); + +/***/ }) + +/******/ }); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ // no module.id needed +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/************************************************************************/ +/******/ /* webpack/runtime/compat get default export */ +/******/ (() => { +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = (module) => { +/******/ var getter = module && module.__esModule ? +/******/ () => (module['default']) : +/******/ () => (module); +/******/ __webpack_require__.d(getter, { a: getter }); +/******/ return getter; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/define property getters */ +/******/ (() => { +/******/ // define getter functions for harmony exports +/******/ __webpack_require__.d = (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 */ +/******/ (() => { +/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) +/******/ })(); +/******/ +/******/ /* webpack/runtime/make namespace object */ +/******/ (() => { +/******/ // define __esModule on exports +/******/ __webpack_require__.r = (exports) => { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ })(); +/******/ +/************************************************************************/ +var __webpack_exports__ = {}; +// This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk. +(() => { +/*!*****************************************!*\ + !*** ./src/blocks/search-page/index.js ***! + \*****************************************/ +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); +/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/blocks */ "@wordpress/blocks"); +/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/server-side-render */ "@wordpress/server-side-render"); +/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/block-editor */ "@wordpress/block-editor"); +/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__); +/* harmony import */ var _block_json__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./block.json */ "./src/blocks/search-page/block.json"); + +/** + * WordPress dependencies + */ + + + + + +/** + * Internal dependencies + */ + +function Edit({ + attributes, + name +}) { + return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", { + ...(0,_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__.useBlockProps)() + }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Disabled, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)((_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default()), { + block: name, + attributes: attributes + }))); +} +(0,_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__.registerBlockType)(_block_json__WEBPACK_IMPORTED_MODULE_5__.name, { + edit: Edit, + save: () => null +}); +})(); + +/******/ })() +; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/single-plugin/index.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/single-plugin/index.asset.php index cb40720c88..d35f709556 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/single-plugin/index.asset.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/single-plugin/index.asset.php @@ -1 +1 @@ - array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => '553d7b70458e5cb3fa39'); + array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => '1bb248b43dcc36e48747'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/single-plugin/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/single-plugin/index.js index 4d9a19fd2b..8c8d7df376 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/single-plugin/index.js +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/single-plugin/index.js @@ -1 +1,183 @@ -(()=>{"use strict";var e={n:t=>{var r=t&&t.__esModule?()=>t.default:()=>t;return e.d(r,{a:r}),r},d:(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:(e,t)=>Object.prototype.hasOwnProperty.call(e,t)};const t=window.React,r=window.wp.components,n=window.wp.blocks,o=window.wp.serverSideRender;var l=e.n(o);const a=window.wp.blockEditor,i=JSON.parse('{"u2":"wporg/single-plugin"}');(0,n.registerBlockType)(i.u2,{edit:function({attributes:e,name:n}){return(0,t.createElement)("div",{...(0,a.useBlockProps)()},(0,t.createElement)(r.Disabled,null,(0,t.createElement)(l(),{block:n,attributes:e})))},save:()=>null})})(); \ No newline at end of file +/******/ (() => { // webpackBootstrap +/******/ "use strict"; +/******/ var __webpack_modules__ = ({ + +/***/ "react": +/*!************************!*\ + !*** external "React" ***! + \************************/ +/***/ ((module) => { + +module.exports = window["React"]; + +/***/ }), + +/***/ "@wordpress/block-editor": +/*!*************************************!*\ + !*** external ["wp","blockEditor"] ***! + \*************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["blockEditor"]; + +/***/ }), + +/***/ "@wordpress/blocks": +/*!********************************!*\ + !*** external ["wp","blocks"] ***! + \********************************/ +/***/ ((module) => { + +module.exports = window["wp"]["blocks"]; + +/***/ }), + +/***/ "@wordpress/components": +/*!************************************!*\ + !*** external ["wp","components"] ***! + \************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["components"]; + +/***/ }), + +/***/ "@wordpress/server-side-render": +/*!******************************************!*\ + !*** external ["wp","serverSideRender"] ***! + \******************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["serverSideRender"]; + +/***/ }), + +/***/ "./src/blocks/single-plugin/block.json": +/*!*********************************************!*\ + !*** ./src/blocks/single-plugin/block.json ***! + \*********************************************/ +/***/ ((module) => { + +module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"wporg/single-plugin","version":"0.1.0","title":"Single Plugin Content","category":"design","icon":"","description":"A block that displays the single plugin content","textdomain":"wporg","attributes":{},"supports":{"html":false},"usesContext":["postId"],"editorScript":"file:./index.js","render":"file:./render.php"}'); + +/***/ }) + +/******/ }); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ // no module.id needed +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/************************************************************************/ +/******/ /* webpack/runtime/compat get default export */ +/******/ (() => { +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = (module) => { +/******/ var getter = module && module.__esModule ? +/******/ () => (module['default']) : +/******/ () => (module); +/******/ __webpack_require__.d(getter, { a: getter }); +/******/ return getter; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/define property getters */ +/******/ (() => { +/******/ // define getter functions for harmony exports +/******/ __webpack_require__.d = (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 */ +/******/ (() => { +/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) +/******/ })(); +/******/ +/******/ /* webpack/runtime/make namespace object */ +/******/ (() => { +/******/ // define __esModule on exports +/******/ __webpack_require__.r = (exports) => { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ })(); +/******/ +/************************************************************************/ +var __webpack_exports__ = {}; +// This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk. +(() => { +/*!*******************************************!*\ + !*** ./src/blocks/single-plugin/index.js ***! + \*******************************************/ +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); +/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/blocks */ "@wordpress/blocks"); +/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/server-side-render */ "@wordpress/server-side-render"); +/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/block-editor */ "@wordpress/block-editor"); +/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__); +/* harmony import */ var _block_json__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./block.json */ "./src/blocks/single-plugin/block.json"); + +/** + * WordPress dependencies + */ + + + + + +/** + * Internal dependencies + */ + +function Edit({ + attributes, + name +}) { + return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", { + ...(0,_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__.useBlockProps)() + }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Disabled, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)((_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default()), { + block: name, + attributes: attributes + }))); +} +(0,_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__.registerBlockType)(_block_json__WEBPACK_IMPORTED_MODULE_5__.name, { + edit: Edit, + save: () => null +}); +})(); + +/******/ })() +; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/client/components/plugin/_plugin-release.scss b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/client/components/plugin/_plugin-release.scss new file mode 100644 index 0000000000..0d86603e1a --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/client/components/plugin/_plugin-release.scss @@ -0,0 +1,21 @@ +.plugin-releases { + padding: 0; + list-style-type: none; +} + +.plugin-releases-item { + padding: var(--wp--style--block-gap); + margin-bottom: var(--wp--preset--spacing--30); + + border-radius: 4px; + border: 1px solid var(--wp--preset--color--light-grey-1); +} + +.plugin-releases-item-header { + display: flex; + justify-content: space-between; +} + +.plugin-releases-item-header h3 { + margin: 0px !important; +} \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/client/components/plugin/style.scss b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/client/components/plugin/style.scss index 85f975b96c..c0f8539017 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/client/components/plugin/style.scss +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/client/components/plugin/style.scss @@ -230,15 +230,17 @@ span#description, span#reviews, span#developers, - span#installation { + span#installation, + span#releases { position:fixed; } - span#reviews:not(:target) ~ span#installation:not(:target) ~ span#developers:not(:target) ~ span#advanced:not(.displayed) ~ #section-links .tabs li#tablink-description, + span#reviews:not(:target) ~ span#installation:not(:target) ~ span#developers:not(:target) ~ span#releases:not(:target) ~ span#advanced:not(.displayed) ~ #section-links .tabs li#tablink-description, span#reviews:target ~ #section-links .tabs li#tablink-reviews, span#installation:target ~ #section-links .tabs li#tablink-installation, span#developers:target ~ #section-links .tabs li#tablink-developers, - span#advanced.displayed ~ #section-links .tabs li#tablink-advanced { + span#advanced.displayed ~ #section-links .tabs li#tablink-advanced, + span#releases:target ~ #section-links .tabs li#tablink-releases { border-top: 1px solid var( --wp--preset--color--light-grey-1 ); border-left: 1px solid var( --wp--preset--color--light-grey-1 ); border-right: 1px solid var( --wp--preset--color--light-grey-1 ); @@ -299,18 +301,19 @@ } } - span#reviews:not(:target) ~ span#installation:not(:target) ~ span#developers:not(:target) ~ .entry-content #tab-description, - span#reviews:not(:target) ~ span#installation:not(:target) ~ span#developers:not(:target) ~ .entry-content #screenshots, - span#reviews:not(:target) ~ span#installation:not(:target) ~ span#developers:not(:target) ~ .entry-content #faq, - span#reviews:not(:target) ~ span#installation:not(:target) ~ span#developers:not(:target) ~ .entry-content #blocks, - span#reviews:not(:target) ~ span#installation:not(:target) ~ span#developers:not(:target) ~ .entry-content #tab-developers, - span#reviews:not(:target) ~ span#installation:not(:target) ~ span#developers:not(:target) ~ .entry-content #tab-developers ~ button, + span#reviews:not(:target) ~ span#installation:not(:target) ~ span#developers:not(:target) ~ span#releases:not(:target) ~ .entry-content #tab-description, + span#reviews:not(:target) ~ span#installation:not(:target) ~ span#developers:not(:target) ~ span#releases:not(:target) ~ .entry-content #screenshots, + span#reviews:not(:target) ~ span#installation:not(:target) ~ span#developers:not(:target) ~ span#releases:not(:target) ~ .entry-content #faq, + span#reviews:not(:target) ~ span#installation:not(:target) ~ span#developers:not(:target) ~ span#releases:not(:target) ~ .entry-content #blocks, + span#reviews:not(:target) ~ span#installation:not(:target) ~ span#developers:not(:target) ~ span#releases:not(:target) ~ .entry-content #tab-developers, + span#reviews:not(:target) ~ span#installation:not(:target) ~ span#developers:not(:target) ~ span#releases:not(:target) ~ .entry-content #tab-developers ~ button, span#reviews:target ~ .entry-content #tab-reviews, span#installation:target ~ .entry-content #tab-installation, span#developers:target ~ .entry-content #tab-changelog, span#developers:target ~ .entry-content #tab-developers, span#developers:target ~ .entry-content #tab-developers ~ button, - span#developers:target ~ .entry-content #tab-developers .plugin-development { + span#developers:target ~ .entry-content #tab-developers .plugin-development, + span#releases:target ~ .entry-content #tab-releases { display:block; } @@ -324,10 +327,15 @@ span#reviews:target ~ .entry-meta .plugin-support, span#reviews:target ~ .entry-meta .plugin-donate, span#reviews:target ~ .entry-meta .plugin-contributors, - span#installation:target ~ .entry-meta .plugin-contributors { + span#installation:target ~ .entry-meta .plugin-contributors, + span#releases:target ~ .entry-meta { display:none; } + span#releases:target ~ .entry-content { + width: 100%; + } + @media screen and ( min-width: $ms-breakpoint ) { .entry-content, .entry-meta { diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/client/styles/components/_components.scss b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/client/styles/components/_components.scss index 4ff25a4a7e..66e63d0b08 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/client/styles/components/_components.scss +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/client/styles/components/_components.scss @@ -12,6 +12,7 @@ @import "../../components/posts-navigation"; @import "../../components/plugin/favorite-button"; @import "../../components/plugin/plugin-banner"; +@import "../../components/plugin/plugin-release"; @import "../../components/plugin/sections-categorization"; @import "../../components/plugin/sections-changelog"; @import "../../components/plugin/sections-developers"; diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/css/style-rtl.css b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/css/style-rtl.css index 03aa038022..e6beb39993 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/css/style-rtl.css +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/css/style-rtl.css @@ -1 +1,5 @@ -@charset "UTF-8";.avatar{border-radius:50%;vertical-align:middle}.wp-block-wporg-language-suggest>p{margin:0}.block-validator>details summary{padding:var(--wp--style--block-gap) 0}.block-validator .block-validator__plugin-form label{display:block;margin-bottom:.8em}.block-validator .block-validator__plugin-input-container{display:flex;max-width:34rem}.block-validator .block-validator__plugin-input{flex:1}.block-validator .block-validator__plugin-submit{flex:0;margin-right:4px}@media (max-width:36rem){.block-validator .block-validator__plugin-submit{width:100%}.block-validator .block-validator__plugin-input-container{display:block}.block-validator .block-validator__plugin-input{width:100%}.block-validator .block-validator__plugin-submit{margin-right:0;margin-top:var(--wp--style--block-gap)}}.block-validator .notice details,.block-validator .notice p{font-size:var(--wp--preset--font-size--normal);margin:var(--wp--style--block-gap) 0}.block-validator .notice details p{font-size:var(--wp--preset--font-size--small);margin-right:1rem}.block-validator .notice summary{display:list-item}.block-validator figure{border:1px solid #aaa;display:inline-block;padding:1em}.block-validator .test-screenshot{text-align:center}.block-validator .plugin-upload-form-controls{align-items:center;display:flex;gap:4px}.block-validator .plugin-upload-form-controls>label{border:1px solid var(--wp--custom--form--border--color);border-radius:var(--wp--custom--form--border--radius);cursor:pointer;min-width:200px;padding:4px 8px}.notice{background:#fff;border-right:4px solid #fff;box-shadow:0 1px 1px 0 #0000001a;font-size:var(--wp--preset--font-size--small);margin:var(--wp--style--block-gap) 0;padding:1px 12px}.notice p,.notice ul{margin:.5em 0;padding:2px}.notice pre{white-space:pre-wrap}.notice ul{list-style:none;margin:.5em}.notice.notice-alt{box-shadow:none}.notice.notice-large{padding:10px 20px}.notice.notice-success{border-right-color:#46b450}.notice.notice-success.notice-alt{background-color:#ecf7ed}.notice.notice-warning{border-right-color:#ffb900}.notice.notice-warning.notice-alt{background-color:#fff8e5}.notice.notice-error{border-right-color:#dc3232}.notice.notice-error.notice-alt{background-color:#fbeaea}.notice.notice-info{border-right-color:#00a0d2}.notice.notice-info.notice-alt{background-color:#e5f5fa}.notice.hidden{display:none}.plugin-upload-form.hidden{display:none}.plugin-upload-form fieldset{border:none;margin:0;padding:0}.plugin-upload-form legend{margin:1rem 0}.plugin-upload-form .category-checklist{list-style-type:none;margin:0 0 2rem}.plugin-upload-form .category-checklist li{float:right;padding:.5rem 0;width:50%}@media screen and (min-width:48em){.plugin-upload-form .category-checklist li{padding:0}.plugin-upload-form .category-checklist label{font-size:var(--wp--preset--font-size--small)}.plugin-upload-form label.button{line-height:1.8}}.plugin-upload-form .plugin-file{height:.1px;opacity:0;overflow:hidden;position:absolute;width:.1px;z-index:-1}.plugin-queue-message code{font-size:1em}.plugin-queue-message dialog.slug-change input[type=text]{font-family:monospace;font-size:1.2em;width:20em}:where(main) a:where(:not(.wp-element-button,.wp-block-wporg-link-wrapper)):focus,:where(main) button:where(:not([class*=wp-block-button])):focus{border-radius:2px;box-shadow:0 0 0 1.5px currentColor;outline:none}.wporg-filter-bar{--wporg--filter-bar--gap:20px;--wporg--filter-bar--color:#40464d;--wporg--filter-bar--active--background-color:var(--wp--custom--button--color--background);--wporg--filter-bar--focus--border-color:var(--wp--custom--button--focus--border--color);margin:var(--wp--style--block-gap) 0}.wporg-filter-bar .wporg-query-filter__toggle.is-active,.wporg-filter-bar .wporg-query-filter__toggle:active,.wporg-filter-bar .wporg-query-filter__toggle:focus{background-color:var(--wporg--filter-bar--active--background-color);color:var(--wp--custom--button--color--text)}.wporg-filter-bar .wporg-filter-bar__navigation{flex-grow:1;margin-bottom:var(--wporg--filter-bar--gap)}.wporg-filter-bar .wporg-filter-bar__navigation ul{display:inline-block;font-size:13px;line-height:1.538;list-style:none;margin:0;padding-right:0}.wporg-filter-bar .wporg-filter-bar__navigation ul li{display:inline-block}.wporg-filter-bar .wporg-filter-bar__navigation ul li+li{margin-right:8px}.wporg-filter-bar .wporg-filter-bar__navigation ul a{border-radius:2px;color:var(--wporg--filter-bar--color);display:block;padding:8px 12px;text-decoration:none}.wporg-filter-bar .wporg-filter-bar__navigation ul a:focus,.wporg-filter-bar .wporg-filter-bar__navigation ul a:hover{text-decoration:underline}.wporg-filter-bar .wporg-filter-bar__navigation ul a:focus-visible{box-shadow:none;outline:1.5px solid var(--wporg--filter-bar--focus--border-color);outline-offset:-.5px}.wporg-filter-bar .wporg-filter-bar__navigation ul a.is-active{background-color:var(--wporg--filter-bar--active--background-color);color:#fff}.wporg-filter-bar .wporg-filter-bar__navigation ul a.is-active:focus,.wporg-filter-bar .wporg-filter-bar__navigation ul a.is-active:hover{color:#fff}.wporg-filter-bar .wporg-filter-bar__navigation ul a.is-active:focus-visible{box-shadow:inset 0 0 0 1.5px #fff;outline:1.5px solid var(--wporg--filter-bar--focus--border-color);outline-offset:-.5px}@media screen and (min-width:737px){.wporg-filter-bar{align-items:center;display:flex;flex-wrap:wrap;gap:var(--wporg--filter-bar--gap);justify-content:space-between;width:100%}.wporg-filter-bar .wporg-filter-bar__navigation{margin-bottom:0}}.wp-block-search__inside-wrapper{background:var(--wp--preset--color--light-grey-2);border:none}.button-link{background:none;border:0;border-radius:0;box-shadow:none;cursor:pointer;margin:0;outline:none;padding:0}.button{background-color:var(--wp--custom--button--color--background);border:0;border-radius:var(--wp--custom--button--border--radius);color:var(--wp--custom--button--color--text);cursor:pointer;opacity:1;padding:calc(var(--wp--custom--button--small--spacing--padding--top) + var(--wp--custom--button--border--width)) calc(var(--wp--custom--button--small--spacing--padding--left) + var(--wp--custom--button--border--width)) calc(var(--wp--custom--button--small--spacing--padding--bottom) + var(--wp--custom--button--border--width)) calc(var(--wp--custom--button--small--spacing--padding--right) + var(--wp--custom--button--border--width));vertical-align:middle}.button.button-large{padding:calc(var(--wp--custom--button--spacing--padding--top) + var(--wp--custom--button--border--width)) calc(var(--wp--custom--button--spacing--padding--left) + var(--wp--custom--button--border--width)) calc(var(--wp--custom--button--spacing--padding--bottom) + var(--wp--custom--button--border--width)) calc(var(--wp--custom--button--spacing--padding--right) + var(--wp--custom--button--border--width))}input+button.button,select+button.button{margin-top:-3px}.button.disabled{cursor:not-allowed;opacity:.6}.wp-block-post-content a.button{text-decoration:none}.wp-block-button__link{width:auto}pre{background-color:#f7f7f7;border:1px solid var(--wp--preset--color--light-grey-1);overflow:scroll;padding:20px}code,pre{border-radius:2px}code{background:var(--wp--preset--color--light-grey-2);display:inline-block;line-height:var(--wp--custom--body--extra-small--typography--line-height);max-width:100%;padding-inline-end:3px;padding-inline-start:3px}dialog{border:0;box-shadow:-6px 6px 6px #0003;min-height:50%;min-width:30%}@media (min-width:1280px){dialog{max-width:55%}}dialog::backdrop{background:#000;opacity:.5}dialog .close{color:inherit;cursor:pointer;position:absolute;left:1em;text-decoration:none!important;top:1em}.plugin-card{display:flex;flex-direction:column;height:100%;justify-content:space-between}.plugin-card .entry{display:inline-block;vertical-align:top}.plugin-card .entry-title{display:block;display:-webkit-box;font-size:var(--wp--preset--font-size--heading-5);font-weight:500;line-height:1.3;margin-bottom:2px!important;max-height:2.6em;overflow:hidden;-webkit-line-clamp:2;-webkit-box-orient:vertical}.plugin-card .entry-title a{display:block;text-decoration:none}.plugin-card .entry-title a:focus{box-shadow:none}.plugin-card .entry-excerpt{clear:both;font-size:var(--wp--preset--font-size--small)}.plugin-card .entry-excerpt p{margin:0}.plugin-card footer{font-size:var(--wp--preset--font-size--small);margin-top:var(--wp--style--block-gap)}.plugin-card footer span{color:var(--wp--preset--color--charcoal-4);display:inline-block;line-height:var(--wp--preset--font-size--normal);overflow:hidden}.plugin-card footer span.plugin-author{width:100%}.plugin-card footer span.plugin-author span{color:var(--wp--preset--color--charcoal-1)}.plugin-card footer span.plugin-author path{fill:var(--wp--preset--color--charcoal-1)}.plugin-card footer span svg{height:24px;vertical-align:bottom;width:24px}.plugin-card footer span svg path{fill:var(--wp--preset--color--charcoal-4)}.plugin-card footer span.active-installs{min-width:48%}.plugin-cards{cursor:pointer}.plugin-cards .is-style-cards-grid li:hover{background-color:#fff!important;border:1px solid var(--wp--preset--color--charcoal-1)!important}.plugin-cards .is-style-cards-grid li:focus-within{border-color:#0000;border-radius:2px;box-shadow:0 0 0 1.5px var(--wp--custom--link--color--text)}@media screen and (max-width:737px){.plugin-cards .is-style-cards-grid{grid-template-columns:100%}}.entry-thumbnail{display:none;margin-bottom:var(--wp--style--block-gap);margin-left:var(--wp--style--block-gap);max-width:80px}.entry-thumbnail .plugin-icon{background-size:cover;border-radius:var(--wp--custom--button--border--radius);display:block;height:80px;width:80px}@media screen and (min-width:21em){.entry-thumbnail{display:inline-block;float:right;vertical-align:top}}.single .entry-thumbnail{display:none;float:right;height:96px;margin-bottom:0;max-width:96px}@media screen and (min-width:26em){.single .entry-thumbnail{display:block}}.single .entry-thumbnail .plugin-icon{background-size:contain!important;height:96px!important;width:96px!important}.plugin-rating{line-height:1;margin:0 0 8px 10px}.plugin-rating .wporg-ratings{display:inline-block;margin-left:5px}.plugin-rating .rating-count{color:var(--wp--preset--color--charcoal-4);font-size:var(--wp--preset--font-size--extra-small);vertical-align:text-bottom}.plugin-rating .rating-count a{color:inherit;cursor:hand;text-decoration:none}[class*=dashicons-star-]{color:var(--wp--preset--color--pomegrade-1)}.rtl .dashicons-star-half{transform:rotateY(-180deg)}#main .plugin-section{margin:0 auto var(--wp--preset--spacing--60)}#main .plugin-section:last-of-type{margin-bottom:0}#main .plugin-section .section-header{align-items:center;column-gap:10px;display:flex;justify-content:space-between;margin-bottom:var(--wp--style--block-gap)}#main .plugin-section .section-header>h2{margin-bottom:0}#main .plugin-section .section-link{align-self:center;flex:0 0 auto;text-decoration:underline}.pagination .nav-links{margin-top:var(--wp--style--block-gap);padding-top:var(--wp--style--block-gap);text-align:center}.pagination .nav-links a{text-decoration:none}.pagination .nav-links .page-numbers{cursor:pointer;display:inline-block;min-width:2em;padding:8px;text-align:center}.pagination .nav-links .page-numbers.dots,.pagination .nav-links .page-numbers.next,.pagination .nav-links .page-numbers.prev{background:none;font-size:.9em;width:auto}.pagination .nav-links .page-numbers.dots{cursor:inherit}@media screen and (max-width:737px){.pagination .nav-links .page-numbers.next,.pagination .nav-links .page-numbers.prev{font-size:0;min-width:auto;padding:0}.pagination .nav-links .page-numbers.next:after,.pagination .nav-links .page-numbers.prev:before{display:inline-block;font-size:medium;line-height:1.5;min-width:2em;padding:8px}.pagination .nav-links .page-numbers.prev:before{content:"‹"}.pagination .nav-links .page-numbers.next:after{content:"›"}}.pagination .nav-links span.page-numbers{font-weight:700}.pagination .nav-links span.page-numbers.current{text-decoration:underline}@keyframes favme-anime{0%{font-size:var(--wp--preset--font-size--large);opacity:1;-webkit-text-stroke-color:#0000}25%{color:#fff;font-size:var(--wp--preset--font-size--small);opacity:.6;-webkit-text-stroke-width:1px;-webkit-text-stroke-color:#dc3232}75%{color:#fff;font-size:var(--wp--preset--font-size--large);opacity:.6;-webkit-text-stroke-width:1px;-webkit-text-stroke-color:#dc3232}to{font-size:var(--wp--preset--font-size--normal);opacity:1;-webkit-text-stroke-color:#0000}}.plugin-favorite{height:calc(var(--wp--custom--button--spacing--padding--top)*2 + var(--wp--preset--font-size--normal)*2);text-align:center;vertical-align:top;width:36px}.plugin-favorite .plugin-favorite-heart{align-items:center;background:none;border:0;border-radius:0;box-shadow:none;color:#cbcdce;cursor:pointer;display:flex;font-size:var(--wp--preset--font-size--large);height:100%;justify-content:center;line-height:1;margin:0;outline:none;padding:0;text-decoration:none}.plugin-favorite .plugin-favorite-heart.favorited{color:#dc3232}.plugin-favorite .plugin-favorite-heart:focus,.plugin-favorite .plugin-favorite-heart:hover{color:var(----wp--preset--color--charcoal-2);text-decoration:none}.plugin-favorite .plugin-favorite-heart:after{content:"\f487";font-family:dashicons;vertical-align:top}.plugin-banner img{aspect-ratio:3.089;border-radius:var(--wp--custom--button--border--radius);display:block;margin:0 auto var(--wp--preset--spacing--30);width:100%}@keyframes hideAnimation{to{visibility:hidden}}.categorization .help{color:var(--wp--preset--color--charcoal-4);display:inline-block;font-size:.8rem;margin-top:0}.categorization label{display:block;font-weight:700}.categorization input{width:100%}.categorization .success-msg{background:#eff7ed;border:solid #64b450;border-width:0 5px 0 0;font-size:.8rem;margin-right:1rem;opacity:0;overflow:auto;padding:.1rem .6rem .2rem;position:relative;transition:visibility 0s,opacity .5s linear;-webkit-user-select:none;user-select:none;visibility:hidden}.categorization .success-msg.saved{animation:hideAnimation 0s ease-in 5s;animation-fill-mode:forwards;opacity:1;visibility:visible}.plugin-changelog code{font-size:var(--wp--preset--font-size--small)}.plugin-developers .contributors-list li{align-items:center;display:flex;padding-bottom:var(--wp--style--block-gap)}@media screen and (min-width:500px){.plugin-developers .contributors-list{display:flex;flex-wrap:wrap}.plugin-developers .contributors-list li{padding-bottom:unset;width:50%}}.plugin-faq dl{border-bottom:1px solid var(--wp--preset--color--light-grey-1)}.plugin-faq dt{border-top:1px solid var(--wp--preset--color--light-grey-1);cursor:pointer;padding:1rem 0}.plugin-faq dt:before{content:"\f347";float:left;font-family:dashicons;margin:0 1rem}.plugin-faq dt.open:before{content:"\f343"}.plugin-faq dt .button-link{display:inherit;text-align:inherit}.plugin-faq dt .button-link.no-focus{box-shadow:none;outline:none}.plugin-faq dt h3{color:var(--wp--custom--link--color--text);display:inline;font-size:var(--wp--preset--font-size--normal);font-weight:400;margin-bottom:0;margin-top:0!important;text-decoration:underline}.plugin-faq dt h3 button{all:inherit;max-width:calc(100% - 60px)}.plugin-faq dt h3 button:focus,.plugin-faq dt h3 button:hover{text-decoration:underline}.plugin-faq dd{display:none;margin:0 0 1rem}.no-js .plugin-faq dd{display:block}.plugin-faq dd p{margin:0}.plugin-faq dd p+p{margin-top:1rem}.image-gallery{-webkit-user-select:none;user-select:none}.image-gallery-content{position:relative}.image-gallery-content .image-gallery-left-nav,.image-gallery-content .image-gallery-right-nav{border-color:var(--wp--preset--color--light-grey-1);display:none;font-size:48px;height:100%;position:absolute;top:0;transition:background .1s ease,border .1s ease;z-index:4}@media (max-width:768px){.image-gallery-content .image-gallery-left-nav,.image-gallery-content .image-gallery-right-nav{font-size:3.4em}}@media (min-width:768px){.image-gallery-content .image-gallery-left-nav:hover,.image-gallery-content .image-gallery-right-nav:hover{background:#fff;border:1px solid var(--wp--preset--color--light-grey-1);opacity:.8}}.image-gallery-content .image-gallery-left-nav:before,.image-gallery-content .image-gallery-right-nav:before{font-family:dashicons;position:relative}.image-gallery-content .image-gallery-left-nav{right:0}.image-gallery-content .image-gallery-left-nav:before{content:"\f345"}.image-gallery-content .image-gallery-left-nav:hover{margin-right:-1px}.image-gallery-content .image-gallery-right-nav{left:0}.image-gallery-content .image-gallery-right-nav:before{content:"\f341"}.image-gallery-content .image-gallery-right-nav:hover{margin-left:-1px}.image-gallery-content:hover .image-gallery-left-nav,.image-gallery-content:hover .image-gallery-right-nav{display:block}.image-gallery-slides{border:1px solid #eee;line-height:0;overflow:hidden;position:relative;white-space:nowrap}.image-gallery-slide{right:0;position:absolute;top:0;width:100%}.image-gallery-slide.center{position:relative}.image-gallery-slide .image-gallery-image{margin:0}.image-gallery-slide img{display:block;margin:0 auto}.image-gallery-slide .image-gallery-description{background:var(--wp--preset--color--light-grey-2);color:var(--wp--preset--color--charcoal-1);font-size:var(--wp--preset--font-size--small);line-height:1.5;padding:10px 20px;white-space:normal}@media (max-width:768px){.image-gallery-slide .image-gallery-description{padding:8px 15px}}.image-gallery-thumbnails{background:#fff;margin-top:5px}.image-gallery-thumbnails .image-gallery-thumbnails-container{cursor:pointer;text-align:center;white-space:nowrap}.image-gallery-thumbnail{border:1px solid #eee;display:table-cell;margin-left:5px;max-height:100px;overflow:hidden}.image-gallery-thumbnail .image-gallery-image{margin:0}.image-gallery-thumbnail img{vertical-align:middle;width:100px}@media (max-width:768px){.image-gallery-thumbnail img{width:75px}}.image-gallery-thumbnail:hover{box-shadow:0 1px 8px #0000004d}.image-gallery-thumbnail.active{border:1px solid #337ab7}.image-gallery-thumbnail-label{color:#222;font-size:1em}@media (max-width:768px){.image-gallery-thumbnail-label{font-size:.8em}}.image-gallery-index{background:#0006;bottom:0;color:#fff;line-height:1;padding:10px 20px;position:absolute;left:0;z-index:4}.plugin-reviews{list-style-type:none;margin:0;padding:0}.plugin-reviews .plugin-review{border-bottom:1px solid var(--wp--preset--color--light-grey-1);margin:2rem 0 1rem;padding-bottom:1rem}.plugin-reviews .plugin-review a{text-decoration:none}.plugin-reviews .plugin-review:first-child{margin-top:0}.plugin-reviews .plugin-review .header-top{display:flex}.plugin-reviews .plugin-review .header-top .wporg-ratings{flex-shrink:0}.plugin-reviews .plugin-review .header-bottom{display:flex;margin-top:4px}.plugin-reviews .review-avatar{display:none}.plugin-reviews .review,.plugin-reviews .review-author,.plugin-reviews .wporg-ratings{display:inline-block;vertical-align:top}.plugin-reviews .review-header{margin:0 0 .5rem}.plugin-reviews .review-title{font-size:var(--wp--preset--font-size--normal);font-weight:500;margin:2px 12px 0 0!important;text-transform:inherit}.plugin-reviews .review-author,.plugin-reviews .review-date,.plugin-reviews .review-replies{font-size:var(--wp--preset--font-size--extra-small);line-height:1.25}.plugin-reviews .review-date,.plugin-reviews .review-replies{color:var(--wp--preset--color--charcoal-4);font-size:var(--wp--preset--font-size--extra-small);margin-right:12px}.plugin-reviews .review-replies:before{content:"•";margin-left:12px}.plugin-reviews .review-content{margin:1em 0}@media screen and (min-width:737px){.plugin-reviews .review-avatar{display:inline-block;vertical-align:top}.plugin-reviews .review-avatar .avatar{margin-left:1rem}.plugin-reviews .review{width:calc(100% - 60px - 1rem)}.plugin-reviews .review-header{margin:0}.plugin-reviews .review-author,.plugin-reviews .review-date,.plugin-reviews .review-replies{line-height:1}}.plugin-reviews .reviews-link{display:inline-block;font-size:var(--wp--preset--font-size--small);text-decoration:none}.plugin-reviews .reviews-link:after{content:"\f341";float:left;font-family:dashicons;padding-right:5px;position:relative;top:1px;vertical-align:text-top}.plugin-screenshots{list-style-type:none;margin:0;padding:0}.plugin-screenshots .image-gallery-content{display:table;width:100%}.plugin-screenshots .image-gallery-slides{display:table-cell;max-height:600px}.plugin-screenshots .image-gallery-image img{max-height:550px;max-width:100%}.plugin-screenshots .image-gallery-thumbnail{vertical-align:top}.plugin-screenshots .image-gallery-thumbnail img{max-height:100px}.plugin-screenshots .image-gallery-thumbnails{overflow:hidden}.download-history-stats td{text-align:left}.previous-versions{max-width:60%}@media screen and (min-width:737px){.previous-versions{height:32px;vertical-align:middle}}hr{margin:2.5rem auto}.section h1:nth-child(2),.section h2:nth-child(2),.section h3:nth-child(2),.section h4:nth-child(2),.section h5:nth-child(2),.section h6:nth-child(2){margin-top:0}.section-heading{font-family:var(--wp--preset--font-family--inter)!important;font-size:var(--wp--preset--font-size--heading-5)!important;font-style:normal;font-weight:600;line-height:var(--wp--custom--heading--level-5--typography--line-height)}.section-intro{color:var(--wp--preset--color--charcoal-4);font-size:var(--wp--preset--font-size--small);margin-bottom:var(--wp--preset--spacing--20);margin-top:var(--wp--preset--spacing--10)}.type-plugin .plugin-notice{margin-top:0}.type-plugin .plugin-header{border-bottom:0;padding-top:var(--wp--preset--spacing--40)}.type-plugin .plugin-header:after,.type-plugin .plugin-header:before{content:"";display:table;table-layout:fixed}.type-plugin .plugin-header:after{clear:both}.type-plugin .plugin-header .entry-heading-container{display:flex;flex-direction:column;justify-content:space-between}@media screen and (max-width:599px){.type-plugin .plugin-header .entry-heading-container{--wp--custom--button--spacing--padding--top:12px;--wp--custom--button--spacing--padding--bottom:12px;--wp--custom--button--spacing--padding--left:16px;--wp--custom--button--spacing--padding--right:16px}}@media screen and (min-width:700px){.type-plugin .plugin-header .entry-heading-container{flex-direction:row}}.type-plugin .plugin-header .entry-heading-container>:first-child{align-items:center;display:flex;flex:1}.type-plugin .plugin-header .plugin-actions{align-items:center;display:flex;gap:16px;margin-top:var(--wp--style--block-gap)}@media screen and (min-width:700px){.type-plugin .plugin-header .plugin-actions{margin-top:0;margin-inline-start:1rem}}.type-plugin .plugin-header .plugin-actions>.button,.type-plugin .plugin-header .plugin-actions>div{display:inline-block;text-align:center}@media screen and (max-width:34em){.type-plugin .plugin-header .plugin-actions>.button.download-button{display:none}}.type-plugin .plugin-header .plugin-title{clear:none;font-size:var(--wp--preset--font-size--heading-3);font-weight:400;line-height:var(--wp--custom--heading--level-3--typography--line-height);margin:0}.type-plugin .plugin-header .plugin-title a{color:inherit;text-decoration:none}.type-plugin .plugin-header .plugin-title a:hover{text-decoration:underline}.type-plugin .plugin-header .byline{color:var(--wp--preset--color--charcoal-4);display:block;margin-top:4px}.type-plugin .plugin-banner+.plugin-header{padding-top:0}.type-plugin .plugin-banner+.plugin-header>.notice:first-of-type{margin-top:0}.type-plugin .tabs{border-bottom:1px solid var(--wp--preset--color--light-grey-1);list-style:none;margin:0}.type-plugin .tabs li{border:1px solid #0000;display:inline-block;font-size:.9rem;margin-bottom:-1px;transition:background .2s ease}.type-plugin .tabs li a{background:#fff;border:0;color:var(--wp--preset--color--charcoal-1);display:block;font-size:var(--wp--preset--font-size--normal);padding:.64rem 1.25rem;text-decoration:none}.type-plugin .tabs li a.active,.type-plugin .tabs li a:hover{background:var(--wp--preset--color--light-grey-2)!important}.type-plugin .tabs li.active,.type-plugin .tabs li:hover{border:1px solid var(--wp--preset--color--light-grey-1)}@media screen and (max-width:38em){.type-plugin .tabs{border-top:1px solid var(--wp--preset--color--light-grey-1)}.type-plugin .tabs li{display:block;margin-bottom:1px}.type-plugin .tabs li,.type-plugin .tabs li.active,.type-plugin .tabs li:hover{border:none;border-bottom:1px solid var(--wp--preset--color--light-grey-1)}}@media screen and (min-width:737px){.type-plugin .entry-content{float:right;padding:0;width:65%}}.type-plugin .entry-content>div,.type-plugin .entry-content>div~button{border:0;display:none}.type-plugin .entry-content ol>li>p,.type-plugin .entry-content ul>li>p{margin:0}.type-plugin .entry-content #admin{display:block!important}.type-plugin .plugin-blocks-list{list-style:none;margin-right:0;padding-right:0}.type-plugin .plugin-blocks-list .plugin-blocks-list-item{display:grid;grid-template-columns:auto 1fr;margin-bottom:var(--wp--style--block-gap)}.type-plugin .plugin-blocks-list .block-icon{border:1px solid var(--wp--preset--color--light-grey-1);border-radius:2px;display:inline-block;height:3.5rem;line-height:16px;margin-left:var(--wp--style--block-gap);padding:var(--wp--style--block-gap);width:3.5rem}.type-plugin .plugin-blocks-list .block-icon.dashicons{color:inherit}.type-plugin .plugin-blocks-list .block-icon.dashicons:before{margin-right:-3px}.type-plugin .plugin-blocks-list .block-icon svg{height:16px;width:16px;fill:currentColor;margin-right:-1px}.type-plugin .plugin-blocks-list .block-title{align-self:center;font-weight:700}.type-plugin .plugin-blocks-list .has-description .block-icon{grid-row:1/span 2}.type-plugin .plugin-blocks-list .has-description .block-title{margin-bottom:.4em}.type-plugin span#description,.type-plugin span#developers,.type-plugin span#installation,.type-plugin span#reviews{position:fixed}.type-plugin span#advanced.displayed~#section-links .tabs li#tablink-advanced,.type-plugin span#developers:target~#section-links .tabs li#tablink-developers,.type-plugin span#installation:target~#section-links .tabs li#tablink-installation,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#advanced:not(.displayed)~#section-links .tabs li#tablink-description,.type-plugin span#reviews:target~#section-links .tabs li#tablink-reviews{background:#fff;border:1px solid var(--wp--preset--color--light-grey-1);border-bottom:0;padding-bottom:1px}@media screen and (max-width:38em){.type-plugin span#advanced.displayed~#section-links .tabs li#tablink-advanced.active,.type-plugin span#advanced.displayed~#section-links .tabs li#tablink-advanced:hover,.type-plugin span#developers:target~#section-links .tabs li#tablink-developers.active,.type-plugin span#developers:target~#section-links .tabs li#tablink-developers:hover,.type-plugin span#installation:target~#section-links .tabs li#tablink-installation.active,.type-plugin span#installation:target~#section-links .tabs li#tablink-installation:hover,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#advanced:not(.displayed)~#section-links .tabs li#tablink-description.active,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#advanced:not(.displayed)~#section-links .tabs li#tablink-description:hover,.type-plugin span#reviews:target~#section-links .tabs li#tablink-reviews.active,.type-plugin span#reviews:target~#section-links .tabs li#tablink-reviews:hover{padding-bottom:1px!important}}.type-plugin span#section-links{display:flex;flex-flow:row wrap;margin-top:var(--wp--preset--spacing--30)}.type-plugin span#section-links .tabs{flex:1 1 auto;padding-right:0}@media screen and (max-width:38em){.type-plugin span#section-links .tabs{border:1px solid var(--wp--preset--color--light-grey-1)!important}.type-plugin span#section-links .tabs li{border:none!important}.type-plugin span#section-links{display:block}}.type-plugin #link-support{align-self:flex-end;border-bottom:1px solid var(--wp--preset--color--light-grey-1);flex:0 0 auto;font-size:.9rem}.type-plugin #link-support a{display:inline-block;font-size:var(--wp--preset--font-size--normal);padding:.64rem 1.25rem .64rem 0}@media screen and (max-width:38em){.type-plugin #link-support{border-bottom:0;display:block;width:100%}.type-plugin #link-support a{padding-left:1.25rem}}.type-plugin span#developers:target~.entry-content #tab-changelog,.type-plugin span#developers:target~.entry-content #tab-developers,.type-plugin span#developers:target~.entry-content #tab-developers .plugin-development,.type-plugin span#developers:target~.entry-content #tab-developers~button,.type-plugin span#installation:target~.entry-content #tab-installation,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~.entry-content #blocks,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~.entry-content #faq,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~.entry-content #screenshots,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~.entry-content #tab-description,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~.entry-content #tab-developers,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~.entry-content #tab-developers~button,.type-plugin span#reviews:target~.entry-content #tab-reviews{display:block}.type-plugin span#developers:target~.entry-content #tab-developers .plugin-contributors,.type-plugin span#installation:target~.entry-meta .plugin-contributors,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~.entry-content #tab-developers .plugin-development,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~.entry-meta .plugin-contributors,.type-plugin span#reviews:target~.entry-meta .plugin-contributors,.type-plugin span#reviews:target~.entry-meta .plugin-donate,.type-plugin span#reviews:target~.entry-meta .plugin-meta,.type-plugin span#reviews:target~.entry-meta .plugin-support{display:none}@media screen and (min-width:737px){.type-plugin .entry-content,.type-plugin .entry-meta{padding-right:0;padding-left:0}.type-plugin .entry-meta{float:left;width:30%}}.type-plugin .plugin-danger-zone h4{margin-top:var(--wp--preset--spacing--60)}.plugin-releases-listing{border-collapse:collapse;width:100%}.plugin-releases-listing tbody td:nth-child(4) div{font-size:14px}.plugin-releases-listing-actions{display:flex;flex-direction:column;gap:8px}@media screen and (min-width:34em){.plugin-releases-listing-actions{flex-direction:row}}.plugin-adopt-me{background:#e6f4fa;margin-top:36px;padding:12px}.plugin-adopt-me .widget-title{margin-top:0}.plugin-adopt-me p{margin-bottom:0}.widget.plugin-categorization{margin-top:var(--wp--style--block-gap)}.widget.plugin-categorization .widget-head h2{font-size:var(--wp--preset--font-size--heading-4);margin-bottom:.2rem;margin-top:0}.widget.plugin-categorization .widget-head a{font-size:var(--wp--preset--font-size--small)}.widget.plugin-categorization .widget-head a[href=""]{display:none}.widget.plugin-categorization p{font-size:var(--wp--preset--font-size--small);margin-top:.5rem}.widget.plugin-categorization~.plugin-meta li:first-child{border-top:1px solid var(--wp--preset--color--light-grey-1)}.committer-list,.support-rep-list{list-style:none;margin:0;padding:0}.committer-list li,.support-rep-list li{padding-bottom:.5rem}.committer-list li .remove,.support-rep-list li .remove{color:red;visibility:hidden}.committer-list li:hover .remove,.support-rep-list li:hover .remove{visibility:visible}.committer-list .avatar,.support-rep-list .avatar{float:right;margin-left:10px}.committer-list .spinner,.support-rep-list .spinner{position:relative}.committer-list .spinner:after,.support-rep-list .spinner:after{background:url(/wp-admin/images/spinner.gif) no-repeat 50%;background-size:20px 20px;content:"";display:block;height:20px;margin:-10px 0 0 -10px;position:absolute;left:-50%;top:50%;transform:translateZ(0);width:20px}@media (min-resolution:120dpi),print{.committer-list .spinner:after,.support-rep-list .spinner:after{background-image:url(/wp-admin/images/spinner-2x.gif)}}.committer-list .new,.support-rep-list .new{margin-top:var(--wp--style--block-gap)}.plugin-contributors.read-more{border-bottom:1px solid var(--wp--preset--color--light-grey-1);max-height:200px;overflow:hidden;padding-bottom:1px}.plugin-contributors.read-more.toggled{max-height:none}.no-js .plugin-contributors.read-more{max-height:none;overflow:auto}.contributors-list{list-style-type:none;margin:0;padding:0}.contributors-list li{align-items:center;display:flex;margin-bottom:1rem}.contributors-list .avatar{float:right;margin-left:10px}.plugin-meta{font-size:var(--wp--preset--font-size--small);margin-top:var(--wp--style--block-gap)}.plugin-meta ul{list-style-type:none;margin:0;padding:0}.plugin-meta li{border-top:1px solid var(--wp--preset--color--light-grey-1);display:inline-block;padding:.5rem 0;position:relative;width:100%}.plugin-meta li strong{float:left;font-weight:500}.plugin-meta li .plugin-admin{font-size:var(--wp--preset--font-size--normal);font-weight:400}.plugin-meta li:first-child{border-top:0}.plugin-meta .languages,.plugin-meta .tags{float:left;text-align:left}.plugin-meta .tags{width:60%}.plugin-meta .languages button{font-size:var(--wp--preset--font-size--small);outline:revert}.plugin-meta .languages .popover{margin-top:8px}.plugin-meta .languages .popover-trigger{color:var(--wp--custom--link--color--text);text-decoration:underline}.plugin-meta .languages .popover-trigger:hover{text-decoration:underline}.plugin-meta [rel=tag]{background:var(--wp--preset--color--blueberry-4);border-radius:2px;color:var(--wp--preset--color--charcoal-1);display:inline-block;font-size:var(--wp--preset--font-size--extra-small);margin:2px;max-width:95%;overflow:hidden;padding:3px 6px;position:relative;text-decoration:none;text-overflow:ellipsis;white-space:nowrap;width:auto}.plugin-meta [rel=tag]:hover{text-decoration:underline}.popover{background-color:#fff;border:1px solid var(--wp--preset--color--light-grey-1);border-radius:2px;box-shadow:0 2px 10px #0000001a;display:none;right:0;margin-top:10px;max-width:300px;padding:1em 1em 2em;position:absolute;width:100%;z-index:100}.popover.is-top-right{right:auto;left:0}.popover.is-visible{display:block}.popover .popover-close{bottom:.5em;color:var(--wp--custom--link--color--text);font-size:small;position:absolute;left:.6em}.popover .popover-close:active,.popover .popover-close:focus,.popover .popover-close:hover{text-decoration:underline}.popover .popover-arrow{border:10px solid #0000;border-bottom:10px solid #ccc;border-top:none;height:0;position:absolute;left:20px;top:-10px;width:0;z-index:-1}.popover .popover-arrow:after{border:10px solid #0000;border-bottom:10px solid #fff;border-top:none;content:"";right:-10px;position:absolute;top:2px}.popover .popover-inner{text-align:right}.popover .popover-inner p:first-child{margin-top:0}.popover .popover-inner p:last-child{margin-bottom:0}.plugin-support .counter-container{margin-bottom:1rem;position:relative}.plugin-support .counter-back,.plugin-support .counter-bar{display:inline-block;height:30px;vertical-align:middle}.plugin-support .counter-back{background-color:var(--wp--preset--color--light-grey-2);width:100%}.plugin-support .counter-bar{background-color:var(--wp--preset--color--acid-green-2);display:block}.plugin-support .counter-count{font-size:var(--wp--preset--font-size--extra-small);right:8px;position:absolute;top:8px;width:100%;width:calc(100% - 8px)}@media screen and (min-width:737px){.plugin-support .counter-count{top:5px}}.home .widget,.widget-area.home .widget{display:inline-block;font-size:var(--wp--preset--font-size--small);margin:0;margin:var(--wp--style--block-gap);vertical-align:top;width:auto}@media screen and (min-width:737px){.home .widget,.widget-area.home .widget{margin:0;width:30%}.home .widget:first-child,.widget-area.home .widget:first-child{margin-left:5%}.home .widget:last-child,.widget-area.home .widget:last-child{margin-right:5%}}.home .widget select,.widget-area.home .widget select{max-width:100%}.entry-meta .widget-title{font-size:var(--wp--preset--font-size--heading-4)}body.single.single-plugin .entry-meta{font-size:var(--wp--preset--font-size--normal)}.widget-area{margin:0 auto;padding:var(--wp--preset--spacing--40) 0}.widget-area .widget-title{font-size:var(--wp--preset--font-size--heading-1);font-weight:var(--wp--custom--heading--typography--font-weight);margin-top:var(--wp--preset--spacing--50)}.widget-area .textwidget{text-wrap:pretty} \ No newline at end of file +<<<<<<< HEAD +@charset "UTF-8";.avatar{border-radius:50%;vertical-align:middle}.wp-block-wporg-language-suggest>p{margin:0}.block-validator>details summary{padding:var(--wp--style--block-gap) 0}.block-validator .block-validator__plugin-form label{display:block;margin-bottom:.8em}.block-validator .block-validator__plugin-input-container{display:flex;max-width:34rem}.block-validator .block-validator__plugin-input{flex:1}.block-validator .block-validator__plugin-submit{flex:0;margin-right:4px}@media (max-width:36rem){.block-validator .block-validator__plugin-submit{width:100%}.block-validator .block-validator__plugin-input-container{display:block}.block-validator .block-validator__plugin-input{width:100%}.block-validator .block-validator__plugin-submit{margin-right:0;margin-top:var(--wp--style--block-gap)}}.block-validator .notice details,.block-validator .notice p{font-size:var(--wp--preset--font-size--normal);margin:var(--wp--style--block-gap) 0}.block-validator .notice details p{font-size:var(--wp--preset--font-size--small);margin-right:1rem}.block-validator .notice summary{display:list-item}.block-validator figure{border:1px solid #aaa;display:inline-block;padding:1em}.block-validator .test-screenshot{text-align:center}.block-validator .plugin-upload-form-controls{align-items:center;display:flex;gap:4px}.block-validator .plugin-upload-form-controls>label{border:1px solid var(--wp--custom--form--border--color);border-radius:var(--wp--custom--form--border--radius);cursor:pointer;min-width:200px;padding:4px 8px}.notice{background:#fff;border-right:4px solid #fff;box-shadow:0 1px 1px 0 #0000001a;font-size:var(--wp--preset--font-size--small);margin:var(--wp--style--block-gap) 0;padding:1px 12px}.notice p,.notice ul{margin:.5em 0;padding:2px}.notice pre{white-space:pre-wrap}.notice ul{list-style:none;margin:.5em}.notice.notice-alt{box-shadow:none}.notice.notice-large{padding:10px 20px}.notice.notice-success{border-right-color:#46b450}.notice.notice-success.notice-alt{background-color:#ecf7ed}.notice.notice-warning{border-right-color:#ffb900}.notice.notice-warning.notice-alt{background-color:#fff8e5}.notice.notice-error{border-right-color:#dc3232}.notice.notice-error.notice-alt{background-color:#fbeaea}.notice.notice-info{border-right-color:#00a0d2}.notice.notice-info.notice-alt{background-color:#e5f5fa}.notice.hidden{display:none}.plugin-upload-form.hidden{display:none}.plugin-upload-form fieldset{border:none;margin:0;padding:0}.plugin-upload-form legend{margin:1rem 0}.plugin-upload-form .category-checklist{list-style-type:none;margin:0 0 2rem}.plugin-upload-form .category-checklist li{float:right;padding:.5rem 0;width:50%}@media screen and (min-width:48em){.plugin-upload-form .category-checklist li{padding:0}.plugin-upload-form .category-checklist label{font-size:var(--wp--preset--font-size--small)}.plugin-upload-form label.button{line-height:1.8}}.plugin-upload-form .plugin-file{height:.1px;opacity:0;overflow:hidden;position:absolute;width:.1px;z-index:-1}.plugin-queue-message code{font-size:1em}.plugin-queue-message dialog.slug-change input[type=text]{font-family:monospace;font-size:1.2em;width:20em}:where(main) a:where(:not(.wp-element-button,.wp-block-wporg-link-wrapper)):focus,:where(main) button:where(:not([class*=wp-block-button])):focus{border-radius:2px;box-shadow:0 0 0 1.5px currentColor;outline:none}.wporg-filter-bar{--wporg--filter-bar--gap:20px;--wporg--filter-bar--color:#40464d;--wporg--filter-bar--active--background-color:var(--wp--custom--button--color--background);--wporg--filter-bar--focus--border-color:var(--wp--custom--button--focus--border--color);margin:var(--wp--style--block-gap) 0}.wporg-filter-bar .wporg-query-filter__toggle.is-active,.wporg-filter-bar .wporg-query-filter__toggle:active,.wporg-filter-bar .wporg-query-filter__toggle:focus{background-color:var(--wporg--filter-bar--active--background-color);color:var(--wp--custom--button--color--text)}.wporg-filter-bar .wporg-filter-bar__navigation{flex-grow:1;margin-bottom:var(--wporg--filter-bar--gap)}.wporg-filter-bar .wporg-filter-bar__navigation ul{display:inline-block;font-size:13px;line-height:1.538;list-style:none;margin:0;padding-right:0}.wporg-filter-bar .wporg-filter-bar__navigation ul li{display:inline-block}.wporg-filter-bar .wporg-filter-bar__navigation ul li+li{margin-right:8px}.wporg-filter-bar .wporg-filter-bar__navigation ul a{border-radius:2px;color:var(--wporg--filter-bar--color);display:block;padding:8px 12px;text-decoration:none}.wporg-filter-bar .wporg-filter-bar__navigation ul a:focus,.wporg-filter-bar .wporg-filter-bar__navigation ul a:hover{text-decoration:underline}.wporg-filter-bar .wporg-filter-bar__navigation ul a:focus-visible{box-shadow:none;outline:1.5px solid var(--wporg--filter-bar--focus--border-color);outline-offset:-.5px}.wporg-filter-bar .wporg-filter-bar__navigation ul a.is-active{background-color:var(--wporg--filter-bar--active--background-color);color:#fff}.wporg-filter-bar .wporg-filter-bar__navigation ul a.is-active:focus,.wporg-filter-bar .wporg-filter-bar__navigation ul a.is-active:hover{color:#fff}.wporg-filter-bar .wporg-filter-bar__navigation ul a.is-active:focus-visible{box-shadow:inset 0 0 0 1.5px #fff;outline:1.5px solid var(--wporg--filter-bar--focus--border-color);outline-offset:-.5px}@media screen and (min-width:737px){.wporg-filter-bar{align-items:center;display:flex;flex-wrap:wrap;gap:var(--wporg--filter-bar--gap);justify-content:space-between;width:100%}.wporg-filter-bar .wporg-filter-bar__navigation{margin-bottom:0}}.wp-block-search__inside-wrapper{background:var(--wp--preset--color--light-grey-2);border:none}.button-link{background:none;border:0;border-radius:0;box-shadow:none;cursor:pointer;margin:0;outline:none;padding:0}.button{background-color:var(--wp--custom--button--color--background);border:0;border-radius:var(--wp--custom--button--border--radius);color:var(--wp--custom--button--color--text);cursor:pointer;opacity:1;padding:calc(var(--wp--custom--button--small--spacing--padding--top) + var(--wp--custom--button--border--width)) calc(var(--wp--custom--button--small--spacing--padding--left) + var(--wp--custom--button--border--width)) calc(var(--wp--custom--button--small--spacing--padding--bottom) + var(--wp--custom--button--border--width)) calc(var(--wp--custom--button--small--spacing--padding--right) + var(--wp--custom--button--border--width));vertical-align:middle}.button.button-large{padding:calc(var(--wp--custom--button--spacing--padding--top) + var(--wp--custom--button--border--width)) calc(var(--wp--custom--button--spacing--padding--left) + var(--wp--custom--button--border--width)) calc(var(--wp--custom--button--spacing--padding--bottom) + var(--wp--custom--button--border--width)) calc(var(--wp--custom--button--spacing--padding--right) + var(--wp--custom--button--border--width))}input+button.button,select+button.button{margin-top:-3px}.button.disabled{cursor:not-allowed;opacity:.6}.wp-block-post-content a.button{text-decoration:none}.wp-block-button__link{width:auto}pre{background-color:#f7f7f7;border:1px solid var(--wp--preset--color--light-grey-1);overflow:scroll;padding:20px}code,pre{border-radius:2px}code{background:var(--wp--preset--color--light-grey-2);display:inline-block;line-height:var(--wp--custom--body--extra-small--typography--line-height);max-width:100%;padding-inline-end:3px;padding-inline-start:3px}dialog{border:0;box-shadow:-6px 6px 6px #0003;min-height:50%;min-width:30%}@media (min-width:1280px){dialog{max-width:55%}}dialog::backdrop{background:#000;opacity:.5}dialog .close{color:inherit;cursor:pointer;position:absolute;left:1em;text-decoration:none!important;top:1em}.plugin-card{display:flex;flex-direction:column;height:100%;justify-content:space-between}.plugin-card .entry{display:inline-block;vertical-align:top}.plugin-card .entry-title{display:block;display:-webkit-box;font-size:var(--wp--preset--font-size--heading-5);font-weight:500;line-height:1.3;margin-bottom:2px!important;max-height:2.6em;overflow:hidden;-webkit-line-clamp:2;-webkit-box-orient:vertical}.plugin-card .entry-title a{display:block;text-decoration:none}.plugin-card .entry-title a:focus{box-shadow:none}.plugin-card .entry-excerpt{clear:both;font-size:var(--wp--preset--font-size--small)}.plugin-card .entry-excerpt p{margin:0}.plugin-card footer{font-size:var(--wp--preset--font-size--small);margin-top:var(--wp--style--block-gap)}.plugin-card footer span{color:var(--wp--preset--color--charcoal-4);display:inline-block;line-height:var(--wp--preset--font-size--normal);overflow:hidden}.plugin-card footer span.plugin-author{width:100%}.plugin-card footer span.plugin-author span{color:var(--wp--preset--color--charcoal-1)}.plugin-card footer span.plugin-author path{fill:var(--wp--preset--color--charcoal-1)}.plugin-card footer span svg{height:24px;vertical-align:bottom;width:24px}.plugin-card footer span svg path{fill:var(--wp--preset--color--charcoal-4)}.plugin-card footer span.active-installs{min-width:48%}.plugin-cards{cursor:pointer}.plugin-cards .is-style-cards-grid li:hover{background-color:#fff!important;border:1px solid var(--wp--preset--color--charcoal-1)!important}.plugin-cards .is-style-cards-grid li:focus-within{border-color:#0000;border-radius:2px;box-shadow:0 0 0 1.5px var(--wp--custom--link--color--text)}@media screen and (max-width:737px){.plugin-cards .is-style-cards-grid{grid-template-columns:100%}}.entry-thumbnail{display:none;margin-bottom:var(--wp--style--block-gap);margin-left:var(--wp--style--block-gap);max-width:80px}.entry-thumbnail .plugin-icon{background-size:cover;border-radius:var(--wp--custom--button--border--radius);display:block;height:80px;width:80px}@media screen and (min-width:21em){.entry-thumbnail{display:inline-block;float:right;vertical-align:top}}.single .entry-thumbnail{display:none;float:right;height:96px;margin-bottom:0;max-width:96px}@media screen and (min-width:26em){.single .entry-thumbnail{display:block}}.single .entry-thumbnail .plugin-icon{background-size:contain!important;height:96px!important;width:96px!important}.plugin-rating{line-height:1;margin:0 0 8px 10px}.plugin-rating .wporg-ratings{display:inline-block;margin-left:5px}.plugin-rating .rating-count{color:var(--wp--preset--color--charcoal-4);font-size:var(--wp--preset--font-size--extra-small);vertical-align:text-bottom}.plugin-rating .rating-count a{color:inherit;cursor:hand;text-decoration:none}[class*=dashicons-star-]{color:var(--wp--preset--color--pomegrade-1)}.rtl .dashicons-star-half{transform:rotateY(-180deg)}#main .plugin-section{margin:0 auto var(--wp--preset--spacing--60)}#main .plugin-section:last-of-type{margin-bottom:0}#main .plugin-section .section-header{align-items:center;column-gap:10px;display:flex;justify-content:space-between;margin-bottom:var(--wp--style--block-gap)}#main .plugin-section .section-header>h2{margin-bottom:0}#main .plugin-section .section-link{align-self:center;flex:0 0 auto;text-decoration:underline}.pagination .nav-links{margin-top:var(--wp--style--block-gap);padding-top:var(--wp--style--block-gap);text-align:center}.pagination .nav-links a{text-decoration:none}.pagination .nav-links .page-numbers{cursor:pointer;display:inline-block;min-width:2em;padding:8px;text-align:center}.pagination .nav-links .page-numbers.dots,.pagination .nav-links .page-numbers.next,.pagination .nav-links .page-numbers.prev{background:none;font-size:.9em;width:auto}.pagination .nav-links .page-numbers.dots{cursor:inherit}@media screen and (max-width:737px){.pagination .nav-links .page-numbers.next,.pagination .nav-links .page-numbers.prev{font-size:0;min-width:auto;padding:0}.pagination .nav-links .page-numbers.next:after,.pagination .nav-links .page-numbers.prev:before{display:inline-block;font-size:medium;line-height:1.5;min-width:2em;padding:8px}.pagination .nav-links .page-numbers.prev:before{content:"‹"}.pagination .nav-links .page-numbers.next:after{content:"›"}}.pagination .nav-links span.page-numbers{font-weight:700}.pagination .nav-links span.page-numbers.current{text-decoration:underline}@keyframes favme-anime{0%{font-size:var(--wp--preset--font-size--large);opacity:1;-webkit-text-stroke-color:#0000}25%{color:#fff;font-size:var(--wp--preset--font-size--small);opacity:.6;-webkit-text-stroke-width:1px;-webkit-text-stroke-color:#dc3232}75%{color:#fff;font-size:var(--wp--preset--font-size--large);opacity:.6;-webkit-text-stroke-width:1px;-webkit-text-stroke-color:#dc3232}to{font-size:var(--wp--preset--font-size--normal);opacity:1;-webkit-text-stroke-color:#0000}}.plugin-favorite{height:calc(var(--wp--custom--button--spacing--padding--top)*2 + var(--wp--preset--font-size--normal)*2);text-align:center;vertical-align:top;width:36px}.plugin-favorite .plugin-favorite-heart{align-items:center;background:none;border:0;border-radius:0;box-shadow:none;color:#cbcdce;cursor:pointer;display:flex;font-size:var(--wp--preset--font-size--large);height:100%;justify-content:center;line-height:1;margin:0;outline:none;padding:0;text-decoration:none}.plugin-favorite .plugin-favorite-heart.favorited{color:#dc3232}.plugin-favorite .plugin-favorite-heart:focus,.plugin-favorite .plugin-favorite-heart:hover{color:var(----wp--preset--color--charcoal-2);text-decoration:none}.plugin-favorite .plugin-favorite-heart:after{content:"\f487";font-family:dashicons;vertical-align:top}.plugin-banner img{aspect-ratio:3.089;border-radius:var(--wp--custom--button--border--radius);display:block;margin:0 auto var(--wp--preset--spacing--30);width:100%}@keyframes hideAnimation{to{visibility:hidden}}.categorization .help{color:var(--wp--preset--color--charcoal-4);display:inline-block;font-size:.8rem;margin-top:0}.categorization label{display:block;font-weight:700}.categorization input{width:100%}.categorization .success-msg{background:#eff7ed;border:solid #64b450;border-width:0 5px 0 0;font-size:.8rem;margin-right:1rem;opacity:0;overflow:auto;padding:.1rem .6rem .2rem;position:relative;transition:visibility 0s,opacity .5s linear;-webkit-user-select:none;user-select:none;visibility:hidden}.categorization .success-msg.saved{animation:hideAnimation 0s ease-in 5s;animation-fill-mode:forwards;opacity:1;visibility:visible}.plugin-changelog code{font-size:var(--wp--preset--font-size--small)}.plugin-developers .contributors-list li{align-items:center;display:flex;padding-bottom:var(--wp--style--block-gap)}@media screen and (min-width:500px){.plugin-developers .contributors-list{display:flex;flex-wrap:wrap}.plugin-developers .contributors-list li{padding-bottom:unset;width:50%}}.plugin-faq dl{border-bottom:1px solid var(--wp--preset--color--light-grey-1)}.plugin-faq dt{border-top:1px solid var(--wp--preset--color--light-grey-1);cursor:pointer;padding:1rem 0}.plugin-faq dt:before{content:"\f347";float:left;font-family:dashicons;margin:0 1rem}.plugin-faq dt.open:before{content:"\f343"}.plugin-faq dt .button-link{display:inherit;text-align:inherit}.plugin-faq dt .button-link.no-focus{box-shadow:none;outline:none}.plugin-faq dt h3{color:var(--wp--custom--link--color--text);display:inline;font-size:var(--wp--preset--font-size--normal);font-weight:400;margin-bottom:0;margin-top:0!important;text-decoration:underline}.plugin-faq dt h3 button{all:inherit;max-width:calc(100% - 60px)}.plugin-faq dt h3 button:focus,.plugin-faq dt h3 button:hover{text-decoration:underline}.plugin-faq dd{display:none;margin:0 0 1rem}.no-js .plugin-faq dd{display:block}.plugin-faq dd p{margin:0}.plugin-faq dd p+p{margin-top:1rem}.image-gallery{-webkit-user-select:none;user-select:none}.image-gallery-content{position:relative}.image-gallery-content .image-gallery-left-nav,.image-gallery-content .image-gallery-right-nav{border-color:var(--wp--preset--color--light-grey-1);display:none;font-size:48px;height:100%;position:absolute;top:0;transition:background .1s ease,border .1s ease;z-index:4}@media (max-width:768px){.image-gallery-content .image-gallery-left-nav,.image-gallery-content .image-gallery-right-nav{font-size:3.4em}}@media (min-width:768px){.image-gallery-content .image-gallery-left-nav:hover,.image-gallery-content .image-gallery-right-nav:hover{background:#fff;border:1px solid var(--wp--preset--color--light-grey-1);opacity:.8}}.image-gallery-content .image-gallery-left-nav:before,.image-gallery-content .image-gallery-right-nav:before{font-family:dashicons;position:relative}.image-gallery-content .image-gallery-left-nav{right:0}.image-gallery-content .image-gallery-left-nav:before{content:"\f345"}.image-gallery-content .image-gallery-left-nav:hover{margin-right:-1px}.image-gallery-content .image-gallery-right-nav{left:0}.image-gallery-content .image-gallery-right-nav:before{content:"\f341"}.image-gallery-content .image-gallery-right-nav:hover{margin-left:-1px}.image-gallery-content:hover .image-gallery-left-nav,.image-gallery-content:hover .image-gallery-right-nav{display:block}.image-gallery-slides{border:1px solid #eee;line-height:0;overflow:hidden;position:relative;white-space:nowrap}.image-gallery-slide{right:0;position:absolute;top:0;width:100%}.image-gallery-slide.center{position:relative}.image-gallery-slide .image-gallery-image{margin:0}.image-gallery-slide img{display:block;margin:0 auto}.image-gallery-slide .image-gallery-description{background:var(--wp--preset--color--light-grey-2);color:var(--wp--preset--color--charcoal-1);font-size:var(--wp--preset--font-size--small);line-height:1.5;padding:10px 20px;white-space:normal}@media (max-width:768px){.image-gallery-slide .image-gallery-description{padding:8px 15px}}.image-gallery-thumbnails{background:#fff;margin-top:5px}.image-gallery-thumbnails .image-gallery-thumbnails-container{cursor:pointer;text-align:center;white-space:nowrap}.image-gallery-thumbnail{border:1px solid #eee;display:table-cell;margin-left:5px;max-height:100px;overflow:hidden}.image-gallery-thumbnail .image-gallery-image{margin:0}.image-gallery-thumbnail img{vertical-align:middle;width:100px}@media (max-width:768px){.image-gallery-thumbnail img{width:75px}}.image-gallery-thumbnail:hover{box-shadow:0 1px 8px #0000004d}.image-gallery-thumbnail.active{border:1px solid #337ab7}.image-gallery-thumbnail-label{color:#222;font-size:1em}@media (max-width:768px){.image-gallery-thumbnail-label{font-size:.8em}}.image-gallery-index{background:#0006;bottom:0;color:#fff;line-height:1;padding:10px 20px;position:absolute;left:0;z-index:4}.plugin-reviews{list-style-type:none;margin:0;padding:0}.plugin-reviews .plugin-review{border-bottom:1px solid var(--wp--preset--color--light-grey-1);margin:2rem 0 1rem;padding-bottom:1rem}.plugin-reviews .plugin-review a{text-decoration:none}.plugin-reviews .plugin-review:first-child{margin-top:0}.plugin-reviews .plugin-review .header-top{display:flex}.plugin-reviews .plugin-review .header-top .wporg-ratings{flex-shrink:0}.plugin-reviews .plugin-review .header-bottom{display:flex;margin-top:4px}.plugin-reviews .review-avatar{display:none}.plugin-reviews .review,.plugin-reviews .review-author,.plugin-reviews .wporg-ratings{display:inline-block;vertical-align:top}.plugin-reviews .review-header{margin:0 0 .5rem}.plugin-reviews .review-title{font-size:var(--wp--preset--font-size--normal);font-weight:500;margin:2px 12px 0 0!important;text-transform:inherit}.plugin-reviews .review-author,.plugin-reviews .review-date,.plugin-reviews .review-replies{font-size:var(--wp--preset--font-size--extra-small);line-height:1.25}.plugin-reviews .review-date,.plugin-reviews .review-replies{color:var(--wp--preset--color--charcoal-4);font-size:var(--wp--preset--font-size--extra-small);margin-right:12px}.plugin-reviews .review-replies:before{content:"•";margin-left:12px}.plugin-reviews .review-content{margin:1em 0}@media screen and (min-width:737px){.plugin-reviews .review-avatar{display:inline-block;vertical-align:top}.plugin-reviews .review-avatar .avatar{margin-left:1rem}.plugin-reviews .review{width:calc(100% - 60px - 1rem)}.plugin-reviews .review-header{margin:0}.plugin-reviews .review-author,.plugin-reviews .review-date,.plugin-reviews .review-replies{line-height:1}}.plugin-reviews .reviews-link{display:inline-block;font-size:var(--wp--preset--font-size--small);text-decoration:none}.plugin-reviews .reviews-link:after{content:"\f341";float:left;font-family:dashicons;padding-right:5px;position:relative;top:1px;vertical-align:text-top}.plugin-screenshots{list-style-type:none;margin:0;padding:0}.plugin-screenshots .image-gallery-content{display:table;width:100%}.plugin-screenshots .image-gallery-slides{display:table-cell;max-height:600px}.plugin-screenshots .image-gallery-image img{max-height:550px;max-width:100%}.plugin-screenshots .image-gallery-thumbnail{vertical-align:top}.plugin-screenshots .image-gallery-thumbnail img{max-height:100px}.plugin-screenshots .image-gallery-thumbnails{overflow:hidden}.download-history-stats td{text-align:left}.previous-versions{max-width:60%}@media screen and (min-width:737px){.previous-versions{height:32px;vertical-align:middle}}hr{margin:2.5rem auto}.section h1:nth-child(2),.section h2:nth-child(2),.section h3:nth-child(2),.section h4:nth-child(2),.section h5:nth-child(2),.section h6:nth-child(2){margin-top:0}.section-heading{font-family:var(--wp--preset--font-family--inter)!important;font-size:var(--wp--preset--font-size--heading-5)!important;font-style:normal;font-weight:600;line-height:var(--wp--custom--heading--level-5--typography--line-height)}.section-intro{color:var(--wp--preset--color--charcoal-4);font-size:var(--wp--preset--font-size--small);margin-bottom:var(--wp--preset--spacing--20);margin-top:var(--wp--preset--spacing--10)}.type-plugin .plugin-notice{margin-top:0}.type-plugin .plugin-header{border-bottom:0;padding-top:var(--wp--preset--spacing--40)}.type-plugin .plugin-header:after,.type-plugin .plugin-header:before{content:"";display:table;table-layout:fixed}.type-plugin .plugin-header:after{clear:both}.type-plugin .plugin-header .entry-heading-container{display:flex;flex-direction:column;justify-content:space-between}@media screen and (max-width:599px){.type-plugin .plugin-header .entry-heading-container{--wp--custom--button--spacing--padding--top:12px;--wp--custom--button--spacing--padding--bottom:12px;--wp--custom--button--spacing--padding--left:16px;--wp--custom--button--spacing--padding--right:16px}}@media screen and (min-width:700px){.type-plugin .plugin-header .entry-heading-container{flex-direction:row}}.type-plugin .plugin-header .entry-heading-container>:first-child{align-items:center;display:flex;flex:1}.type-plugin .plugin-header .plugin-actions{align-items:center;display:flex;gap:16px;margin-top:var(--wp--style--block-gap)}@media screen and (min-width:700px){.type-plugin .plugin-header .plugin-actions{margin-top:0;margin-inline-start:1rem}}.type-plugin .plugin-header .plugin-actions>.button,.type-plugin .plugin-header .plugin-actions>div{display:inline-block;text-align:center}@media screen and (max-width:34em){.type-plugin .plugin-header .plugin-actions>.button.download-button{display:none}}.type-plugin .plugin-header .plugin-title{clear:none;font-size:var(--wp--preset--font-size--heading-3);font-weight:400;line-height:var(--wp--custom--heading--level-3--typography--line-height);margin:0}.type-plugin .plugin-header .plugin-title a{color:inherit;text-decoration:none}.type-plugin .plugin-header .plugin-title a:hover{text-decoration:underline}.type-plugin .plugin-header .byline{color:var(--wp--preset--color--charcoal-4);display:block;margin-top:4px}.type-plugin .plugin-banner+.plugin-header{padding-top:0}.type-plugin .plugin-banner+.plugin-header>.notice:first-of-type{margin-top:0}.type-plugin .tabs{border-bottom:1px solid var(--wp--preset--color--light-grey-1);list-style:none;margin:0}.type-plugin .tabs li{border:1px solid #0000;display:inline-block;font-size:.9rem;margin-bottom:-1px;transition:background .2s ease}.type-plugin .tabs li a{background:#fff;border:0;color:var(--wp--preset--color--charcoal-1);display:block;font-size:var(--wp--preset--font-size--normal);padding:.64rem 1.25rem;text-decoration:none}.type-plugin .tabs li a.active,.type-plugin .tabs li a:hover{background:var(--wp--preset--color--light-grey-2)!important}.type-plugin .tabs li.active,.type-plugin .tabs li:hover{border:1px solid var(--wp--preset--color--light-grey-1)}@media screen and (max-width:38em){.type-plugin .tabs{border-top:1px solid var(--wp--preset--color--light-grey-1)}.type-plugin .tabs li{display:block;margin-bottom:1px}.type-plugin .tabs li,.type-plugin .tabs li.active,.type-plugin .tabs li:hover{border:none;border-bottom:1px solid var(--wp--preset--color--light-grey-1)}}@media screen and (min-width:737px){.type-plugin .entry-content{float:right;padding:0;width:65%}}.type-plugin .entry-content>div,.type-plugin .entry-content>div~button{border:0;display:none}.type-plugin .entry-content ol>li>p,.type-plugin .entry-content ul>li>p{margin:0}.type-plugin .entry-content #admin{display:block!important}.type-plugin .plugin-blocks-list{list-style:none;margin-right:0;padding-right:0}.type-plugin .plugin-blocks-list .plugin-blocks-list-item{display:grid;grid-template-columns:auto 1fr;margin-bottom:var(--wp--style--block-gap)}.type-plugin .plugin-blocks-list .block-icon{border:1px solid var(--wp--preset--color--light-grey-1);border-radius:2px;display:inline-block;height:3.5rem;line-height:16px;margin-left:var(--wp--style--block-gap);padding:var(--wp--style--block-gap);width:3.5rem}.type-plugin .plugin-blocks-list .block-icon.dashicons{color:inherit}.type-plugin .plugin-blocks-list .block-icon.dashicons:before{margin-right:-3px}.type-plugin .plugin-blocks-list .block-icon svg{height:16px;width:16px;fill:currentColor;margin-right:-1px}.type-plugin .plugin-blocks-list .block-title{align-self:center;font-weight:700}.type-plugin .plugin-blocks-list .has-description .block-icon{grid-row:1/span 2}.type-plugin .plugin-blocks-list .has-description .block-title{margin-bottom:.4em}.type-plugin span#description,.type-plugin span#developers,.type-plugin span#installation,.type-plugin span#reviews{position:fixed}.type-plugin span#advanced.displayed~#section-links .tabs li#tablink-advanced,.type-plugin span#developers:target~#section-links .tabs li#tablink-developers,.type-plugin span#installation:target~#section-links .tabs li#tablink-installation,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#advanced:not(.displayed)~#section-links .tabs li#tablink-description,.type-plugin span#reviews:target~#section-links .tabs li#tablink-reviews{background:#fff;border:1px solid var(--wp--preset--color--light-grey-1);border-bottom:0;padding-bottom:1px}@media screen and (max-width:38em){.type-plugin span#advanced.displayed~#section-links .tabs li#tablink-advanced.active,.type-plugin span#advanced.displayed~#section-links .tabs li#tablink-advanced:hover,.type-plugin span#developers:target~#section-links .tabs li#tablink-developers.active,.type-plugin span#developers:target~#section-links .tabs li#tablink-developers:hover,.type-plugin span#installation:target~#section-links .tabs li#tablink-installation.active,.type-plugin span#installation:target~#section-links .tabs li#tablink-installation:hover,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#advanced:not(.displayed)~#section-links .tabs li#tablink-description.active,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#advanced:not(.displayed)~#section-links .tabs li#tablink-description:hover,.type-plugin span#reviews:target~#section-links .tabs li#tablink-reviews.active,.type-plugin span#reviews:target~#section-links .tabs li#tablink-reviews:hover{padding-bottom:1px!important}}.type-plugin span#section-links{display:flex;flex-flow:row wrap;margin-top:var(--wp--preset--spacing--30)}.type-plugin span#section-links .tabs{flex:1 1 auto;padding-right:0}@media screen and (max-width:38em){.type-plugin span#section-links .tabs{border:1px solid var(--wp--preset--color--light-grey-1)!important}.type-plugin span#section-links .tabs li{border:none!important}.type-plugin span#section-links{display:block}}.type-plugin #link-support{align-self:flex-end;border-bottom:1px solid var(--wp--preset--color--light-grey-1);flex:0 0 auto;font-size:.9rem}.type-plugin #link-support a{display:inline-block;font-size:var(--wp--preset--font-size--normal);padding:.64rem 1.25rem .64rem 0}@media screen and (max-width:38em){.type-plugin #link-support{border-bottom:0;display:block;width:100%}.type-plugin #link-support a{padding-left:1.25rem}}.type-plugin span#developers:target~.entry-content #tab-changelog,.type-plugin span#developers:target~.entry-content #tab-developers,.type-plugin span#developers:target~.entry-content #tab-developers .plugin-development,.type-plugin span#developers:target~.entry-content #tab-developers~button,.type-plugin span#installation:target~.entry-content #tab-installation,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~.entry-content #blocks,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~.entry-content #faq,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~.entry-content #screenshots,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~.entry-content #tab-description,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~.entry-content #tab-developers,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~.entry-content #tab-developers~button,.type-plugin span#reviews:target~.entry-content #tab-reviews{display:block}.type-plugin span#developers:target~.entry-content #tab-developers .plugin-contributors,.type-plugin span#installation:target~.entry-meta .plugin-contributors,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~.entry-content #tab-developers .plugin-development,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~.entry-meta .plugin-contributors,.type-plugin span#reviews:target~.entry-meta .plugin-contributors,.type-plugin span#reviews:target~.entry-meta .plugin-donate,.type-plugin span#reviews:target~.entry-meta .plugin-meta,.type-plugin span#reviews:target~.entry-meta .plugin-support{display:none}@media screen and (min-width:737px){.type-plugin .entry-content,.type-plugin .entry-meta{padding-right:0;padding-left:0}.type-plugin .entry-meta{float:left;width:30%}}.type-plugin .plugin-danger-zone h4{margin-top:var(--wp--preset--spacing--60)}.plugin-releases-listing{border-collapse:collapse;width:100%}.plugin-releases-listing tbody td:nth-child(4) div{font-size:14px}.plugin-releases-listing-actions{display:flex;flex-direction:column;gap:8px}@media screen and (min-width:34em){.plugin-releases-listing-actions{flex-direction:row}}.plugin-adopt-me{background:#e6f4fa;margin-top:36px;padding:12px}.plugin-adopt-me .widget-title{margin-top:0}.plugin-adopt-me p{margin-bottom:0}.widget.plugin-categorization{margin-top:var(--wp--style--block-gap)}.widget.plugin-categorization .widget-head h2{font-size:var(--wp--preset--font-size--heading-4);margin-bottom:.2rem;margin-top:0}.widget.plugin-categorization .widget-head a{font-size:var(--wp--preset--font-size--small)}.widget.plugin-categorization .widget-head a[href=""]{display:none}.widget.plugin-categorization p{font-size:var(--wp--preset--font-size--small);margin-top:.5rem}.widget.plugin-categorization~.plugin-meta li:first-child{border-top:1px solid var(--wp--preset--color--light-grey-1)}.committer-list,.support-rep-list{list-style:none;margin:0;padding:0}.committer-list li,.support-rep-list li{padding-bottom:.5rem}.committer-list li .remove,.support-rep-list li .remove{color:red;visibility:hidden}.committer-list li:hover .remove,.support-rep-list li:hover .remove{visibility:visible}.committer-list .avatar,.support-rep-list .avatar{float:right;margin-left:10px}.committer-list .spinner,.support-rep-list .spinner{position:relative}.committer-list .spinner:after,.support-rep-list .spinner:after{background:url(/wp-admin/images/spinner.gif) no-repeat 50%;background-size:20px 20px;content:"";display:block;height:20px;margin:-10px 0 0 -10px;position:absolute;left:-50%;top:50%;transform:translateZ(0);width:20px}@media (min-resolution:120dpi),print{.committer-list .spinner:after,.support-rep-list .spinner:after{background-image:url(/wp-admin/images/spinner-2x.gif)}}.committer-list .new,.support-rep-list .new{margin-top:var(--wp--style--block-gap)}.plugin-contributors.read-more{border-bottom:1px solid var(--wp--preset--color--light-grey-1);max-height:200px;overflow:hidden;padding-bottom:1px}.plugin-contributors.read-more.toggled{max-height:none}.no-js .plugin-contributors.read-more{max-height:none;overflow:auto}.contributors-list{list-style-type:none;margin:0;padding:0}.contributors-list li{align-items:center;display:flex;margin-bottom:1rem}.contributors-list .avatar{float:right;margin-left:10px}.plugin-meta{font-size:var(--wp--preset--font-size--small);margin-top:var(--wp--style--block-gap)}.plugin-meta ul{list-style-type:none;margin:0;padding:0}.plugin-meta li{border-top:1px solid var(--wp--preset--color--light-grey-1);display:inline-block;padding:.5rem 0;position:relative;width:100%}.plugin-meta li strong{float:left;font-weight:500}.plugin-meta li .plugin-admin{font-size:var(--wp--preset--font-size--normal);font-weight:400}.plugin-meta li:first-child{border-top:0}.plugin-meta .languages,.plugin-meta .tags{float:left;text-align:left}.plugin-meta .tags{width:60%}.plugin-meta .languages button{font-size:var(--wp--preset--font-size--small);outline:revert}.plugin-meta .languages .popover{margin-top:8px}.plugin-meta .languages .popover-trigger{color:var(--wp--custom--link--color--text);text-decoration:underline}.plugin-meta .languages .popover-trigger:hover{text-decoration:underline}.plugin-meta [rel=tag]{background:var(--wp--preset--color--blueberry-4);border-radius:2px;color:var(--wp--preset--color--charcoal-1);display:inline-block;font-size:var(--wp--preset--font-size--extra-small);margin:2px;max-width:95%;overflow:hidden;padding:3px 6px;position:relative;text-decoration:none;text-overflow:ellipsis;white-space:nowrap;width:auto}.plugin-meta [rel=tag]:hover{text-decoration:underline}.popover{background-color:#fff;border:1px solid var(--wp--preset--color--light-grey-1);border-radius:2px;box-shadow:0 2px 10px #0000001a;display:none;right:0;margin-top:10px;max-width:300px;padding:1em 1em 2em;position:absolute;width:100%;z-index:100}.popover.is-top-right{right:auto;left:0}.popover.is-visible{display:block}.popover .popover-close{bottom:.5em;color:var(--wp--custom--link--color--text);font-size:small;position:absolute;left:.6em}.popover .popover-close:active,.popover .popover-close:focus,.popover .popover-close:hover{text-decoration:underline}.popover .popover-arrow{border:10px solid #0000;border-bottom:10px solid #ccc;border-top:none;height:0;position:absolute;left:20px;top:-10px;width:0;z-index:-1}.popover .popover-arrow:after{border:10px solid #0000;border-bottom:10px solid #fff;border-top:none;content:"";right:-10px;position:absolute;top:2px}.popover .popover-inner{text-align:right}.popover .popover-inner p:first-child{margin-top:0}.popover .popover-inner p:last-child{margin-bottom:0}.plugin-support .counter-container{margin-bottom:1rem;position:relative}.plugin-support .counter-back,.plugin-support .counter-bar{display:inline-block;height:30px;vertical-align:middle}.plugin-support .counter-back{background-color:var(--wp--preset--color--light-grey-2);width:100%}.plugin-support .counter-bar{background-color:var(--wp--preset--color--acid-green-2);display:block}.plugin-support .counter-count{font-size:var(--wp--preset--font-size--extra-small);right:8px;position:absolute;top:8px;width:100%;width:calc(100% - 8px)}@media screen and (min-width:737px){.plugin-support .counter-count{top:5px}}.home .widget,.widget-area.home .widget{display:inline-block;font-size:var(--wp--preset--font-size--small);margin:0;margin:var(--wp--style--block-gap);vertical-align:top;width:auto}@media screen and (min-width:737px){.home .widget,.widget-area.home .widget{margin:0;width:30%}.home .widget:first-child,.widget-area.home .widget:first-child{margin-left:5%}.home .widget:last-child,.widget-area.home .widget:last-child{margin-right:5%}}.home .widget select,.widget-area.home .widget select{max-width:100%}.entry-meta .widget-title{font-size:var(--wp--preset--font-size--heading-4)}body.single.single-plugin .entry-meta{font-size:var(--wp--preset--font-size--normal)}.widget-area{margin:0 auto;padding:var(--wp--preset--spacing--40) 0}.widget-area .widget-title{font-size:var(--wp--preset--font-size--heading-1);font-weight:var(--wp--custom--heading--typography--font-weight);margin-top:var(--wp--preset--spacing--50)}.widget-area .textwidget{text-wrap:pretty} +======= +@charset "UTF-8";.avatar{border-radius:50%;vertical-align:middle}.wp-block-wporg-language-suggest>p{margin:0}.block-validator>details summary{padding:var(--wp--style--block-gap) 0}.block-validator .block-validator__plugin-form label{display:block;margin-bottom:.8em}.block-validator .block-validator__plugin-input-container{display:flex;max-width:34rem}.block-validator .block-validator__plugin-input{flex:1}.block-validator .block-validator__plugin-submit{flex:0;margin-right:4px}@media (max-width:36rem){.block-validator .block-validator__plugin-submit{width:100%}.block-validator .block-validator__plugin-input-container{display:block}.block-validator .block-validator__plugin-input{width:100%}.block-validator .block-validator__plugin-submit{margin-right:0;margin-top:var(--wp--style--block-gap)}}.block-validator .notice details,.block-validator .notice p{font-size:var(--wp--preset--font-size--normal);margin:var(--wp--style--block-gap) 0}.block-validator .notice details p{font-size:var(--wp--preset--font-size--small);margin-right:1rem}.block-validator .notice summary{display:list-item}.block-validator figure{border:1px solid #aaa;display:inline-block;padding:1em}.block-validator .test-screenshot{text-align:center}.block-validator .plugin-upload-form-controls{align-items:center;display:flex;gap:4px}.block-validator .plugin-upload-form-controls>label{border:1px solid var(--wp--custom--form--border--color);border-radius:var(--wp--custom--form--border--radius);cursor:pointer;min-width:200px;padding:4px 8px}.notice{background:#fff;border-right:4px solid #fff;box-shadow:0 1px 1px 0 #0000001a;font-size:var(--wp--preset--font-size--small);margin:var(--wp--style--block-gap) 0;padding:1px 12px}.notice p,.notice ul{margin:.5em 0;padding:2px}.notice pre{white-space:pre-wrap}.notice ul{list-style:none;margin:.5em}.notice.notice-alt{box-shadow:none}.notice.notice-large{padding:10px 20px}.notice.notice-success{border-right-color:#46b450}.notice.notice-success.notice-alt{background-color:#ecf7ed}.notice.notice-warning{border-right-color:#ffb900}.notice.notice-warning.notice-alt{background-color:#fff8e5}.notice.notice-error{border-right-color:#dc3232}.notice.notice-error.notice-alt{background-color:#fbeaea}.notice.notice-info{border-right-color:#00a0d2}.notice.notice-info.notice-alt{background-color:#e5f5fa}.notice.hidden{display:none}.plugin-upload-form.hidden{display:none}.plugin-upload-form fieldset{border:none;margin:0;padding:0}.plugin-upload-form legend{margin:1rem 0}.plugin-upload-form .category-checklist{list-style-type:none;margin:0 0 2rem}.plugin-upload-form .category-checklist li{float:right;padding:.5rem 0;width:50%}@media screen and (min-width:48em){.plugin-upload-form .category-checklist li{padding:0}.plugin-upload-form .category-checklist label{font-size:var(--wp--preset--font-size--small)}.plugin-upload-form label.button{line-height:1.8}}.plugin-upload-form .plugin-file{height:.1px;opacity:0;overflow:hidden;position:absolute;width:.1px;z-index:-1}.plugin-queue-message code{font-size:1em}.plugin-queue-message dialog.slug-change input[type=text]{font-family:monospace;font-size:1.2em;width:20em}:where(main) a:where(:not(.wp-element-button,.wp-block-wporg-link-wrapper)):focus,:where(main) button:where(:not([class*=wp-block-button])):focus{border-radius:2px;box-shadow:0 0 0 1.5px currentColor;outline:none}.wporg-filter-bar{--wporg--filter-bar--gap:20px;--wporg--filter-bar--color:#40464d;--wporg--filter-bar--active--background-color:var(--wp--custom--button--color--background);--wporg--filter-bar--focus--border-color:var(--wp--custom--button--focus--border--color);margin:var(--wp--style--block-gap) 0}.wporg-filter-bar .wporg-query-filter__toggle.is-active,.wporg-filter-bar .wporg-query-filter__toggle:active,.wporg-filter-bar .wporg-query-filter__toggle:focus{background-color:var(--wporg--filter-bar--active--background-color);color:var(--wp--custom--button--color--text)}.wporg-filter-bar .wporg-filter-bar__navigation{flex-grow:1;margin-bottom:var(--wporg--filter-bar--gap)}.wporg-filter-bar .wporg-filter-bar__navigation ul{display:inline-block;font-size:13px;line-height:1.538;list-style:none;margin:0;padding-right:0}.wporg-filter-bar .wporg-filter-bar__navigation ul li{display:inline-block}.wporg-filter-bar .wporg-filter-bar__navigation ul li+li{margin-right:8px}.wporg-filter-bar .wporg-filter-bar__navigation ul a{border-radius:2px;color:var(--wporg--filter-bar--color);display:block;padding:8px 12px;text-decoration:none}.wporg-filter-bar .wporg-filter-bar__navigation ul a:focus,.wporg-filter-bar .wporg-filter-bar__navigation ul a:hover{text-decoration:underline}.wporg-filter-bar .wporg-filter-bar__navigation ul a:focus-visible{box-shadow:none;outline:1.5px solid var(--wporg--filter-bar--focus--border-color);outline-offset:-.5px}.wporg-filter-bar .wporg-filter-bar__navigation ul a.is-active{background-color:var(--wporg--filter-bar--active--background-color);color:#fff}.wporg-filter-bar .wporg-filter-bar__navigation ul a.is-active:focus,.wporg-filter-bar .wporg-filter-bar__navigation ul a.is-active:hover{color:#fff}.wporg-filter-bar .wporg-filter-bar__navigation ul a.is-active:focus-visible{box-shadow:inset 0 0 0 1.5px #fff;outline:1.5px solid var(--wporg--filter-bar--focus--border-color);outline-offset:-.5px}@media screen and (min-width:737px){.wporg-filter-bar{align-items:center;display:flex;flex-wrap:wrap;gap:var(--wporg--filter-bar--gap);justify-content:space-between;width:100%}.wporg-filter-bar .wporg-filter-bar__navigation{margin-bottom:0}}.wp-block-search__inside-wrapper{background:var(--wp--preset--color--light-grey-2);border:none}.button-link{background:none;border:0;border-radius:0;box-shadow:none;cursor:pointer;margin:0;outline:none;padding:0}.button{background-color:var(--wp--custom--button--color--background);border:0;border-radius:var(--wp--custom--button--border--radius);color:var(--wp--custom--button--color--text);cursor:pointer;opacity:1;padding:calc(var(--wp--custom--button--small--spacing--padding--top) + var(--wp--custom--button--border--width)) calc(var(--wp--custom--button--small--spacing--padding--left) + var(--wp--custom--button--border--width)) calc(var(--wp--custom--button--small--spacing--padding--bottom) + var(--wp--custom--button--border--width)) calc(var(--wp--custom--button--small--spacing--padding--right) + var(--wp--custom--button--border--width));vertical-align:middle}.button.button-large{padding:calc(var(--wp--custom--button--spacing--padding--top) + var(--wp--custom--button--border--width)) calc(var(--wp--custom--button--spacing--padding--left) + var(--wp--custom--button--border--width)) calc(var(--wp--custom--button--spacing--padding--bottom) + var(--wp--custom--button--border--width)) calc(var(--wp--custom--button--spacing--padding--right) + var(--wp--custom--button--border--width))}input+button.button,select+button.button{margin-top:-3px}.button.disabled{cursor:not-allowed;opacity:.6}.wp-block-post-content a.button{text-decoration:none}pre{background-color:#f7f7f7;border:1px solid var(--wp--preset--color--light-grey-1);overflow:scroll;padding:20px}code,pre{border-radius:2px}code{background:var(--wp--preset--color--light-grey-2);display:inline-block;line-height:var(--wp--custom--body--extra-small--typography--line-height);max-width:100%;padding-inline-end:3px;padding-inline-start:3px}dialog{border:0;box-shadow:-6px 6px 6px #0003;min-height:50%;min-width:30%}@media (min-width:1280px){dialog{max-width:55%}}dialog::backdrop{background:#000;opacity:.5}dialog .close{color:inherit;cursor:pointer;position:absolute;left:1em;text-decoration:none!important;top:1em}.plugin-card{display:flex;flex-direction:column;height:100%;justify-content:space-between}.plugin-card .entry{display:inline-block;vertical-align:top}.plugin-card .entry-title{display:block;display:-webkit-box;font-size:var(--wp--preset--font-size--heading-5);font-weight:500;line-height:1.3;margin-bottom:2px!important;max-height:2.6em;overflow:hidden;-webkit-line-clamp:2;-webkit-box-orient:vertical}.plugin-card .entry-title a{display:block;text-decoration:none}.plugin-card .entry-title a:focus{box-shadow:none}.plugin-card .entry-excerpt{clear:both;font-size:var(--wp--preset--font-size--small)}.plugin-card .entry-excerpt p{margin:0}.plugin-card footer{font-size:var(--wp--preset--font-size--small);margin-top:var(--wp--style--block-gap)}.plugin-card footer span{color:var(--wp--preset--color--charcoal-4);display:inline-block;line-height:var(--wp--preset--font-size--normal);overflow:hidden}.plugin-card footer span.plugin-author{width:100%}.plugin-card footer span.plugin-author span{color:var(--wp--preset--color--charcoal-1)}.plugin-card footer span.plugin-author path{fill:var(--wp--preset--color--charcoal-1)}.plugin-card footer span svg{height:24px;vertical-align:bottom;width:24px}.plugin-card footer span svg path{fill:var(--wp--preset--color--charcoal-4)}.plugin-card footer span.active-installs{min-width:48%}.plugin-cards{cursor:pointer}.plugin-cards .is-style-cards-grid li:hover{background-color:#fff!important;border:1px solid var(--wp--preset--color--charcoal-1)!important}.plugin-cards .is-style-cards-grid li:focus-within{border-color:#0000;border-radius:2px;box-shadow:0 0 0 1.5px var(--wp--custom--link--color--text)}@media screen and (max-width:737px){.plugin-cards .is-style-cards-grid{grid-template-columns:100%}}.entry-thumbnail{display:none;margin-bottom:var(--wp--style--block-gap);margin-left:var(--wp--style--block-gap);max-width:80px}.entry-thumbnail .plugin-icon{background-size:cover;border-radius:var(--wp--custom--button--border--radius);display:block;height:80px;width:80px}@media screen and (min-width:21em){.entry-thumbnail{display:inline-block;float:right;vertical-align:top}}.single .entry-thumbnail{display:none;float:right;height:96px;margin-bottom:0;max-width:96px}@media screen and (min-width:26em){.single .entry-thumbnail{display:block}}.single .entry-thumbnail .plugin-icon{background-size:contain!important;height:96px!important;width:96px!important}.plugin-rating{line-height:1;margin:0 0 8px 10px}.plugin-rating .wporg-ratings{display:inline-block;margin-left:5px}.plugin-rating .rating-count{color:var(--wp--preset--color--charcoal-4);font-size:var(--wp--preset--font-size--extra-small);vertical-align:text-bottom}.plugin-rating .rating-count a{color:inherit;cursor:hand;text-decoration:none}[class*=dashicons-star-]{color:var(--wp--preset--color--pomegrade-1)}.rtl .dashicons-star-half{transform:rotateY(-180deg)}#main .plugin-section{margin:0 auto var(--wp--preset--spacing--60)}#main .plugin-section:last-of-type{margin-bottom:0}#main .plugin-section .section-header{align-items:center;column-gap:10px;display:flex;justify-content:space-between;margin-bottom:var(--wp--style--block-gap)}#main .plugin-section .section-header>h2{margin-bottom:0}#main .plugin-section .section-link{align-self:center;flex:0 0 auto;text-decoration:underline}.pagination .nav-links{margin-top:var(--wp--style--block-gap);padding-top:var(--wp--style--block-gap);text-align:center}.pagination .nav-links a{text-decoration:none}.pagination .nav-links .page-numbers{cursor:pointer;display:inline-block;min-width:2em;padding:8px;text-align:center}.pagination .nav-links .page-numbers.dots,.pagination .nav-links .page-numbers.next,.pagination .nav-links .page-numbers.prev{background:none;font-size:.9em;width:auto}.pagination .nav-links .page-numbers.dots{cursor:inherit}@media screen and (max-width:737px){.pagination .nav-links .page-numbers.next,.pagination .nav-links .page-numbers.prev{font-size:0;min-width:auto;padding:0}.pagination .nav-links .page-numbers.next:after,.pagination .nav-links .page-numbers.prev:before{display:inline-block;font-size:medium;line-height:1.5;min-width:2em;padding:8px}.pagination .nav-links .page-numbers.prev:before{content:"‹"}.pagination .nav-links .page-numbers.next:after{content:"›"}}.pagination .nav-links span.page-numbers{font-weight:700}.pagination .nav-links span.page-numbers.current{text-decoration:underline}@keyframes favme-anime{0%{font-size:var(--wp--preset--font-size--large);opacity:1;-webkit-text-stroke-color:#0000}25%{color:#fff;font-size:var(--wp--preset--font-size--small);opacity:.6;-webkit-text-stroke-width:1px;-webkit-text-stroke-color:#dc3232}75%{color:#fff;font-size:var(--wp--preset--font-size--large);opacity:.6;-webkit-text-stroke-width:1px;-webkit-text-stroke-color:#dc3232}to{font-size:var(--wp--preset--font-size--normal);opacity:1;-webkit-text-stroke-color:#0000}}.plugin-favorite{height:calc(var(--wp--custom--button--spacing--padding--top)*2 + var(--wp--preset--font-size--normal)*2);text-align:center;vertical-align:top;width:36px}.plugin-favorite .plugin-favorite-heart{align-items:center;background:none;border:0;border-radius:0;box-shadow:none;color:#cbcdce;cursor:pointer;display:flex;font-size:var(--wp--preset--font-size--large);height:100%;justify-content:center;line-height:1;margin:0;outline:none;padding:0;text-decoration:none}.plugin-favorite .plugin-favorite-heart.favorited{color:#dc3232}.plugin-favorite .plugin-favorite-heart:focus,.plugin-favorite .plugin-favorite-heart:hover{color:var(----wp--preset--color--charcoal-2);text-decoration:none}.plugin-favorite .plugin-favorite-heart:after{content:"\f487";font-family:dashicons;vertical-align:top}.plugin-banner img{aspect-ratio:3.089;border-radius:var(--wp--custom--button--border--radius);display:block;margin:0 auto var(--wp--preset--spacing--30);width:100%}.plugin-releases{list-style-type:none;padding:0}.plugin-releases-item{border:1px solid var(--wp--preset--color--light-grey-1);border-radius:4px;margin-bottom:var(--wp--preset--spacing--30);padding:var(--wp--style--block-gap)}.plugin-releases-item-header{display:flex;justify-content:space-between}.plugin-releases-item-header h3{margin:0!important}@keyframes hideAnimation{to{visibility:hidden}}.categorization .help{color:var(--wp--preset--color--charcoal-4);display:inline-block;font-size:.8rem;margin-top:0}.categorization label{display:block;font-weight:700}.categorization input{width:100%}.categorization .success-msg{background:#eff7ed;border:solid #64b450;border-width:0 5px 0 0;font-size:.8rem;margin-right:1rem;opacity:0;overflow:auto;padding:.1rem .6rem .2rem;position:relative;transition:visibility 0s,opacity .5s linear;-webkit-user-select:none;user-select:none;visibility:hidden}.categorization .success-msg.saved{animation:hideAnimation 0s ease-in 5s;animation-fill-mode:forwards;opacity:1;visibility:visible}.plugin-changelog code{font-size:var(--wp--preset--font-size--small)}.plugin-developers .contributors-list li{align-items:center;display:flex;padding-bottom:var(--wp--style--block-gap)}@media screen and (min-width:500px){.plugin-developers .contributors-list{display:flex;flex-wrap:wrap}.plugin-developers .contributors-list li{padding-bottom:unset;width:50%}}.plugin-faq dl{border-bottom:1px solid var(--wp--preset--color--light-grey-1)}.plugin-faq dt{border-top:1px solid var(--wp--preset--color--light-grey-1);cursor:pointer;padding:1rem 0}.plugin-faq dt:before{content:"\f347";float:left;font-family:dashicons;margin:0 1rem}.plugin-faq dt.open:before{content:"\f343"}.plugin-faq dt .button-link{display:inherit;text-align:inherit}.plugin-faq dt .button-link.no-focus{box-shadow:none;outline:none}.plugin-faq dt h3{color:var(--wp--custom--link--color--text);display:inline;font-size:var(--wp--preset--font-size--normal);font-weight:400;margin-bottom:0;margin-top:0!important;text-decoration:underline}.plugin-faq dt h3 button{all:inherit;max-width:calc(100% - 60px)}.plugin-faq dt h3 button:focus,.plugin-faq dt h3 button:hover{text-decoration:underline}.plugin-faq dd{display:none;margin:0 0 1rem}.no-js .plugin-faq dd{display:block}.plugin-faq dd p{margin:0}.plugin-faq dd p+p{margin-top:1rem}.image-gallery{-webkit-user-select:none;user-select:none}.image-gallery-content{position:relative}.image-gallery-content .image-gallery-left-nav,.image-gallery-content .image-gallery-right-nav{border-color:var(--wp--preset--color--light-grey-1);display:none;font-size:48px;height:100%;position:absolute;top:0;transition:background .1s ease,border .1s ease;z-index:4}@media (max-width:768px){.image-gallery-content .image-gallery-left-nav,.image-gallery-content .image-gallery-right-nav{font-size:3.4em}}@media (min-width:768px){.image-gallery-content .image-gallery-left-nav:hover,.image-gallery-content .image-gallery-right-nav:hover{background:#fff;border:1px solid var(--wp--preset--color--light-grey-1);opacity:.8}}.image-gallery-content .image-gallery-left-nav:before,.image-gallery-content .image-gallery-right-nav:before{font-family:dashicons;position:relative}.image-gallery-content .image-gallery-left-nav{right:0}.image-gallery-content .image-gallery-left-nav:before{content:"\f345"}.image-gallery-content .image-gallery-left-nav:hover{margin-right:-1px}.image-gallery-content .image-gallery-right-nav{left:0}.image-gallery-content .image-gallery-right-nav:before{content:"\f341"}.image-gallery-content .image-gallery-right-nav:hover{margin-left:-1px}.image-gallery-content:hover .image-gallery-left-nav,.image-gallery-content:hover .image-gallery-right-nav{display:block}.image-gallery-slides{border:1px solid #eee;line-height:0;overflow:hidden;position:relative;white-space:nowrap}.image-gallery-slide{right:0;position:absolute;top:0;width:100%}.image-gallery-slide.center{position:relative}.image-gallery-slide .image-gallery-image{margin:0}.image-gallery-slide img{display:block;margin:0 auto}.image-gallery-slide .image-gallery-description{background:var(--wp--preset--color--light-grey-2);color:var(--wp--preset--color--charcoal-1);font-size:var(--wp--preset--font-size--small);line-height:1.5;padding:10px 20px;white-space:normal}@media (max-width:768px){.image-gallery-slide .image-gallery-description{padding:8px 15px}}.image-gallery-thumbnails{background:#fff;margin-top:5px}.image-gallery-thumbnails .image-gallery-thumbnails-container{cursor:pointer;text-align:center;white-space:nowrap}.image-gallery-thumbnail{border:1px solid #eee;display:table-cell;margin-left:5px;max-height:100px;overflow:hidden}.image-gallery-thumbnail .image-gallery-image{margin:0}.image-gallery-thumbnail img{vertical-align:middle;width:100px}@media (max-width:768px){.image-gallery-thumbnail img{width:75px}}.image-gallery-thumbnail:hover{box-shadow:0 1px 8px #0000004d}.image-gallery-thumbnail.active{border:1px solid #337ab7}.image-gallery-thumbnail-label{color:#222;font-size:1em}@media (max-width:768px){.image-gallery-thumbnail-label{font-size:.8em}}.image-gallery-index{background:#0006;bottom:0;color:#fff;line-height:1;padding:10px 20px;position:absolute;left:0;z-index:4}.plugin-reviews{list-style-type:none;margin:0;padding:0}.plugin-reviews .plugin-review{border-bottom:1px solid var(--wp--preset--color--light-grey-1);margin:2rem 0 1rem;padding-bottom:1rem}.plugin-reviews .plugin-review a{text-decoration:none}.plugin-reviews .plugin-review:first-child{margin-top:0}.plugin-reviews .plugin-review .header-top{display:flex}.plugin-reviews .plugin-review .header-top .wporg-ratings{flex-shrink:0}.plugin-reviews .plugin-review .header-bottom{display:flex;margin-top:4px}.plugin-reviews .review-avatar{display:none}.plugin-reviews .review,.plugin-reviews .review-author,.plugin-reviews .wporg-ratings{display:inline-block;vertical-align:top}.plugin-reviews .review-header{margin:0 0 .5rem}.plugin-reviews .review-title{font-size:var(--wp--preset--font-size--normal);font-weight:500;margin:2px 12px 0 0!important;text-transform:inherit}.plugin-reviews .review-author,.plugin-reviews .review-date,.plugin-reviews .review-replies{font-size:var(--wp--preset--font-size--extra-small);line-height:1.25}.plugin-reviews .review-date,.plugin-reviews .review-replies{color:var(--wp--preset--color--charcoal-4);font-size:var(--wp--preset--font-size--extra-small);margin-right:12px}.plugin-reviews .review-replies:before{content:"•";margin-left:12px}.plugin-reviews .review-content{margin:1em 0}@media screen and (min-width:737px){.plugin-reviews .review-avatar{display:inline-block;vertical-align:top}.plugin-reviews .review-avatar .avatar{margin-left:1rem}.plugin-reviews .review{width:calc(100% - 60px - 1rem)}.plugin-reviews .review-header{margin:0}.plugin-reviews .review-author,.plugin-reviews .review-date,.plugin-reviews .review-replies{line-height:1}}.plugin-reviews .reviews-link{display:inline-block;font-size:var(--wp--preset--font-size--small);text-decoration:none}.plugin-reviews .reviews-link:after{content:"\f341";float:left;font-family:dashicons;padding-right:5px;position:relative;top:1px;vertical-align:text-top}.plugin-screenshots{list-style-type:none;margin:0;padding:0}.plugin-screenshots .image-gallery-content{display:table;width:100%}.plugin-screenshots .image-gallery-slides{display:table-cell;max-height:600px}.plugin-screenshots .image-gallery-image img{max-height:550px;max-width:100%}.plugin-screenshots .image-gallery-thumbnail{vertical-align:top}.plugin-screenshots .image-gallery-thumbnail img{max-height:100px}.plugin-screenshots .image-gallery-thumbnails{overflow:hidden}.download-history-stats td{text-align:left}.previous-versions{max-width:60%}@media screen and (min-width:737px){.previous-versions{height:32px;vertical-align:middle}}hr{margin:2.5rem auto}.section h1:nth-child(2),.section h2:nth-child(2),.section h3:nth-child(2),.section h4:nth-child(2),.section h5:nth-child(2),.section h6:nth-child(2){margin-top:0}.section-heading{font-family:var(--wp--preset--font-family--inter)!important;font-size:var(--wp--preset--font-size--heading-5)!important;font-style:normal;font-weight:600;line-height:var(--wp--custom--heading--level-5--typography--line-height)}.section-intro{color:var(--wp--preset--color--charcoal-4);font-size:var(--wp--preset--font-size--small);margin-bottom:var(--wp--preset--spacing--20);margin-top:var(--wp--preset--spacing--10)}.type-plugin .plugin-notice{margin-top:0}.type-plugin .plugin-header{border-bottom:0;padding-top:var(--wp--preset--spacing--40)}.type-plugin .plugin-header:after,.type-plugin .plugin-header:before{content:"";display:table;table-layout:fixed}.type-plugin .plugin-header:after{clear:both}.type-plugin .plugin-header .entry-heading-container{display:flex;flex-direction:column;justify-content:space-between}@media screen and (max-width:599px){.type-plugin .plugin-header .entry-heading-container{--wp--custom--button--spacing--padding--top:12px;--wp--custom--button--spacing--padding--bottom:12px;--wp--custom--button--spacing--padding--left:16px;--wp--custom--button--spacing--padding--right:16px}}@media screen and (min-width:700px){.type-plugin .plugin-header .entry-heading-container{flex-direction:row}}.type-plugin .plugin-header .entry-heading-container>:first-child{align-items:center;display:flex;flex:1}.type-plugin .plugin-header .plugin-actions{align-items:center;display:flex;gap:16px;margin-top:var(--wp--style--block-gap)}@media screen and (min-width:700px){.type-plugin .plugin-header .plugin-actions{margin-top:0;margin-inline-start:1rem}}.type-plugin .plugin-header .plugin-actions>.button,.type-plugin .plugin-header .plugin-actions>div{display:inline-block;text-align:center}@media screen and (max-width:34em){.type-plugin .plugin-header .plugin-actions>.button.download-button{display:none}}.type-plugin .plugin-header .plugin-title{clear:none;font-size:var(--wp--preset--font-size--heading-3);font-weight:400;line-height:var(--wp--custom--heading--level-3--typography--line-height);margin:0}.type-plugin .plugin-header .plugin-title a{color:inherit;text-decoration:none}.type-plugin .plugin-header .plugin-title a:hover{text-decoration:underline}.type-plugin .plugin-header .byline{color:var(--wp--preset--color--charcoal-4);display:block;margin-top:4px}.type-plugin .plugin-banner+.plugin-header{padding-top:0}.type-plugin .plugin-banner+.plugin-header>.notice:first-of-type{margin-top:0}.type-plugin .tabs{border-bottom:1px solid var(--wp--preset--color--light-grey-1);list-style:none;margin:0}.type-plugin .tabs li{border:1px solid #0000;display:inline-block;font-size:.9rem;margin-bottom:-1px;transition:background .2s ease}.type-plugin .tabs li a{background:#fff;border:0;color:var(--wp--preset--color--charcoal-1);display:block;font-size:var(--wp--preset--font-size--normal);padding:.64rem 1.25rem;text-decoration:none}.type-plugin .tabs li a.active,.type-plugin .tabs li a:hover{background:var(--wp--preset--color--light-grey-2)!important}.type-plugin .tabs li.active,.type-plugin .tabs li:hover{border:1px solid var(--wp--preset--color--light-grey-1)}@media screen and (max-width:38em){.type-plugin .tabs{border-top:1px solid var(--wp--preset--color--light-grey-1)}.type-plugin .tabs li{display:block;margin-bottom:1px}.type-plugin .tabs li,.type-plugin .tabs li.active,.type-plugin .tabs li:hover{border:none;border-bottom:1px solid var(--wp--preset--color--light-grey-1)}}@media screen and (min-width:737px){.type-plugin .entry-content{float:right;padding:0;width:65%}}.type-plugin .entry-content>div,.type-plugin .entry-content>div~button{border:0;display:none}.type-plugin .entry-content ol>li>p,.type-plugin .entry-content ul>li>p{margin:0}.type-plugin .entry-content #admin{display:block!important}.type-plugin .plugin-blocks-list{list-style:none;margin-right:0;padding-right:0}.type-plugin .plugin-blocks-list .plugin-blocks-list-item{display:grid;grid-template-columns:auto 1fr;margin-bottom:var(--wp--style--block-gap)}.type-plugin .plugin-blocks-list .block-icon{border:1px solid var(--wp--preset--color--light-grey-1);border-radius:2px;display:inline-block;height:3.5rem;line-height:16px;margin-left:var(--wp--style--block-gap);padding:var(--wp--style--block-gap);width:3.5rem}.type-plugin .plugin-blocks-list .block-icon.dashicons{color:inherit}.type-plugin .plugin-blocks-list .block-icon.dashicons:before{margin-right:-3px}.type-plugin .plugin-blocks-list .block-icon svg{height:16px;width:16px;fill:currentColor;margin-right:-1px}.type-plugin .plugin-blocks-list .block-title{align-self:center;font-weight:700}.type-plugin .plugin-blocks-list .has-description .block-icon{grid-row:1/span 2}.type-plugin .plugin-blocks-list .has-description .block-title{margin-bottom:.4em}.type-plugin span#description,.type-plugin span#developers,.type-plugin span#installation,.type-plugin span#releases,.type-plugin span#reviews{position:fixed}.type-plugin span#advanced.displayed~#section-links .tabs li#tablink-advanced,.type-plugin span#developers:target~#section-links .tabs li#tablink-developers,.type-plugin span#installation:target~#section-links .tabs li#tablink-installation,.type-plugin span#releases:target~#section-links .tabs li#tablink-releases,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~span#advanced:not(.displayed)~#section-links .tabs li#tablink-description,.type-plugin span#reviews:target~#section-links .tabs li#tablink-reviews{background:#fff;border:1px solid var(--wp--preset--color--light-grey-1);border-bottom:0;padding-bottom:1px}@media screen and (max-width:38em){.type-plugin span#advanced.displayed~#section-links .tabs li#tablink-advanced.active,.type-plugin span#advanced.displayed~#section-links .tabs li#tablink-advanced:hover,.type-plugin span#developers:target~#section-links .tabs li#tablink-developers.active,.type-plugin span#developers:target~#section-links .tabs li#tablink-developers:hover,.type-plugin span#installation:target~#section-links .tabs li#tablink-installation.active,.type-plugin span#installation:target~#section-links .tabs li#tablink-installation:hover,.type-plugin span#releases:target~#section-links .tabs li#tablink-releases.active,.type-plugin span#releases:target~#section-links .tabs li#tablink-releases:hover,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~span#advanced:not(.displayed)~#section-links .tabs li#tablink-description.active,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~span#advanced:not(.displayed)~#section-links .tabs li#tablink-description:hover,.type-plugin span#reviews:target~#section-links .tabs li#tablink-reviews.active,.type-plugin span#reviews:target~#section-links .tabs li#tablink-reviews:hover{padding-bottom:1px!important}}.type-plugin span#section-links{display:flex;flex-flow:row wrap;margin-top:var(--wp--preset--spacing--30)}.type-plugin span#section-links .tabs{flex:1 1 auto;padding-right:0}@media screen and (max-width:38em){.type-plugin span#section-links .tabs{border:1px solid var(--wp--preset--color--light-grey-1)!important}.type-plugin span#section-links .tabs li{border:none!important}.type-plugin span#section-links{display:block}}.type-plugin #link-support{align-self:flex-end;border-bottom:1px solid var(--wp--preset--color--light-grey-1);flex:0 0 auto;font-size:.9rem}.type-plugin #link-support a{display:inline-block;font-size:var(--wp--preset--font-size--normal);padding:.64rem 1.25rem .64rem 0}@media screen and (max-width:38em){.type-plugin #link-support{border-bottom:0;display:block;width:100%}.type-plugin #link-support a{padding-left:1.25rem}}.type-plugin span#developers:target~.entry-content #tab-changelog,.type-plugin span#developers:target~.entry-content #tab-developers,.type-plugin span#developers:target~.entry-content #tab-developers .plugin-development,.type-plugin span#developers:target~.entry-content #tab-developers~button,.type-plugin span#installation:target~.entry-content #tab-installation,.type-plugin span#releases:target~.entry-content #tab-releases,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~.entry-content #blocks,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~.entry-content #faq,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~.entry-content #screenshots,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~.entry-content #tab-description,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~.entry-content #tab-developers,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~.entry-content #tab-developers~button,.type-plugin span#reviews:target~.entry-content #tab-reviews{display:block}.type-plugin span#developers:target~.entry-content #tab-developers .plugin-contributors,.type-plugin span#installation:target~.entry-meta .plugin-contributors,.type-plugin span#releases:target~.entry-meta,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~.entry-content #tab-developers .plugin-development,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~.entry-meta .plugin-contributors,.type-plugin span#reviews:target~.entry-meta .plugin-contributors,.type-plugin span#reviews:target~.entry-meta .plugin-donate,.type-plugin span#reviews:target~.entry-meta .plugin-meta,.type-plugin span#reviews:target~.entry-meta .plugin-support{display:none}.type-plugin span#releases:target~.entry-content{width:100%}@media screen and (min-width:737px){.type-plugin .entry-content,.type-plugin .entry-meta{padding-right:0;padding-left:0}.type-plugin .entry-meta{float:left;width:30%}}.type-plugin .plugin-danger-zone h4{margin-top:var(--wp--preset--spacing--60)}.plugin-releases-listing{border-collapse:collapse;width:100%}.plugin-releases-listing tbody td:nth-child(4) div{font-size:14px}.plugin-releases-listing-actions{display:flex;flex-direction:column;gap:8px}@media screen and (min-width:34em){.plugin-releases-listing-actions{flex-direction:row}}.plugin-adopt-me{background:#e6f4fa;margin-top:36px;padding:12px}.plugin-adopt-me .widget-title{margin-top:0}.plugin-adopt-me p{margin-bottom:0}.widget.plugin-categorization{margin-top:var(--wp--style--block-gap)}.widget.plugin-categorization .widget-head h2{font-size:var(--wp--preset--font-size--heading-4);margin-bottom:.2rem;margin-top:0}.widget.plugin-categorization .widget-head a{font-size:var(--wp--preset--font-size--small)}.widget.plugin-categorization .widget-head a[href=""]{display:none}.widget.plugin-categorization p{font-size:var(--wp--preset--font-size--small);margin-top:.5rem}.widget.plugin-categorization~.plugin-meta li:first-child{border-top:1px solid var(--wp--preset--color--light-grey-1)}.committer-list,.support-rep-list{list-style:none;margin:0;padding:0}.committer-list li,.support-rep-list li{padding-bottom:.5rem}.committer-list li .remove,.support-rep-list li .remove{color:red;visibility:hidden}.committer-list li:hover .remove,.support-rep-list li:hover .remove{visibility:visible}.committer-list .avatar,.support-rep-list .avatar{float:right;margin-left:10px}.committer-list .spinner,.support-rep-list .spinner{position:relative}.committer-list .spinner:after,.support-rep-list .spinner:after{background:url(/wp-admin/images/spinner.gif) no-repeat 50%;background-size:20px 20px;content:"";display:block;height:20px;margin:-10px 0 0 -10px;position:absolute;left:-50%;top:50%;transform:translateZ(0);width:20px}@media (min-resolution:120dpi),print{.committer-list .spinner:after,.support-rep-list .spinner:after{background-image:url(/wp-admin/images/spinner-2x.gif)}}.committer-list .new,.support-rep-list .new{margin-top:var(--wp--style--block-gap)}.plugin-contributors.read-more{border-bottom:1px solid var(--wp--preset--color--light-grey-1);max-height:200px;overflow:hidden;padding-bottom:1px}.plugin-contributors.read-more.toggled{max-height:none}.no-js .plugin-contributors.read-more{max-height:none;overflow:auto}.contributors-list{list-style-type:none;margin:0;padding:0}.contributors-list li{align-items:center;display:flex;margin-bottom:1rem}.contributors-list .avatar{float:right;margin-left:10px}.plugin-meta{font-size:var(--wp--preset--font-size--small);margin-top:var(--wp--style--block-gap)}.plugin-meta ul{list-style-type:none;margin:0;padding:0}.plugin-meta li{border-top:1px solid var(--wp--preset--color--light-grey-1);display:inline-block;padding:.5rem 0;position:relative;width:100%}.plugin-meta li strong{float:left;font-weight:500}.plugin-meta li .plugin-admin{font-size:var(--wp--preset--font-size--normal);font-weight:400}.plugin-meta li:first-child{border-top:0}.plugin-meta .languages,.plugin-meta .tags{float:left;text-align:left}.plugin-meta .tags{width:60%}.plugin-meta .languages button{font-size:var(--wp--preset--font-size--small);outline:revert}.plugin-meta .languages .popover{margin-top:8px}.plugin-meta .languages .popover-trigger{color:var(--wp--custom--link--color--text);text-decoration:underline}.plugin-meta .languages .popover-trigger:hover{text-decoration:underline}.plugin-meta [rel=tag]{background:var(--wp--preset--color--blueberry-4);border-radius:2px;color:var(--wp--preset--color--charcoal-1);display:inline-block;font-size:var(--wp--preset--font-size--extra-small);margin:2px;max-width:95%;overflow:hidden;padding:3px 6px;position:relative;text-decoration:none;text-overflow:ellipsis;white-space:nowrap;width:auto}.plugin-meta [rel=tag]:hover{text-decoration:underline}.popover{background-color:#fff;border:1px solid var(--wp--preset--color--light-grey-1);border-radius:2px;box-shadow:0 2px 10px #0000001a;display:none;right:0;margin-top:10px;max-width:300px;padding:1em 1em 2em;position:absolute;width:100%;z-index:100}.popover.is-top-right{right:auto;left:0}.popover.is-visible{display:block}.popover .popover-close{bottom:.5em;color:var(--wp--custom--link--color--text);font-size:small;position:absolute;left:.6em}.popover .popover-close:active,.popover .popover-close:focus,.popover .popover-close:hover{text-decoration:underline}.popover .popover-arrow{border:10px solid #0000;border-bottom:10px solid #ccc;border-top:none;height:0;position:absolute;left:20px;top:-10px;width:0;z-index:-1}.popover .popover-arrow:after{border:10px solid #0000;border-bottom:10px solid #fff;border-top:none;content:"";right:-10px;position:absolute;top:2px}.popover .popover-inner{text-align:right}.popover .popover-inner p:first-child{margin-top:0}.popover .popover-inner p:last-child{margin-bottom:0}.plugin-support .counter-container{margin-bottom:1rem;position:relative}.plugin-support .counter-back,.plugin-support .counter-bar{display:inline-block;height:30px;vertical-align:middle}.plugin-support .counter-back{background-color:var(--wp--preset--color--light-grey-2);width:100%}.plugin-support .counter-bar{background-color:var(--wp--preset--color--acid-green-2);display:block}.plugin-support .counter-count{font-size:var(--wp--preset--font-size--extra-small);right:8px;position:absolute;top:8px;width:100%;width:calc(100% - 8px)}@media screen and (min-width:737px){.plugin-support .counter-count{top:5px}}.home .widget,.widget-area.home .widget{display:inline-block;font-size:var(--wp--preset--font-size--small);margin:0;margin:var(--wp--style--block-gap);vertical-align:top;width:auto}@media screen and (min-width:737px){.home .widget,.widget-area.home .widget{margin:0;width:30%}.home .widget:first-child,.widget-area.home .widget:first-child{margin-left:5%}.home .widget:last-child,.widget-area.home .widget:last-child{margin-right:5%}}.home .widget select,.widget-area.home .widget select{max-width:100%}.entry-meta .widget-title{font-size:var(--wp--preset--font-size--heading-4)}body.single.single-plugin .entry-meta{font-size:var(--wp--preset--font-size--normal)}.widget-area{margin:0 auto;padding:var(--wp--preset--spacing--40) 0}.widget-area .widget-title{font-size:var(--wp--preset--font-size--heading-1);font-weight:var(--wp--custom--heading--typography--font-weight);margin-top:var(--wp--preset--spacing--50)}.widget-area .textwidget{text-wrap:pretty} +>>>>>>> try/release-page diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/css/style.css b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/css/style.css index b52e17b83c..4fe01723b1 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/css/style.css +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/css/style.css @@ -1 +1,5 @@ -@charset "UTF-8";.avatar{border-radius:50%;vertical-align:middle}.wp-block-wporg-language-suggest>p{margin:0}.block-validator>details summary{padding:var(--wp--style--block-gap) 0}.block-validator .block-validator__plugin-form label{display:block;margin-bottom:.8em}.block-validator .block-validator__plugin-input-container{display:flex;max-width:34rem}.block-validator .block-validator__plugin-input{flex:1}.block-validator .block-validator__plugin-submit{flex:0;margin-left:4px}@media (max-width:36rem){.block-validator .block-validator__plugin-submit{width:100%}.block-validator .block-validator__plugin-input-container{display:block}.block-validator .block-validator__plugin-input{width:100%}.block-validator .block-validator__plugin-submit{margin-left:0;margin-top:var(--wp--style--block-gap)}}.block-validator .notice details,.block-validator .notice p{font-size:var(--wp--preset--font-size--normal);margin:var(--wp--style--block-gap) 0}.block-validator .notice details p{font-size:var(--wp--preset--font-size--small);margin-left:1rem}.block-validator .notice summary{display:list-item}.block-validator figure{border:1px solid #aaa;display:inline-block;padding:1em}.block-validator .test-screenshot{text-align:center}.block-validator .plugin-upload-form-controls{align-items:center;display:flex;gap:4px}.block-validator .plugin-upload-form-controls>label{border:1px solid var(--wp--custom--form--border--color);border-radius:var(--wp--custom--form--border--radius);cursor:pointer;min-width:200px;padding:4px 8px}.notice{background:#fff;border-left:4px solid #fff;box-shadow:0 1px 1px 0 #0000001a;font-size:var(--wp--preset--font-size--small);margin:var(--wp--style--block-gap) 0;padding:1px 12px}.notice p,.notice ul{margin:.5em 0;padding:2px}.notice pre{white-space:pre-wrap}.notice ul{list-style:none;margin:.5em}.notice.notice-alt{box-shadow:none}.notice.notice-large{padding:10px 20px}.notice.notice-success{border-left-color:#46b450}.notice.notice-success.notice-alt{background-color:#ecf7ed}.notice.notice-warning{border-left-color:#ffb900}.notice.notice-warning.notice-alt{background-color:#fff8e5}.notice.notice-error{border-left-color:#dc3232}.notice.notice-error.notice-alt{background-color:#fbeaea}.notice.notice-info{border-left-color:#00a0d2}.notice.notice-info.notice-alt{background-color:#e5f5fa}.notice.hidden{display:none}.plugin-upload-form.hidden{display:none}.plugin-upload-form fieldset{border:none;margin:0;padding:0}.plugin-upload-form legend{margin:1rem 0}.plugin-upload-form .category-checklist{list-style-type:none;margin:0 0 2rem}.plugin-upload-form .category-checklist li{float:left;padding:.5rem 0;width:50%}@media screen and (min-width:48em){.plugin-upload-form .category-checklist li{padding:0}.plugin-upload-form .category-checklist label{font-size:var(--wp--preset--font-size--small)}.plugin-upload-form label.button{line-height:1.8}}.plugin-upload-form .plugin-file{height:.1px;opacity:0;overflow:hidden;position:absolute;width:.1px;z-index:-1}.plugin-queue-message code{font-size:1em}.plugin-queue-message dialog.slug-change input[type=text]{font-family:monospace;font-size:1.2em;width:20em}:where(main) a:where(:not(.wp-element-button,.wp-block-wporg-link-wrapper)):focus,:where(main) button:where(:not([class*=wp-block-button])):focus{border-radius:2px;box-shadow:0 0 0 1.5px currentColor;outline:none}.wporg-filter-bar{--wporg--filter-bar--gap:20px;--wporg--filter-bar--color:#40464d;--wporg--filter-bar--active--background-color:var(--wp--custom--button--color--background);--wporg--filter-bar--focus--border-color:var(--wp--custom--button--focus--border--color);margin:var(--wp--style--block-gap) 0}.wporg-filter-bar .wporg-query-filter__toggle.is-active,.wporg-filter-bar .wporg-query-filter__toggle:active,.wporg-filter-bar .wporg-query-filter__toggle:focus{background-color:var(--wporg--filter-bar--active--background-color);color:var(--wp--custom--button--color--text)}.wporg-filter-bar .wporg-filter-bar__navigation{flex-grow:1;margin-bottom:var(--wporg--filter-bar--gap)}.wporg-filter-bar .wporg-filter-bar__navigation ul{display:inline-block;font-size:13px;line-height:1.538;list-style:none;margin:0;padding-left:0}.wporg-filter-bar .wporg-filter-bar__navigation ul li{display:inline-block}.wporg-filter-bar .wporg-filter-bar__navigation ul li+li{margin-left:8px}.wporg-filter-bar .wporg-filter-bar__navigation ul a{border-radius:2px;color:var(--wporg--filter-bar--color);display:block;padding:8px 12px;text-decoration:none}.wporg-filter-bar .wporg-filter-bar__navigation ul a:focus,.wporg-filter-bar .wporg-filter-bar__navigation ul a:hover{text-decoration:underline}.wporg-filter-bar .wporg-filter-bar__navigation ul a:focus-visible{box-shadow:none;outline:1.5px solid var(--wporg--filter-bar--focus--border-color);outline-offset:-.5px}.wporg-filter-bar .wporg-filter-bar__navigation ul a.is-active{background-color:var(--wporg--filter-bar--active--background-color);color:#fff}.wporg-filter-bar .wporg-filter-bar__navigation ul a.is-active:focus,.wporg-filter-bar .wporg-filter-bar__navigation ul a.is-active:hover{color:#fff}.wporg-filter-bar .wporg-filter-bar__navigation ul a.is-active:focus-visible{box-shadow:inset 0 0 0 1.5px #fff;outline:1.5px solid var(--wporg--filter-bar--focus--border-color);outline-offset:-.5px}@media screen and (min-width:737px){.wporg-filter-bar{align-items:center;display:flex;flex-wrap:wrap;gap:var(--wporg--filter-bar--gap);justify-content:space-between;width:100%}.wporg-filter-bar .wporg-filter-bar__navigation{margin-bottom:0}}.wp-block-search__inside-wrapper{background:var(--wp--preset--color--light-grey-2);border:none}.button-link{background:none;border:0;border-radius:0;box-shadow:none;cursor:pointer;margin:0;outline:none;padding:0}.button{background-color:var(--wp--custom--button--color--background);border:0;border-radius:var(--wp--custom--button--border--radius);color:var(--wp--custom--button--color--text);cursor:pointer;opacity:1;padding:calc(var(--wp--custom--button--small--spacing--padding--top) + var(--wp--custom--button--border--width)) calc(var(--wp--custom--button--small--spacing--padding--right) + var(--wp--custom--button--border--width)) calc(var(--wp--custom--button--small--spacing--padding--bottom) + var(--wp--custom--button--border--width)) calc(var(--wp--custom--button--small--spacing--padding--left) + var(--wp--custom--button--border--width));vertical-align:middle}.button.button-large{padding:calc(var(--wp--custom--button--spacing--padding--top) + var(--wp--custom--button--border--width)) calc(var(--wp--custom--button--spacing--padding--right) + var(--wp--custom--button--border--width)) calc(var(--wp--custom--button--spacing--padding--bottom) + var(--wp--custom--button--border--width)) calc(var(--wp--custom--button--spacing--padding--left) + var(--wp--custom--button--border--width))}input+button.button,select+button.button{margin-top:-3px}.button.disabled{cursor:not-allowed;opacity:.6}.wp-block-post-content a.button{text-decoration:none}.wp-block-button__link{width:auto}pre{background-color:#f7f7f7;border:1px solid var(--wp--preset--color--light-grey-1);overflow:scroll;padding:20px}code,pre{border-radius:2px}code{background:var(--wp--preset--color--light-grey-2);display:inline-block;line-height:var(--wp--custom--body--extra-small--typography--line-height);max-width:100%;padding-inline-end:3px;padding-inline-start:3px}dialog{border:0;box-shadow:6px 6px 6px #0003;min-height:50%;min-width:30%}@media (min-width:1280px){dialog{max-width:55%}}dialog::backdrop{background:#000;opacity:.5}dialog .close{color:inherit;cursor:pointer;position:absolute;right:1em;text-decoration:none!important;top:1em}.plugin-card{display:flex;flex-direction:column;height:100%;justify-content:space-between}.plugin-card .entry{display:inline-block;vertical-align:top}.plugin-card .entry-title{display:block;display:-webkit-box;font-size:var(--wp--preset--font-size--heading-5);font-weight:500;line-height:1.3;margin-bottom:2px!important;max-height:2.6em;overflow:hidden;-webkit-line-clamp:2;-webkit-box-orient:vertical}.plugin-card .entry-title a{display:block;text-decoration:none}.plugin-card .entry-title a:focus{box-shadow:none}.plugin-card .entry-excerpt{clear:both;font-size:var(--wp--preset--font-size--small)}.plugin-card .entry-excerpt p{margin:0}.plugin-card footer{font-size:var(--wp--preset--font-size--small);margin-top:var(--wp--style--block-gap)}.plugin-card footer span{color:var(--wp--preset--color--charcoal-4);display:inline-block;line-height:var(--wp--preset--font-size--normal);overflow:hidden}.plugin-card footer span.plugin-author{width:100%}.plugin-card footer span.plugin-author span{color:var(--wp--preset--color--charcoal-1)}.plugin-card footer span.plugin-author path{fill:var(--wp--preset--color--charcoal-1)}.plugin-card footer span svg{height:24px;vertical-align:bottom;width:24px}.plugin-card footer span svg path{fill:var(--wp--preset--color--charcoal-4)}.plugin-card footer span.active-installs{min-width:48%}.plugin-cards{cursor:pointer}.plugin-cards .is-style-cards-grid li:hover{background-color:#fff!important;border:1px solid var(--wp--preset--color--charcoal-1)!important}.plugin-cards .is-style-cards-grid li:focus-within{border-color:#0000;border-radius:2px;box-shadow:0 0 0 1.5px var(--wp--custom--link--color--text)}@media screen and (max-width:737px){.plugin-cards .is-style-cards-grid{grid-template-columns:100%}}.entry-thumbnail{display:none;margin-bottom:var(--wp--style--block-gap);margin-right:var(--wp--style--block-gap);max-width:80px}.entry-thumbnail .plugin-icon{background-size:cover;border-radius:var(--wp--custom--button--border--radius);display:block;height:80px;width:80px}@media screen and (min-width:21em){.entry-thumbnail{display:inline-block;float:left;vertical-align:top}}.single .entry-thumbnail{display:none;float:left;height:96px;margin-bottom:0;max-width:96px}@media screen and (min-width:26em){.single .entry-thumbnail{display:block}}.single .entry-thumbnail .plugin-icon{background-size:contain!important;height:96px!important;width:96px!important}.plugin-rating{line-height:1;margin:0 10px 8px 0}.plugin-rating .wporg-ratings{display:inline-block;margin-right:5px}.plugin-rating .rating-count{color:var(--wp--preset--color--charcoal-4);font-size:var(--wp--preset--font-size--extra-small);vertical-align:text-bottom}.plugin-rating .rating-count a{color:inherit;cursor:hand;text-decoration:none}[class*=dashicons-star-]{color:var(--wp--preset--color--pomegrade-1)}.rtl .dashicons-star-half{transform:rotateY(180deg)}#main .plugin-section{margin:0 auto var(--wp--preset--spacing--60)}#main .plugin-section:last-of-type{margin-bottom:0}#main .plugin-section .section-header{align-items:center;column-gap:10px;display:flex;justify-content:space-between;margin-bottom:var(--wp--style--block-gap)}#main .plugin-section .section-header>h2{margin-bottom:0}#main .plugin-section .section-link{align-self:center;flex:0 0 auto;text-decoration:underline}.pagination .nav-links{margin-top:var(--wp--style--block-gap);padding-top:var(--wp--style--block-gap);text-align:center}.pagination .nav-links a{text-decoration:none}.pagination .nav-links .page-numbers{cursor:pointer;display:inline-block;min-width:2em;padding:8px;text-align:center}.pagination .nav-links .page-numbers.dots,.pagination .nav-links .page-numbers.next,.pagination .nav-links .page-numbers.prev{background:none;font-size:.9em;width:auto}.pagination .nav-links .page-numbers.dots{cursor:inherit}@media screen and (max-width:737px){.pagination .nav-links .page-numbers.next,.pagination .nav-links .page-numbers.prev{font-size:0;min-width:auto;padding:0}.pagination .nav-links .page-numbers.next:after,.pagination .nav-links .page-numbers.prev:before{display:inline-block;font-size:medium;line-height:1.5;min-width:2em;padding:8px}.pagination .nav-links .page-numbers.prev:before{content:"‹"}.pagination .nav-links .page-numbers.next:after{content:"›"}}.pagination .nav-links span.page-numbers{font-weight:700}.pagination .nav-links span.page-numbers.current{text-decoration:underline}@keyframes favme-anime{0%{font-size:var(--wp--preset--font-size--large);opacity:1;-webkit-text-stroke-color:#0000}25%{color:#fff;font-size:var(--wp--preset--font-size--small);opacity:.6;-webkit-text-stroke-width:1px;-webkit-text-stroke-color:#dc3232}75%{color:#fff;font-size:var(--wp--preset--font-size--large);opacity:.6;-webkit-text-stroke-width:1px;-webkit-text-stroke-color:#dc3232}to{font-size:var(--wp--preset--font-size--normal);opacity:1;-webkit-text-stroke-color:#0000}}.plugin-favorite{height:calc(var(--wp--custom--button--spacing--padding--top)*2 + var(--wp--preset--font-size--normal)*2);text-align:center;vertical-align:top;width:36px}.plugin-favorite .plugin-favorite-heart{align-items:center;background:none;border:0;border-radius:0;box-shadow:none;color:#cbcdce;cursor:pointer;display:flex;font-size:var(--wp--preset--font-size--large);height:100%;justify-content:center;line-height:1;margin:0;outline:none;padding:0;text-decoration:none}.plugin-favorite .plugin-favorite-heart.favorited{color:#dc3232}.plugin-favorite .plugin-favorite-heart:focus,.plugin-favorite .plugin-favorite-heart:hover{color:var(----wp--preset--color--charcoal-2);text-decoration:none}.plugin-favorite .plugin-favorite-heart:after{content:"\f487";font-family:dashicons;vertical-align:top}.plugin-banner img{aspect-ratio:3.089;border-radius:var(--wp--custom--button--border--radius);display:block;margin:0 auto var(--wp--preset--spacing--30);width:100%}@keyframes hideAnimation{to{visibility:hidden}}.categorization .help{color:var(--wp--preset--color--charcoal-4);display:inline-block;font-size:.8rem;margin-top:0}.categorization label{display:block;font-weight:700}.categorization input{width:100%}.categorization .success-msg{background:#eff7ed;border:solid #64b450;border-width:0 0 0 5px;font-size:.8rem;margin-left:1rem;opacity:0;overflow:auto;padding:.1rem .6rem .2rem;position:relative;transition:visibility 0s,opacity .5s linear;-webkit-user-select:none;user-select:none;visibility:hidden}.categorization .success-msg.saved{animation:hideAnimation 0s ease-in 5s;animation-fill-mode:forwards;opacity:1;visibility:visible}.plugin-changelog code{font-size:var(--wp--preset--font-size--small)}.plugin-developers .contributors-list li{align-items:center;display:flex;padding-bottom:var(--wp--style--block-gap)}@media screen and (min-width:500px){.plugin-developers .contributors-list{display:flex;flex-wrap:wrap}.plugin-developers .contributors-list li{padding-bottom:unset;width:50%}}.plugin-faq dl{border-bottom:1px solid var(--wp--preset--color--light-grey-1)}.plugin-faq dt{border-top:1px solid var(--wp--preset--color--light-grey-1);cursor:pointer;padding:1rem 0}.plugin-faq dt:before{content:"\f347";float:right;font-family:dashicons;margin:0 1rem}.plugin-faq dt.open:before{content:"\f343"}.plugin-faq dt .button-link{display:inherit;text-align:inherit}.plugin-faq dt .button-link.no-focus{box-shadow:none;outline:none}.plugin-faq dt h3{color:var(--wp--custom--link--color--text);display:inline;font-size:var(--wp--preset--font-size--normal);font-weight:400;margin-bottom:0;margin-top:0!important;text-decoration:underline}.plugin-faq dt h3 button{all:inherit;max-width:calc(100% - 60px)}.plugin-faq dt h3 button:focus,.plugin-faq dt h3 button:hover{text-decoration:underline}.plugin-faq dd{display:none;margin:0 0 1rem}.no-js .plugin-faq dd{display:block}.plugin-faq dd p{margin:0}.plugin-faq dd p+p{margin-top:1rem}.image-gallery{-webkit-user-select:none;user-select:none}.image-gallery-content{position:relative}.image-gallery-content .image-gallery-left-nav,.image-gallery-content .image-gallery-right-nav{border-color:var(--wp--preset--color--light-grey-1);display:none;font-size:48px;height:100%;position:absolute;top:0;transition:background .1s ease,border .1s ease;z-index:4}@media (max-width:768px){.image-gallery-content .image-gallery-left-nav,.image-gallery-content .image-gallery-right-nav{font-size:3.4em}}@media (min-width:768px){.image-gallery-content .image-gallery-left-nav:hover,.image-gallery-content .image-gallery-right-nav:hover{background:#fff;border:1px solid var(--wp--preset--color--light-grey-1);opacity:.8}}.image-gallery-content .image-gallery-left-nav:before,.image-gallery-content .image-gallery-right-nav:before{font-family:dashicons;position:relative}.image-gallery-content .image-gallery-left-nav{left:0}.image-gallery-content .image-gallery-left-nav:before{content:"\f341"}.image-gallery-content .image-gallery-left-nav:hover{margin-left:-1px}.image-gallery-content .image-gallery-right-nav{right:0}.image-gallery-content .image-gallery-right-nav:before{content:"\f345"}.image-gallery-content .image-gallery-right-nav:hover{margin-right:-1px}.image-gallery-content:hover .image-gallery-left-nav,.image-gallery-content:hover .image-gallery-right-nav{display:block}.image-gallery-slides{border:1px solid #eee;line-height:0;overflow:hidden;position:relative;white-space:nowrap}.image-gallery-slide{left:0;position:absolute;top:0;width:100%}.image-gallery-slide.center{position:relative}.image-gallery-slide .image-gallery-image{margin:0}.image-gallery-slide img{display:block;margin:0 auto}.image-gallery-slide .image-gallery-description{background:var(--wp--preset--color--light-grey-2);color:var(--wp--preset--color--charcoal-1);font-size:var(--wp--preset--font-size--small);line-height:1.5;padding:10px 20px;white-space:normal}@media (max-width:768px){.image-gallery-slide .image-gallery-description{padding:8px 15px}}.image-gallery-thumbnails{background:#fff;margin-top:5px}.image-gallery-thumbnails .image-gallery-thumbnails-container{cursor:pointer;text-align:center;white-space:nowrap}.image-gallery-thumbnail{border:1px solid #eee;display:table-cell;margin-right:5px;max-height:100px;overflow:hidden}.image-gallery-thumbnail .image-gallery-image{margin:0}.image-gallery-thumbnail img{vertical-align:middle;width:100px}@media (max-width:768px){.image-gallery-thumbnail img{width:75px}}.image-gallery-thumbnail:hover{box-shadow:0 1px 8px #0000004d}.image-gallery-thumbnail.active{border:1px solid #337ab7}.image-gallery-thumbnail-label{color:#222;font-size:1em}@media (max-width:768px){.image-gallery-thumbnail-label{font-size:.8em}}.image-gallery-index{background:#0006;bottom:0;color:#fff;line-height:1;padding:10px 20px;position:absolute;right:0;z-index:4}.plugin-reviews{list-style-type:none;margin:0;padding:0}.plugin-reviews .plugin-review{border-bottom:1px solid var(--wp--preset--color--light-grey-1);margin:2rem 0 1rem;padding-bottom:1rem}.plugin-reviews .plugin-review a{text-decoration:none}.plugin-reviews .plugin-review:first-child{margin-top:0}.plugin-reviews .plugin-review .header-top{display:flex}.plugin-reviews .plugin-review .header-top .wporg-ratings{flex-shrink:0}.plugin-reviews .plugin-review .header-bottom{display:flex;margin-top:4px}.plugin-reviews .review-avatar{display:none}.plugin-reviews .review,.plugin-reviews .review-author,.plugin-reviews .wporg-ratings{display:inline-block;vertical-align:top}.plugin-reviews .review-header{margin:0 0 .5rem}.plugin-reviews .review-title{font-size:var(--wp--preset--font-size--normal);font-weight:500;margin:2px 0 0 12px!important;text-transform:inherit}.plugin-reviews .review-author,.plugin-reviews .review-date,.plugin-reviews .review-replies{font-size:var(--wp--preset--font-size--extra-small);line-height:1.25}.plugin-reviews .review-date,.plugin-reviews .review-replies{color:var(--wp--preset--color--charcoal-4);font-size:var(--wp--preset--font-size--extra-small);margin-left:12px}.plugin-reviews .review-replies:before{content:"•";margin-right:12px}.plugin-reviews .review-content{margin:1em 0}@media screen and (min-width:737px){.plugin-reviews .review-avatar{display:inline-block;vertical-align:top}.plugin-reviews .review-avatar .avatar{margin-right:1rem}.plugin-reviews .review{width:calc(100% - 60px - 1rem)}.plugin-reviews .review-header{margin:0}.plugin-reviews .review-author,.plugin-reviews .review-date,.plugin-reviews .review-replies{line-height:1}}.plugin-reviews .reviews-link{display:inline-block;font-size:var(--wp--preset--font-size--small);text-decoration:none}.plugin-reviews .reviews-link:after{content:"\f345";float:right;font-family:dashicons;padding-left:5px;position:relative;top:1px;vertical-align:text-top}.plugin-screenshots{list-style-type:none;margin:0;padding:0}.plugin-screenshots .image-gallery-content{display:table;width:100%}.plugin-screenshots .image-gallery-slides{display:table-cell;max-height:600px}.plugin-screenshots .image-gallery-image img{max-height:550px;max-width:100%}.plugin-screenshots .image-gallery-thumbnail{vertical-align:top}.plugin-screenshots .image-gallery-thumbnail img{max-height:100px}.plugin-screenshots .image-gallery-thumbnails{overflow:hidden}.download-history-stats td{text-align:right}.previous-versions{max-width:60%}@media screen and (min-width:737px){.previous-versions{height:32px;vertical-align:middle}}hr{margin:2.5rem auto}.section h1:nth-child(2),.section h2:nth-child(2),.section h3:nth-child(2),.section h4:nth-child(2),.section h5:nth-child(2),.section h6:nth-child(2){margin-top:0}.section-heading{font-family:var(--wp--preset--font-family--inter)!important;font-size:var(--wp--preset--font-size--heading-5)!important;font-style:normal;font-weight:600;line-height:var(--wp--custom--heading--level-5--typography--line-height)}.section-intro{color:var(--wp--preset--color--charcoal-4);font-size:var(--wp--preset--font-size--small);margin-bottom:var(--wp--preset--spacing--20);margin-top:var(--wp--preset--spacing--10)}.type-plugin .plugin-notice{margin-top:0}.type-plugin .plugin-header{border-bottom:0;padding-top:var(--wp--preset--spacing--40)}.type-plugin .plugin-header:after,.type-plugin .plugin-header:before{content:"";display:table;table-layout:fixed}.type-plugin .plugin-header:after{clear:both}.type-plugin .plugin-header .entry-heading-container{display:flex;flex-direction:column;justify-content:space-between}@media screen and (max-width:599px){.type-plugin .plugin-header .entry-heading-container{--wp--custom--button--spacing--padding--top:12px;--wp--custom--button--spacing--padding--bottom:12px;--wp--custom--button--spacing--padding--left:16px;--wp--custom--button--spacing--padding--right:16px}}@media screen and (min-width:700px){.type-plugin .plugin-header .entry-heading-container{flex-direction:row}}.type-plugin .plugin-header .entry-heading-container>:first-child{align-items:center;display:flex;flex:1}.type-plugin .plugin-header .plugin-actions{align-items:center;display:flex;gap:16px;margin-top:var(--wp--style--block-gap)}@media screen and (min-width:700px){.type-plugin .plugin-header .plugin-actions{margin-top:0;margin-inline-start:1rem}}.type-plugin .plugin-header .plugin-actions>.button,.type-plugin .plugin-header .plugin-actions>div{display:inline-block;text-align:center}@media screen and (max-width:34em){.type-plugin .plugin-header .plugin-actions>.button.download-button{display:none}}.type-plugin .plugin-header .plugin-title{clear:none;font-size:var(--wp--preset--font-size--heading-3);font-weight:400;line-height:var(--wp--custom--heading--level-3--typography--line-height);margin:0}.type-plugin .plugin-header .plugin-title a{color:inherit;text-decoration:none}.type-plugin .plugin-header .plugin-title a:hover{text-decoration:underline}.type-plugin .plugin-header .byline{color:var(--wp--preset--color--charcoal-4);display:block;margin-top:4px}.type-plugin .plugin-banner+.plugin-header{padding-top:0}.type-plugin .plugin-banner+.plugin-header>.notice:first-of-type{margin-top:0}.type-plugin .tabs{border-bottom:1px solid var(--wp--preset--color--light-grey-1);list-style:none;margin:0}.type-plugin .tabs li{border:1px solid #0000;display:inline-block;font-size:.9rem;margin-bottom:-1px;transition:background .2s ease}.type-plugin .tabs li a{background:#fff;border:0;color:var(--wp--preset--color--charcoal-1);display:block;font-size:var(--wp--preset--font-size--normal);padding:.64rem 1.25rem;text-decoration:none}.type-plugin .tabs li a.active,.type-plugin .tabs li a:hover{background:var(--wp--preset--color--light-grey-2)!important}.type-plugin .tabs li.active,.type-plugin .tabs li:hover{border:1px solid var(--wp--preset--color--light-grey-1)}@media screen and (max-width:38em){.type-plugin .tabs{border-top:1px solid var(--wp--preset--color--light-grey-1)}.type-plugin .tabs li{display:block;margin-bottom:1px}.type-plugin .tabs li,.type-plugin .tabs li.active,.type-plugin .tabs li:hover{border:none;border-bottom:1px solid var(--wp--preset--color--light-grey-1)}}@media screen and (min-width:737px){.type-plugin .entry-content{float:left;padding:0;width:65%}}.type-plugin .entry-content>div,.type-plugin .entry-content>div~button{border:0;display:none}.type-plugin .entry-content ol>li>p,.type-plugin .entry-content ul>li>p{margin:0}.type-plugin .entry-content #admin{display:block!important}.type-plugin .plugin-blocks-list{list-style:none;margin-left:0;padding-left:0}.type-plugin .plugin-blocks-list .plugin-blocks-list-item{display:grid;grid-template-columns:auto 1fr;margin-bottom:var(--wp--style--block-gap)}.type-plugin .plugin-blocks-list .block-icon{border:1px solid var(--wp--preset--color--light-grey-1);border-radius:2px;display:inline-block;height:3.5rem;line-height:16px;margin-right:var(--wp--style--block-gap);padding:var(--wp--style--block-gap);width:3.5rem}.type-plugin .plugin-blocks-list .block-icon.dashicons{color:inherit}.type-plugin .plugin-blocks-list .block-icon.dashicons:before{margin-left:-3px}.type-plugin .plugin-blocks-list .block-icon svg{height:16px;width:16px;fill:currentColor;margin-left:-1px}.type-plugin .plugin-blocks-list .block-title{align-self:center;font-weight:700}.type-plugin .plugin-blocks-list .has-description .block-icon{grid-row:1/span 2}.type-plugin .plugin-blocks-list .has-description .block-title{margin-bottom:.4em}.type-plugin span#description,.type-plugin span#developers,.type-plugin span#installation,.type-plugin span#reviews{position:fixed}.type-plugin span#advanced.displayed~#section-links .tabs li#tablink-advanced,.type-plugin span#developers:target~#section-links .tabs li#tablink-developers,.type-plugin span#installation:target~#section-links .tabs li#tablink-installation,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#advanced:not(.displayed)~#section-links .tabs li#tablink-description,.type-plugin span#reviews:target~#section-links .tabs li#tablink-reviews{background:#fff;border:1px solid var(--wp--preset--color--light-grey-1);border-bottom:0;padding-bottom:1px}@media screen and (max-width:38em){.type-plugin span#advanced.displayed~#section-links .tabs li#tablink-advanced.active,.type-plugin span#advanced.displayed~#section-links .tabs li#tablink-advanced:hover,.type-plugin span#developers:target~#section-links .tabs li#tablink-developers.active,.type-plugin span#developers:target~#section-links .tabs li#tablink-developers:hover,.type-plugin span#installation:target~#section-links .tabs li#tablink-installation.active,.type-plugin span#installation:target~#section-links .tabs li#tablink-installation:hover,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#advanced:not(.displayed)~#section-links .tabs li#tablink-description.active,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#advanced:not(.displayed)~#section-links .tabs li#tablink-description:hover,.type-plugin span#reviews:target~#section-links .tabs li#tablink-reviews.active,.type-plugin span#reviews:target~#section-links .tabs li#tablink-reviews:hover{padding-bottom:1px!important}}.type-plugin span#section-links{display:flex;flex-flow:row wrap;margin-top:var(--wp--preset--spacing--30)}.type-plugin span#section-links .tabs{flex:1 1 auto;padding-left:0}@media screen and (max-width:38em){.type-plugin span#section-links .tabs{border:1px solid var(--wp--preset--color--light-grey-1)!important}.type-plugin span#section-links .tabs li{border:none!important}.type-plugin span#section-links{display:block}}.type-plugin #link-support{align-self:flex-end;border-bottom:1px solid var(--wp--preset--color--light-grey-1);flex:0 0 auto;font-size:.9rem}.type-plugin #link-support a{display:inline-block;font-size:var(--wp--preset--font-size--normal);padding:.64rem 0 .64rem 1.25rem}@media screen and (max-width:38em){.type-plugin #link-support{border-bottom:0;display:block;width:100%}.type-plugin #link-support a{padding-right:1.25rem}}.type-plugin span#developers:target~.entry-content #tab-changelog,.type-plugin span#developers:target~.entry-content #tab-developers,.type-plugin span#developers:target~.entry-content #tab-developers .plugin-development,.type-plugin span#developers:target~.entry-content #tab-developers~button,.type-plugin span#installation:target~.entry-content #tab-installation,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~.entry-content #blocks,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~.entry-content #faq,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~.entry-content #screenshots,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~.entry-content #tab-description,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~.entry-content #tab-developers,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~.entry-content #tab-developers~button,.type-plugin span#reviews:target~.entry-content #tab-reviews{display:block}.type-plugin span#developers:target~.entry-content #tab-developers .plugin-contributors,.type-plugin span#installation:target~.entry-meta .plugin-contributors,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~.entry-content #tab-developers .plugin-development,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~.entry-meta .plugin-contributors,.type-plugin span#reviews:target~.entry-meta .plugin-contributors,.type-plugin span#reviews:target~.entry-meta .plugin-donate,.type-plugin span#reviews:target~.entry-meta .plugin-meta,.type-plugin span#reviews:target~.entry-meta .plugin-support{display:none}@media screen and (min-width:737px){.type-plugin .entry-content,.type-plugin .entry-meta{padding-left:0;padding-right:0}.type-plugin .entry-meta{float:right;width:30%}}.type-plugin .plugin-danger-zone h4{margin-top:var(--wp--preset--spacing--60)}.plugin-releases-listing{border-collapse:collapse;width:100%}.plugin-releases-listing tbody td:nth-child(4) div{font-size:14px}.plugin-releases-listing-actions{display:flex;flex-direction:column;gap:8px}@media screen and (min-width:34em){.plugin-releases-listing-actions{flex-direction:row}}.plugin-adopt-me{background:#e6f4fa;margin-top:36px;padding:12px}.plugin-adopt-me .widget-title{margin-top:0}.plugin-adopt-me p{margin-bottom:0}.widget.plugin-categorization{margin-top:var(--wp--style--block-gap)}.widget.plugin-categorization .widget-head h2{font-size:var(--wp--preset--font-size--heading-4);margin-bottom:.2rem;margin-top:0}.widget.plugin-categorization .widget-head a{font-size:var(--wp--preset--font-size--small)}.widget.plugin-categorization .widget-head a[href=""]{display:none}.widget.plugin-categorization p{font-size:var(--wp--preset--font-size--small);margin-top:.5rem}.widget.plugin-categorization~.plugin-meta li:first-child{border-top:1px solid var(--wp--preset--color--light-grey-1)}.committer-list,.support-rep-list{list-style:none;margin:0;padding:0}.committer-list li,.support-rep-list li{padding-bottom:.5rem}.committer-list li .remove,.support-rep-list li .remove{color:red;visibility:hidden}.committer-list li:hover .remove,.support-rep-list li:hover .remove{visibility:visible}.committer-list .avatar,.support-rep-list .avatar{float:left;margin-right:10px}.committer-list .spinner,.support-rep-list .spinner{position:relative}.committer-list .spinner:after,.support-rep-list .spinner:after{background:url(/wp-admin/images/spinner.gif) no-repeat 50%;background-size:20px 20px;content:"";display:block;height:20px;margin:-10px -10px 0 0;position:absolute;right:-50%;top:50%;transform:translateZ(0);width:20px}@media (min-resolution:120dpi),print{.committer-list .spinner:after,.support-rep-list .spinner:after{background-image:url(/wp-admin/images/spinner-2x.gif)}}.committer-list .new,.support-rep-list .new{margin-top:var(--wp--style--block-gap)}.plugin-contributors.read-more{border-bottom:1px solid var(--wp--preset--color--light-grey-1);max-height:200px;overflow:hidden;padding-bottom:1px}.plugin-contributors.read-more.toggled{max-height:none}.no-js .plugin-contributors.read-more{max-height:none;overflow:auto}.contributors-list{list-style-type:none;margin:0;padding:0}.contributors-list li{align-items:center;display:flex;margin-bottom:1rem}.contributors-list .avatar{float:left;margin-right:10px}.plugin-meta{font-size:var(--wp--preset--font-size--small);margin-top:var(--wp--style--block-gap)}.plugin-meta ul{list-style-type:none;margin:0;padding:0}.plugin-meta li{border-top:1px solid var(--wp--preset--color--light-grey-1);display:inline-block;padding:.5rem 0;position:relative;width:100%}.plugin-meta li strong{float:right;font-weight:500}.plugin-meta li .plugin-admin{font-size:var(--wp--preset--font-size--normal);font-weight:400}.plugin-meta li:first-child{border-top:0}.plugin-meta .languages,.plugin-meta .tags{float:right;text-align:right}.plugin-meta .tags{width:60%}.plugin-meta .languages button{font-size:var(--wp--preset--font-size--small);outline:revert}.plugin-meta .languages .popover{margin-top:8px}.plugin-meta .languages .popover-trigger{color:var(--wp--custom--link--color--text);text-decoration:underline}.plugin-meta .languages .popover-trigger:hover{text-decoration:underline}.plugin-meta [rel=tag]{background:var(--wp--preset--color--blueberry-4);border-radius:2px;color:var(--wp--preset--color--charcoal-1);display:inline-block;font-size:var(--wp--preset--font-size--extra-small);margin:2px;max-width:95%;overflow:hidden;padding:3px 6px;position:relative;text-decoration:none;text-overflow:ellipsis;white-space:nowrap;width:auto}.plugin-meta [rel=tag]:hover{text-decoration:underline}.popover{background-color:#fff;border:1px solid var(--wp--preset--color--light-grey-1);border-radius:2px;box-shadow:0 2px 10px #0000001a;display:none;left:0;margin-top:10px;max-width:300px;padding:1em 1em 2em;position:absolute;width:100%;z-index:100}.popover.is-top-right{left:auto;right:0}.popover.is-visible{display:block}.popover .popover-close{bottom:.5em;color:var(--wp--custom--link--color--text);font-size:small;position:absolute;right:.6em}.popover .popover-close:active,.popover .popover-close:focus,.popover .popover-close:hover{text-decoration:underline}.popover .popover-arrow{border:10px solid #0000;border-bottom:10px solid #ccc;border-top:none;height:0;position:absolute;right:20px;top:-10px;width:0;z-index:-1}.popover .popover-arrow:after{border:10px solid #0000;border-bottom:10px solid #fff;border-top:none;content:"";left:-10px;position:absolute;top:2px}.popover .popover-inner{text-align:left}.popover .popover-inner p:first-child{margin-top:0}.popover .popover-inner p:last-child{margin-bottom:0}.plugin-support .counter-container{margin-bottom:1rem;position:relative}.plugin-support .counter-back,.plugin-support .counter-bar{display:inline-block;height:30px;vertical-align:middle}.plugin-support .counter-back{background-color:var(--wp--preset--color--light-grey-2);width:100%}.plugin-support .counter-bar{background-color:var(--wp--preset--color--acid-green-2);display:block}.plugin-support .counter-count{font-size:var(--wp--preset--font-size--extra-small);left:8px;position:absolute;top:8px;width:100%;width:calc(100% - 8px)}@media screen and (min-width:737px){.plugin-support .counter-count{top:5px}}.home .widget,.widget-area.home .widget{display:inline-block;font-size:var(--wp--preset--font-size--small);margin:0;margin:var(--wp--style--block-gap);vertical-align:top;width:auto}@media screen and (min-width:737px){.home .widget,.widget-area.home .widget{margin:0;width:30%}.home .widget:first-child,.widget-area.home .widget:first-child{margin-right:5%}.home .widget:last-child,.widget-area.home .widget:last-child{margin-left:5%}}.home .widget select,.widget-area.home .widget select{max-width:100%}.entry-meta .widget-title{font-size:var(--wp--preset--font-size--heading-4)}body.single.single-plugin .entry-meta{font-size:var(--wp--preset--font-size--normal)}.widget-area{margin:0 auto;padding:var(--wp--preset--spacing--40) 0}.widget-area .widget-title{font-size:var(--wp--preset--font-size--heading-1);font-weight:var(--wp--custom--heading--typography--font-weight);margin-top:var(--wp--preset--spacing--50)}.widget-area .textwidget{text-wrap:pretty} \ No newline at end of file +<<<<<<< HEAD +@charset "UTF-8";.avatar{border-radius:50%;vertical-align:middle}.wp-block-wporg-language-suggest>p{margin:0}.block-validator>details summary{padding:var(--wp--style--block-gap) 0}.block-validator .block-validator__plugin-form label{display:block;margin-bottom:.8em}.block-validator .block-validator__plugin-input-container{display:flex;max-width:34rem}.block-validator .block-validator__plugin-input{flex:1}.block-validator .block-validator__plugin-submit{flex:0;margin-left:4px}@media (max-width:36rem){.block-validator .block-validator__plugin-submit{width:100%}.block-validator .block-validator__plugin-input-container{display:block}.block-validator .block-validator__plugin-input{width:100%}.block-validator .block-validator__plugin-submit{margin-left:0;margin-top:var(--wp--style--block-gap)}}.block-validator .notice details,.block-validator .notice p{font-size:var(--wp--preset--font-size--normal);margin:var(--wp--style--block-gap) 0}.block-validator .notice details p{font-size:var(--wp--preset--font-size--small);margin-left:1rem}.block-validator .notice summary{display:list-item}.block-validator figure{border:1px solid #aaa;display:inline-block;padding:1em}.block-validator .test-screenshot{text-align:center}.block-validator .plugin-upload-form-controls{align-items:center;display:flex;gap:4px}.block-validator .plugin-upload-form-controls>label{border:1px solid var(--wp--custom--form--border--color);border-radius:var(--wp--custom--form--border--radius);cursor:pointer;min-width:200px;padding:4px 8px}.notice{background:#fff;border-left:4px solid #fff;box-shadow:0 1px 1px 0 #0000001a;font-size:var(--wp--preset--font-size--small);margin:var(--wp--style--block-gap) 0;padding:1px 12px}.notice p,.notice ul{margin:.5em 0;padding:2px}.notice pre{white-space:pre-wrap}.notice ul{list-style:none;margin:.5em}.notice.notice-alt{box-shadow:none}.notice.notice-large{padding:10px 20px}.notice.notice-success{border-left-color:#46b450}.notice.notice-success.notice-alt{background-color:#ecf7ed}.notice.notice-warning{border-left-color:#ffb900}.notice.notice-warning.notice-alt{background-color:#fff8e5}.notice.notice-error{border-left-color:#dc3232}.notice.notice-error.notice-alt{background-color:#fbeaea}.notice.notice-info{border-left-color:#00a0d2}.notice.notice-info.notice-alt{background-color:#e5f5fa}.notice.hidden{display:none}.plugin-upload-form.hidden{display:none}.plugin-upload-form fieldset{border:none;margin:0;padding:0}.plugin-upload-form legend{margin:1rem 0}.plugin-upload-form .category-checklist{list-style-type:none;margin:0 0 2rem}.plugin-upload-form .category-checklist li{float:left;padding:.5rem 0;width:50%}@media screen and (min-width:48em){.plugin-upload-form .category-checklist li{padding:0}.plugin-upload-form .category-checklist label{font-size:var(--wp--preset--font-size--small)}.plugin-upload-form label.button{line-height:1.8}}.plugin-upload-form .plugin-file{height:.1px;opacity:0;overflow:hidden;position:absolute;width:.1px;z-index:-1}.plugin-queue-message code{font-size:1em}.plugin-queue-message dialog.slug-change input[type=text]{font-family:monospace;font-size:1.2em;width:20em}:where(main) a:where(:not(.wp-element-button,.wp-block-wporg-link-wrapper)):focus,:where(main) button:where(:not([class*=wp-block-button])):focus{border-radius:2px;box-shadow:0 0 0 1.5px currentColor;outline:none}.wporg-filter-bar{--wporg--filter-bar--gap:20px;--wporg--filter-bar--color:#40464d;--wporg--filter-bar--active--background-color:var(--wp--custom--button--color--background);--wporg--filter-bar--focus--border-color:var(--wp--custom--button--focus--border--color);margin:var(--wp--style--block-gap) 0}.wporg-filter-bar .wporg-query-filter__toggle.is-active,.wporg-filter-bar .wporg-query-filter__toggle:active,.wporg-filter-bar .wporg-query-filter__toggle:focus{background-color:var(--wporg--filter-bar--active--background-color);color:var(--wp--custom--button--color--text)}.wporg-filter-bar .wporg-filter-bar__navigation{flex-grow:1;margin-bottom:var(--wporg--filter-bar--gap)}.wporg-filter-bar .wporg-filter-bar__navigation ul{display:inline-block;font-size:13px;line-height:1.538;list-style:none;margin:0;padding-left:0}.wporg-filter-bar .wporg-filter-bar__navigation ul li{display:inline-block}.wporg-filter-bar .wporg-filter-bar__navigation ul li+li{margin-left:8px}.wporg-filter-bar .wporg-filter-bar__navigation ul a{border-radius:2px;color:var(--wporg--filter-bar--color);display:block;padding:8px 12px;text-decoration:none}.wporg-filter-bar .wporg-filter-bar__navigation ul a:focus,.wporg-filter-bar .wporg-filter-bar__navigation ul a:hover{text-decoration:underline}.wporg-filter-bar .wporg-filter-bar__navigation ul a:focus-visible{box-shadow:none;outline:1.5px solid var(--wporg--filter-bar--focus--border-color);outline-offset:-.5px}.wporg-filter-bar .wporg-filter-bar__navigation ul a.is-active{background-color:var(--wporg--filter-bar--active--background-color);color:#fff}.wporg-filter-bar .wporg-filter-bar__navigation ul a.is-active:focus,.wporg-filter-bar .wporg-filter-bar__navigation ul a.is-active:hover{color:#fff}.wporg-filter-bar .wporg-filter-bar__navigation ul a.is-active:focus-visible{box-shadow:inset 0 0 0 1.5px #fff;outline:1.5px solid var(--wporg--filter-bar--focus--border-color);outline-offset:-.5px}@media screen and (min-width:737px){.wporg-filter-bar{align-items:center;display:flex;flex-wrap:wrap;gap:var(--wporg--filter-bar--gap);justify-content:space-between;width:100%}.wporg-filter-bar .wporg-filter-bar__navigation{margin-bottom:0}}.wp-block-search__inside-wrapper{background:var(--wp--preset--color--light-grey-2);border:none}.button-link{background:none;border:0;border-radius:0;box-shadow:none;cursor:pointer;margin:0;outline:none;padding:0}.button{background-color:var(--wp--custom--button--color--background);border:0;border-radius:var(--wp--custom--button--border--radius);color:var(--wp--custom--button--color--text);cursor:pointer;opacity:1;padding:calc(var(--wp--custom--button--small--spacing--padding--top) + var(--wp--custom--button--border--width)) calc(var(--wp--custom--button--small--spacing--padding--right) + var(--wp--custom--button--border--width)) calc(var(--wp--custom--button--small--spacing--padding--bottom) + var(--wp--custom--button--border--width)) calc(var(--wp--custom--button--small--spacing--padding--left) + var(--wp--custom--button--border--width));vertical-align:middle}.button.button-large{padding:calc(var(--wp--custom--button--spacing--padding--top) + var(--wp--custom--button--border--width)) calc(var(--wp--custom--button--spacing--padding--right) + var(--wp--custom--button--border--width)) calc(var(--wp--custom--button--spacing--padding--bottom) + var(--wp--custom--button--border--width)) calc(var(--wp--custom--button--spacing--padding--left) + var(--wp--custom--button--border--width))}input+button.button,select+button.button{margin-top:-3px}.button.disabled{cursor:not-allowed;opacity:.6}.wp-block-post-content a.button{text-decoration:none}.wp-block-button__link{width:auto}pre{background-color:#f7f7f7;border:1px solid var(--wp--preset--color--light-grey-1);overflow:scroll;padding:20px}code,pre{border-radius:2px}code{background:var(--wp--preset--color--light-grey-2);display:inline-block;line-height:var(--wp--custom--body--extra-small--typography--line-height);max-width:100%;padding-inline-end:3px;padding-inline-start:3px}dialog{border:0;box-shadow:6px 6px 6px #0003;min-height:50%;min-width:30%}@media (min-width:1280px){dialog{max-width:55%}}dialog::backdrop{background:#000;opacity:.5}dialog .close{color:inherit;cursor:pointer;position:absolute;right:1em;text-decoration:none!important;top:1em}.plugin-card{display:flex;flex-direction:column;height:100%;justify-content:space-between}.plugin-card .entry{display:inline-block;vertical-align:top}.plugin-card .entry-title{display:block;display:-webkit-box;font-size:var(--wp--preset--font-size--heading-5);font-weight:500;line-height:1.3;margin-bottom:2px!important;max-height:2.6em;overflow:hidden;-webkit-line-clamp:2;-webkit-box-orient:vertical}.plugin-card .entry-title a{display:block;text-decoration:none}.plugin-card .entry-title a:focus{box-shadow:none}.plugin-card .entry-excerpt{clear:both;font-size:var(--wp--preset--font-size--small)}.plugin-card .entry-excerpt p{margin:0}.plugin-card footer{font-size:var(--wp--preset--font-size--small);margin-top:var(--wp--style--block-gap)}.plugin-card footer span{color:var(--wp--preset--color--charcoal-4);display:inline-block;line-height:var(--wp--preset--font-size--normal);overflow:hidden}.plugin-card footer span.plugin-author{width:100%}.plugin-card footer span.plugin-author span{color:var(--wp--preset--color--charcoal-1)}.plugin-card footer span.plugin-author path{fill:var(--wp--preset--color--charcoal-1)}.plugin-card footer span svg{height:24px;vertical-align:bottom;width:24px}.plugin-card footer span svg path{fill:var(--wp--preset--color--charcoal-4)}.plugin-card footer span.active-installs{min-width:48%}.plugin-cards{cursor:pointer}.plugin-cards .is-style-cards-grid li:hover{background-color:#fff!important;border:1px solid var(--wp--preset--color--charcoal-1)!important}.plugin-cards .is-style-cards-grid li:focus-within{border-color:#0000;border-radius:2px;box-shadow:0 0 0 1.5px var(--wp--custom--link--color--text)}@media screen and (max-width:737px){.plugin-cards .is-style-cards-grid{grid-template-columns:100%}}.entry-thumbnail{display:none;margin-bottom:var(--wp--style--block-gap);margin-right:var(--wp--style--block-gap);max-width:80px}.entry-thumbnail .plugin-icon{background-size:cover;border-radius:var(--wp--custom--button--border--radius);display:block;height:80px;width:80px}@media screen and (min-width:21em){.entry-thumbnail{display:inline-block;float:left;vertical-align:top}}.single .entry-thumbnail{display:none;float:left;height:96px;margin-bottom:0;max-width:96px}@media screen and (min-width:26em){.single .entry-thumbnail{display:block}}.single .entry-thumbnail .plugin-icon{background-size:contain!important;height:96px!important;width:96px!important}.plugin-rating{line-height:1;margin:0 10px 8px 0}.plugin-rating .wporg-ratings{display:inline-block;margin-right:5px}.plugin-rating .rating-count{color:var(--wp--preset--color--charcoal-4);font-size:var(--wp--preset--font-size--extra-small);vertical-align:text-bottom}.plugin-rating .rating-count a{color:inherit;cursor:hand;text-decoration:none}[class*=dashicons-star-]{color:var(--wp--preset--color--pomegrade-1)}.rtl .dashicons-star-half{transform:rotateY(180deg)}#main .plugin-section{margin:0 auto var(--wp--preset--spacing--60)}#main .plugin-section:last-of-type{margin-bottom:0}#main .plugin-section .section-header{align-items:center;column-gap:10px;display:flex;justify-content:space-between;margin-bottom:var(--wp--style--block-gap)}#main .plugin-section .section-header>h2{margin-bottom:0}#main .plugin-section .section-link{align-self:center;flex:0 0 auto;text-decoration:underline}.pagination .nav-links{margin-top:var(--wp--style--block-gap);padding-top:var(--wp--style--block-gap);text-align:center}.pagination .nav-links a{text-decoration:none}.pagination .nav-links .page-numbers{cursor:pointer;display:inline-block;min-width:2em;padding:8px;text-align:center}.pagination .nav-links .page-numbers.dots,.pagination .nav-links .page-numbers.next,.pagination .nav-links .page-numbers.prev{background:none;font-size:.9em;width:auto}.pagination .nav-links .page-numbers.dots{cursor:inherit}@media screen and (max-width:737px){.pagination .nav-links .page-numbers.next,.pagination .nav-links .page-numbers.prev{font-size:0;min-width:auto;padding:0}.pagination .nav-links .page-numbers.next:after,.pagination .nav-links .page-numbers.prev:before{display:inline-block;font-size:medium;line-height:1.5;min-width:2em;padding:8px}.pagination .nav-links .page-numbers.prev:before{content:"‹"}.pagination .nav-links .page-numbers.next:after{content:"›"}}.pagination .nav-links span.page-numbers{font-weight:700}.pagination .nav-links span.page-numbers.current{text-decoration:underline}@keyframes favme-anime{0%{font-size:var(--wp--preset--font-size--large);opacity:1;-webkit-text-stroke-color:#0000}25%{color:#fff;font-size:var(--wp--preset--font-size--small);opacity:.6;-webkit-text-stroke-width:1px;-webkit-text-stroke-color:#dc3232}75%{color:#fff;font-size:var(--wp--preset--font-size--large);opacity:.6;-webkit-text-stroke-width:1px;-webkit-text-stroke-color:#dc3232}to{font-size:var(--wp--preset--font-size--normal);opacity:1;-webkit-text-stroke-color:#0000}}.plugin-favorite{height:calc(var(--wp--custom--button--spacing--padding--top)*2 + var(--wp--preset--font-size--normal)*2);text-align:center;vertical-align:top;width:36px}.plugin-favorite .plugin-favorite-heart{align-items:center;background:none;border:0;border-radius:0;box-shadow:none;color:#cbcdce;cursor:pointer;display:flex;font-size:var(--wp--preset--font-size--large);height:100%;justify-content:center;line-height:1;margin:0;outline:none;padding:0;text-decoration:none}.plugin-favorite .plugin-favorite-heart.favorited{color:#dc3232}.plugin-favorite .plugin-favorite-heart:focus,.plugin-favorite .plugin-favorite-heart:hover{color:var(----wp--preset--color--charcoal-2);text-decoration:none}.plugin-favorite .plugin-favorite-heart:after{content:"\f487";font-family:dashicons;vertical-align:top}.plugin-banner img{aspect-ratio:3.089;border-radius:var(--wp--custom--button--border--radius);display:block;margin:0 auto var(--wp--preset--spacing--30);width:100%}@keyframes hideAnimation{to{visibility:hidden}}.categorization .help{color:var(--wp--preset--color--charcoal-4);display:inline-block;font-size:.8rem;margin-top:0}.categorization label{display:block;font-weight:700}.categorization input{width:100%}.categorization .success-msg{background:#eff7ed;border:solid #64b450;border-width:0 0 0 5px;font-size:.8rem;margin-left:1rem;opacity:0;overflow:auto;padding:.1rem .6rem .2rem;position:relative;transition:visibility 0s,opacity .5s linear;-webkit-user-select:none;user-select:none;visibility:hidden}.categorization .success-msg.saved{animation:hideAnimation 0s ease-in 5s;animation-fill-mode:forwards;opacity:1;visibility:visible}.plugin-changelog code{font-size:var(--wp--preset--font-size--small)}.plugin-developers .contributors-list li{align-items:center;display:flex;padding-bottom:var(--wp--style--block-gap)}@media screen and (min-width:500px){.plugin-developers .contributors-list{display:flex;flex-wrap:wrap}.plugin-developers .contributors-list li{padding-bottom:unset;width:50%}}.plugin-faq dl{border-bottom:1px solid var(--wp--preset--color--light-grey-1)}.plugin-faq dt{border-top:1px solid var(--wp--preset--color--light-grey-1);cursor:pointer;padding:1rem 0}.plugin-faq dt:before{content:"\f347";float:right;font-family:dashicons;margin:0 1rem}.plugin-faq dt.open:before{content:"\f343"}.plugin-faq dt .button-link{display:inherit;text-align:inherit}.plugin-faq dt .button-link.no-focus{box-shadow:none;outline:none}.plugin-faq dt h3{color:var(--wp--custom--link--color--text);display:inline;font-size:var(--wp--preset--font-size--normal);font-weight:400;margin-bottom:0;margin-top:0!important;text-decoration:underline}.plugin-faq dt h3 button{all:inherit;max-width:calc(100% - 60px)}.plugin-faq dt h3 button:focus,.plugin-faq dt h3 button:hover{text-decoration:underline}.plugin-faq dd{display:none;margin:0 0 1rem}.no-js .plugin-faq dd{display:block}.plugin-faq dd p{margin:0}.plugin-faq dd p+p{margin-top:1rem}.image-gallery{-webkit-user-select:none;user-select:none}.image-gallery-content{position:relative}.image-gallery-content .image-gallery-left-nav,.image-gallery-content .image-gallery-right-nav{border-color:var(--wp--preset--color--light-grey-1);display:none;font-size:48px;height:100%;position:absolute;top:0;transition:background .1s ease,border .1s ease;z-index:4}@media (max-width:768px){.image-gallery-content .image-gallery-left-nav,.image-gallery-content .image-gallery-right-nav{font-size:3.4em}}@media (min-width:768px){.image-gallery-content .image-gallery-left-nav:hover,.image-gallery-content .image-gallery-right-nav:hover{background:#fff;border:1px solid var(--wp--preset--color--light-grey-1);opacity:.8}}.image-gallery-content .image-gallery-left-nav:before,.image-gallery-content .image-gallery-right-nav:before{font-family:dashicons;position:relative}.image-gallery-content .image-gallery-left-nav{left:0}.image-gallery-content .image-gallery-left-nav:before{content:"\f341"}.image-gallery-content .image-gallery-left-nav:hover{margin-left:-1px}.image-gallery-content .image-gallery-right-nav{right:0}.image-gallery-content .image-gallery-right-nav:before{content:"\f345"}.image-gallery-content .image-gallery-right-nav:hover{margin-right:-1px}.image-gallery-content:hover .image-gallery-left-nav,.image-gallery-content:hover .image-gallery-right-nav{display:block}.image-gallery-slides{border:1px solid #eee;line-height:0;overflow:hidden;position:relative;white-space:nowrap}.image-gallery-slide{left:0;position:absolute;top:0;width:100%}.image-gallery-slide.center{position:relative}.image-gallery-slide .image-gallery-image{margin:0}.image-gallery-slide img{display:block;margin:0 auto}.image-gallery-slide .image-gallery-description{background:var(--wp--preset--color--light-grey-2);color:var(--wp--preset--color--charcoal-1);font-size:var(--wp--preset--font-size--small);line-height:1.5;padding:10px 20px;white-space:normal}@media (max-width:768px){.image-gallery-slide .image-gallery-description{padding:8px 15px}}.image-gallery-thumbnails{background:#fff;margin-top:5px}.image-gallery-thumbnails .image-gallery-thumbnails-container{cursor:pointer;text-align:center;white-space:nowrap}.image-gallery-thumbnail{border:1px solid #eee;display:table-cell;margin-right:5px;max-height:100px;overflow:hidden}.image-gallery-thumbnail .image-gallery-image{margin:0}.image-gallery-thumbnail img{vertical-align:middle;width:100px}@media (max-width:768px){.image-gallery-thumbnail img{width:75px}}.image-gallery-thumbnail:hover{box-shadow:0 1px 8px #0000004d}.image-gallery-thumbnail.active{border:1px solid #337ab7}.image-gallery-thumbnail-label{color:#222;font-size:1em}@media (max-width:768px){.image-gallery-thumbnail-label{font-size:.8em}}.image-gallery-index{background:#0006;bottom:0;color:#fff;line-height:1;padding:10px 20px;position:absolute;right:0;z-index:4}.plugin-reviews{list-style-type:none;margin:0;padding:0}.plugin-reviews .plugin-review{border-bottom:1px solid var(--wp--preset--color--light-grey-1);margin:2rem 0 1rem;padding-bottom:1rem}.plugin-reviews .plugin-review a{text-decoration:none}.plugin-reviews .plugin-review:first-child{margin-top:0}.plugin-reviews .plugin-review .header-top{display:flex}.plugin-reviews .plugin-review .header-top .wporg-ratings{flex-shrink:0}.plugin-reviews .plugin-review .header-bottom{display:flex;margin-top:4px}.plugin-reviews .review-avatar{display:none}.plugin-reviews .review,.plugin-reviews .review-author,.plugin-reviews .wporg-ratings{display:inline-block;vertical-align:top}.plugin-reviews .review-header{margin:0 0 .5rem}.plugin-reviews .review-title{font-size:var(--wp--preset--font-size--normal);font-weight:500;margin:2px 0 0 12px!important;text-transform:inherit}.plugin-reviews .review-author,.plugin-reviews .review-date,.plugin-reviews .review-replies{font-size:var(--wp--preset--font-size--extra-small);line-height:1.25}.plugin-reviews .review-date,.plugin-reviews .review-replies{color:var(--wp--preset--color--charcoal-4);font-size:var(--wp--preset--font-size--extra-small);margin-left:12px}.plugin-reviews .review-replies:before{content:"•";margin-right:12px}.plugin-reviews .review-content{margin:1em 0}@media screen and (min-width:737px){.plugin-reviews .review-avatar{display:inline-block;vertical-align:top}.plugin-reviews .review-avatar .avatar{margin-right:1rem}.plugin-reviews .review{width:calc(100% - 60px - 1rem)}.plugin-reviews .review-header{margin:0}.plugin-reviews .review-author,.plugin-reviews .review-date,.plugin-reviews .review-replies{line-height:1}}.plugin-reviews .reviews-link{display:inline-block;font-size:var(--wp--preset--font-size--small);text-decoration:none}.plugin-reviews .reviews-link:after{content:"\f345";float:right;font-family:dashicons;padding-left:5px;position:relative;top:1px;vertical-align:text-top}.plugin-screenshots{list-style-type:none;margin:0;padding:0}.plugin-screenshots .image-gallery-content{display:table;width:100%}.plugin-screenshots .image-gallery-slides{display:table-cell;max-height:600px}.plugin-screenshots .image-gallery-image img{max-height:550px;max-width:100%}.plugin-screenshots .image-gallery-thumbnail{vertical-align:top}.plugin-screenshots .image-gallery-thumbnail img{max-height:100px}.plugin-screenshots .image-gallery-thumbnails{overflow:hidden}.download-history-stats td{text-align:right}.previous-versions{max-width:60%}@media screen and (min-width:737px){.previous-versions{height:32px;vertical-align:middle}}hr{margin:2.5rem auto}.section h1:nth-child(2),.section h2:nth-child(2),.section h3:nth-child(2),.section h4:nth-child(2),.section h5:nth-child(2),.section h6:nth-child(2){margin-top:0}.section-heading{font-family:var(--wp--preset--font-family--inter)!important;font-size:var(--wp--preset--font-size--heading-5)!important;font-style:normal;font-weight:600;line-height:var(--wp--custom--heading--level-5--typography--line-height)}.section-intro{color:var(--wp--preset--color--charcoal-4);font-size:var(--wp--preset--font-size--small);margin-bottom:var(--wp--preset--spacing--20);margin-top:var(--wp--preset--spacing--10)}.type-plugin .plugin-notice{margin-top:0}.type-plugin .plugin-header{border-bottom:0;padding-top:var(--wp--preset--spacing--40)}.type-plugin .plugin-header:after,.type-plugin .plugin-header:before{content:"";display:table;table-layout:fixed}.type-plugin .plugin-header:after{clear:both}.type-plugin .plugin-header .entry-heading-container{display:flex;flex-direction:column;justify-content:space-between}@media screen and (max-width:599px){.type-plugin .plugin-header .entry-heading-container{--wp--custom--button--spacing--padding--top:12px;--wp--custom--button--spacing--padding--bottom:12px;--wp--custom--button--spacing--padding--left:16px;--wp--custom--button--spacing--padding--right:16px}}@media screen and (min-width:700px){.type-plugin .plugin-header .entry-heading-container{flex-direction:row}}.type-plugin .plugin-header .entry-heading-container>:first-child{align-items:center;display:flex;flex:1}.type-plugin .plugin-header .plugin-actions{align-items:center;display:flex;gap:16px;margin-top:var(--wp--style--block-gap)}@media screen and (min-width:700px){.type-plugin .plugin-header .plugin-actions{margin-top:0;margin-inline-start:1rem}}.type-plugin .plugin-header .plugin-actions>.button,.type-plugin .plugin-header .plugin-actions>div{display:inline-block;text-align:center}@media screen and (max-width:34em){.type-plugin .plugin-header .plugin-actions>.button.download-button{display:none}}.type-plugin .plugin-header .plugin-title{clear:none;font-size:var(--wp--preset--font-size--heading-3);font-weight:400;line-height:var(--wp--custom--heading--level-3--typography--line-height);margin:0}.type-plugin .plugin-header .plugin-title a{color:inherit;text-decoration:none}.type-plugin .plugin-header .plugin-title a:hover{text-decoration:underline}.type-plugin .plugin-header .byline{color:var(--wp--preset--color--charcoal-4);display:block;margin-top:4px}.type-plugin .plugin-banner+.plugin-header{padding-top:0}.type-plugin .plugin-banner+.plugin-header>.notice:first-of-type{margin-top:0}.type-plugin .tabs{border-bottom:1px solid var(--wp--preset--color--light-grey-1);list-style:none;margin:0}.type-plugin .tabs li{border:1px solid #0000;display:inline-block;font-size:.9rem;margin-bottom:-1px;transition:background .2s ease}.type-plugin .tabs li a{background:#fff;border:0;color:var(--wp--preset--color--charcoal-1);display:block;font-size:var(--wp--preset--font-size--normal);padding:.64rem 1.25rem;text-decoration:none}.type-plugin .tabs li a.active,.type-plugin .tabs li a:hover{background:var(--wp--preset--color--light-grey-2)!important}.type-plugin .tabs li.active,.type-plugin .tabs li:hover{border:1px solid var(--wp--preset--color--light-grey-1)}@media screen and (max-width:38em){.type-plugin .tabs{border-top:1px solid var(--wp--preset--color--light-grey-1)}.type-plugin .tabs li{display:block;margin-bottom:1px}.type-plugin .tabs li,.type-plugin .tabs li.active,.type-plugin .tabs li:hover{border:none;border-bottom:1px solid var(--wp--preset--color--light-grey-1)}}@media screen and (min-width:737px){.type-plugin .entry-content{float:left;padding:0;width:65%}}.type-plugin .entry-content>div,.type-plugin .entry-content>div~button{border:0;display:none}.type-plugin .entry-content ol>li>p,.type-plugin .entry-content ul>li>p{margin:0}.type-plugin .entry-content #admin{display:block!important}.type-plugin .plugin-blocks-list{list-style:none;margin-left:0;padding-left:0}.type-plugin .plugin-blocks-list .plugin-blocks-list-item{display:grid;grid-template-columns:auto 1fr;margin-bottom:var(--wp--style--block-gap)}.type-plugin .plugin-blocks-list .block-icon{border:1px solid var(--wp--preset--color--light-grey-1);border-radius:2px;display:inline-block;height:3.5rem;line-height:16px;margin-right:var(--wp--style--block-gap);padding:var(--wp--style--block-gap);width:3.5rem}.type-plugin .plugin-blocks-list .block-icon.dashicons{color:inherit}.type-plugin .plugin-blocks-list .block-icon.dashicons:before{margin-left:-3px}.type-plugin .plugin-blocks-list .block-icon svg{height:16px;width:16px;fill:currentColor;margin-left:-1px}.type-plugin .plugin-blocks-list .block-title{align-self:center;font-weight:700}.type-plugin .plugin-blocks-list .has-description .block-icon{grid-row:1/span 2}.type-plugin .plugin-blocks-list .has-description .block-title{margin-bottom:.4em}.type-plugin span#description,.type-plugin span#developers,.type-plugin span#installation,.type-plugin span#reviews{position:fixed}.type-plugin span#advanced.displayed~#section-links .tabs li#tablink-advanced,.type-plugin span#developers:target~#section-links .tabs li#tablink-developers,.type-plugin span#installation:target~#section-links .tabs li#tablink-installation,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#advanced:not(.displayed)~#section-links .tabs li#tablink-description,.type-plugin span#reviews:target~#section-links .tabs li#tablink-reviews{background:#fff;border:1px solid var(--wp--preset--color--light-grey-1);border-bottom:0;padding-bottom:1px}@media screen and (max-width:38em){.type-plugin span#advanced.displayed~#section-links .tabs li#tablink-advanced.active,.type-plugin span#advanced.displayed~#section-links .tabs li#tablink-advanced:hover,.type-plugin span#developers:target~#section-links .tabs li#tablink-developers.active,.type-plugin span#developers:target~#section-links .tabs li#tablink-developers:hover,.type-plugin span#installation:target~#section-links .tabs li#tablink-installation.active,.type-plugin span#installation:target~#section-links .tabs li#tablink-installation:hover,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#advanced:not(.displayed)~#section-links .tabs li#tablink-description.active,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#advanced:not(.displayed)~#section-links .tabs li#tablink-description:hover,.type-plugin span#reviews:target~#section-links .tabs li#tablink-reviews.active,.type-plugin span#reviews:target~#section-links .tabs li#tablink-reviews:hover{padding-bottom:1px!important}}.type-plugin span#section-links{display:flex;flex-flow:row wrap;margin-top:var(--wp--preset--spacing--30)}.type-plugin span#section-links .tabs{flex:1 1 auto;padding-left:0}@media screen and (max-width:38em){.type-plugin span#section-links .tabs{border:1px solid var(--wp--preset--color--light-grey-1)!important}.type-plugin span#section-links .tabs li{border:none!important}.type-plugin span#section-links{display:block}}.type-plugin #link-support{align-self:flex-end;border-bottom:1px solid var(--wp--preset--color--light-grey-1);flex:0 0 auto;font-size:.9rem}.type-plugin #link-support a{display:inline-block;font-size:var(--wp--preset--font-size--normal);padding:.64rem 0 .64rem 1.25rem}@media screen and (max-width:38em){.type-plugin #link-support{border-bottom:0;display:block;width:100%}.type-plugin #link-support a{padding-right:1.25rem}}.type-plugin span#developers:target~.entry-content #tab-changelog,.type-plugin span#developers:target~.entry-content #tab-developers,.type-plugin span#developers:target~.entry-content #tab-developers .plugin-development,.type-plugin span#developers:target~.entry-content #tab-developers~button,.type-plugin span#installation:target~.entry-content #tab-installation,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~.entry-content #blocks,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~.entry-content #faq,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~.entry-content #screenshots,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~.entry-content #tab-description,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~.entry-content #tab-developers,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~.entry-content #tab-developers~button,.type-plugin span#reviews:target~.entry-content #tab-reviews{display:block}.type-plugin span#developers:target~.entry-content #tab-developers .plugin-contributors,.type-plugin span#installation:target~.entry-meta .plugin-contributors,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~.entry-content #tab-developers .plugin-development,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~.entry-meta .plugin-contributors,.type-plugin span#reviews:target~.entry-meta .plugin-contributors,.type-plugin span#reviews:target~.entry-meta .plugin-donate,.type-plugin span#reviews:target~.entry-meta .plugin-meta,.type-plugin span#reviews:target~.entry-meta .plugin-support{display:none}@media screen and (min-width:737px){.type-plugin .entry-content,.type-plugin .entry-meta{padding-left:0;padding-right:0}.type-plugin .entry-meta{float:right;width:30%}}.type-plugin .plugin-danger-zone h4{margin-top:var(--wp--preset--spacing--60)}.plugin-releases-listing{border-collapse:collapse;width:100%}.plugin-releases-listing tbody td:nth-child(4) div{font-size:14px}.plugin-releases-listing-actions{display:flex;flex-direction:column;gap:8px}@media screen and (min-width:34em){.plugin-releases-listing-actions{flex-direction:row}}.plugin-adopt-me{background:#e6f4fa;margin-top:36px;padding:12px}.plugin-adopt-me .widget-title{margin-top:0}.plugin-adopt-me p{margin-bottom:0}.widget.plugin-categorization{margin-top:var(--wp--style--block-gap)}.widget.plugin-categorization .widget-head h2{font-size:var(--wp--preset--font-size--heading-4);margin-bottom:.2rem;margin-top:0}.widget.plugin-categorization .widget-head a{font-size:var(--wp--preset--font-size--small)}.widget.plugin-categorization .widget-head a[href=""]{display:none}.widget.plugin-categorization p{font-size:var(--wp--preset--font-size--small);margin-top:.5rem}.widget.plugin-categorization~.plugin-meta li:first-child{border-top:1px solid var(--wp--preset--color--light-grey-1)}.committer-list,.support-rep-list{list-style:none;margin:0;padding:0}.committer-list li,.support-rep-list li{padding-bottom:.5rem}.committer-list li .remove,.support-rep-list li .remove{color:red;visibility:hidden}.committer-list li:hover .remove,.support-rep-list li:hover .remove{visibility:visible}.committer-list .avatar,.support-rep-list .avatar{float:left;margin-right:10px}.committer-list .spinner,.support-rep-list .spinner{position:relative}.committer-list .spinner:after,.support-rep-list .spinner:after{background:url(/wp-admin/images/spinner.gif) no-repeat 50%;background-size:20px 20px;content:"";display:block;height:20px;margin:-10px -10px 0 0;position:absolute;right:-50%;top:50%;transform:translateZ(0);width:20px}@media (min-resolution:120dpi),print{.committer-list .spinner:after,.support-rep-list .spinner:after{background-image:url(/wp-admin/images/spinner-2x.gif)}}.committer-list .new,.support-rep-list .new{margin-top:var(--wp--style--block-gap)}.plugin-contributors.read-more{border-bottom:1px solid var(--wp--preset--color--light-grey-1);max-height:200px;overflow:hidden;padding-bottom:1px}.plugin-contributors.read-more.toggled{max-height:none}.no-js .plugin-contributors.read-more{max-height:none;overflow:auto}.contributors-list{list-style-type:none;margin:0;padding:0}.contributors-list li{align-items:center;display:flex;margin-bottom:1rem}.contributors-list .avatar{float:left;margin-right:10px}.plugin-meta{font-size:var(--wp--preset--font-size--small);margin-top:var(--wp--style--block-gap)}.plugin-meta ul{list-style-type:none;margin:0;padding:0}.plugin-meta li{border-top:1px solid var(--wp--preset--color--light-grey-1);display:inline-block;padding:.5rem 0;position:relative;width:100%}.plugin-meta li strong{float:right;font-weight:500}.plugin-meta li .plugin-admin{font-size:var(--wp--preset--font-size--normal);font-weight:400}.plugin-meta li:first-child{border-top:0}.plugin-meta .languages,.plugin-meta .tags{float:right;text-align:right}.plugin-meta .tags{width:60%}.plugin-meta .languages button{font-size:var(--wp--preset--font-size--small);outline:revert}.plugin-meta .languages .popover{margin-top:8px}.plugin-meta .languages .popover-trigger{color:var(--wp--custom--link--color--text);text-decoration:underline}.plugin-meta .languages .popover-trigger:hover{text-decoration:underline}.plugin-meta [rel=tag]{background:var(--wp--preset--color--blueberry-4);border-radius:2px;color:var(--wp--preset--color--charcoal-1);display:inline-block;font-size:var(--wp--preset--font-size--extra-small);margin:2px;max-width:95%;overflow:hidden;padding:3px 6px;position:relative;text-decoration:none;text-overflow:ellipsis;white-space:nowrap;width:auto}.plugin-meta [rel=tag]:hover{text-decoration:underline}.popover{background-color:#fff;border:1px solid var(--wp--preset--color--light-grey-1);border-radius:2px;box-shadow:0 2px 10px #0000001a;display:none;left:0;margin-top:10px;max-width:300px;padding:1em 1em 2em;position:absolute;width:100%;z-index:100}.popover.is-top-right{left:auto;right:0}.popover.is-visible{display:block}.popover .popover-close{bottom:.5em;color:var(--wp--custom--link--color--text);font-size:small;position:absolute;right:.6em}.popover .popover-close:active,.popover .popover-close:focus,.popover .popover-close:hover{text-decoration:underline}.popover .popover-arrow{border:10px solid #0000;border-bottom:10px solid #ccc;border-top:none;height:0;position:absolute;right:20px;top:-10px;width:0;z-index:-1}.popover .popover-arrow:after{border:10px solid #0000;border-bottom:10px solid #fff;border-top:none;content:"";left:-10px;position:absolute;top:2px}.popover .popover-inner{text-align:left}.popover .popover-inner p:first-child{margin-top:0}.popover .popover-inner p:last-child{margin-bottom:0}.plugin-support .counter-container{margin-bottom:1rem;position:relative}.plugin-support .counter-back,.plugin-support .counter-bar{display:inline-block;height:30px;vertical-align:middle}.plugin-support .counter-back{background-color:var(--wp--preset--color--light-grey-2);width:100%}.plugin-support .counter-bar{background-color:var(--wp--preset--color--acid-green-2);display:block}.plugin-support .counter-count{font-size:var(--wp--preset--font-size--extra-small);left:8px;position:absolute;top:8px;width:100%;width:calc(100% - 8px)}@media screen and (min-width:737px){.plugin-support .counter-count{top:5px}}.home .widget,.widget-area.home .widget{display:inline-block;font-size:var(--wp--preset--font-size--small);margin:0;margin:var(--wp--style--block-gap);vertical-align:top;width:auto}@media screen and (min-width:737px){.home .widget,.widget-area.home .widget{margin:0;width:30%}.home .widget:first-child,.widget-area.home .widget:first-child{margin-right:5%}.home .widget:last-child,.widget-area.home .widget:last-child{margin-left:5%}}.home .widget select,.widget-area.home .widget select{max-width:100%}.entry-meta .widget-title{font-size:var(--wp--preset--font-size--heading-4)}body.single.single-plugin .entry-meta{font-size:var(--wp--preset--font-size--normal)}.widget-area{margin:0 auto;padding:var(--wp--preset--spacing--40) 0}.widget-area .widget-title{font-size:var(--wp--preset--font-size--heading-1);font-weight:var(--wp--custom--heading--typography--font-weight);margin-top:var(--wp--preset--spacing--50)}.widget-area .textwidget{text-wrap:pretty} +======= +@charset "UTF-8";.avatar{border-radius:50%;vertical-align:middle}.wp-block-wporg-language-suggest>p{margin:0}.block-validator>details summary{padding:var(--wp--style--block-gap) 0}.block-validator .block-validator__plugin-form label{display:block;margin-bottom:.8em}.block-validator .block-validator__plugin-input-container{display:flex;max-width:34rem}.block-validator .block-validator__plugin-input{flex:1}.block-validator .block-validator__plugin-submit{flex:0;margin-left:4px}@media (max-width:36rem){.block-validator .block-validator__plugin-submit{width:100%}.block-validator .block-validator__plugin-input-container{display:block}.block-validator .block-validator__plugin-input{width:100%}.block-validator .block-validator__plugin-submit{margin-left:0;margin-top:var(--wp--style--block-gap)}}.block-validator .notice details,.block-validator .notice p{font-size:var(--wp--preset--font-size--normal);margin:var(--wp--style--block-gap) 0}.block-validator .notice details p{font-size:var(--wp--preset--font-size--small);margin-left:1rem}.block-validator .notice summary{display:list-item}.block-validator figure{border:1px solid #aaa;display:inline-block;padding:1em}.block-validator .test-screenshot{text-align:center}.block-validator .plugin-upload-form-controls{align-items:center;display:flex;gap:4px}.block-validator .plugin-upload-form-controls>label{border:1px solid var(--wp--custom--form--border--color);border-radius:var(--wp--custom--form--border--radius);cursor:pointer;min-width:200px;padding:4px 8px}.notice{background:#fff;border-left:4px solid #fff;box-shadow:0 1px 1px 0 #0000001a;font-size:var(--wp--preset--font-size--small);margin:var(--wp--style--block-gap) 0;padding:1px 12px}.notice p,.notice ul{margin:.5em 0;padding:2px}.notice pre{white-space:pre-wrap}.notice ul{list-style:none;margin:.5em}.notice.notice-alt{box-shadow:none}.notice.notice-large{padding:10px 20px}.notice.notice-success{border-left-color:#46b450}.notice.notice-success.notice-alt{background-color:#ecf7ed}.notice.notice-warning{border-left-color:#ffb900}.notice.notice-warning.notice-alt{background-color:#fff8e5}.notice.notice-error{border-left-color:#dc3232}.notice.notice-error.notice-alt{background-color:#fbeaea}.notice.notice-info{border-left-color:#00a0d2}.notice.notice-info.notice-alt{background-color:#e5f5fa}.notice.hidden{display:none}.plugin-upload-form.hidden{display:none}.plugin-upload-form fieldset{border:none;margin:0;padding:0}.plugin-upload-form legend{margin:1rem 0}.plugin-upload-form .category-checklist{list-style-type:none;margin:0 0 2rem}.plugin-upload-form .category-checklist li{float:left;padding:.5rem 0;width:50%}@media screen and (min-width:48em){.plugin-upload-form .category-checklist li{padding:0}.plugin-upload-form .category-checklist label{font-size:var(--wp--preset--font-size--small)}.plugin-upload-form label.button{line-height:1.8}}.plugin-upload-form .plugin-file{height:.1px;opacity:0;overflow:hidden;position:absolute;width:.1px;z-index:-1}.plugin-queue-message code{font-size:1em}.plugin-queue-message dialog.slug-change input[type=text]{font-family:monospace;font-size:1.2em;width:20em}:where(main) a:where(:not(.wp-element-button,.wp-block-wporg-link-wrapper)):focus,:where(main) button:where(:not([class*=wp-block-button])):focus{border-radius:2px;box-shadow:0 0 0 1.5px currentColor;outline:none}.wporg-filter-bar{--wporg--filter-bar--gap:20px;--wporg--filter-bar--color:#40464d;--wporg--filter-bar--active--background-color:var(--wp--custom--button--color--background);--wporg--filter-bar--focus--border-color:var(--wp--custom--button--focus--border--color);margin:var(--wp--style--block-gap) 0}.wporg-filter-bar .wporg-query-filter__toggle.is-active,.wporg-filter-bar .wporg-query-filter__toggle:active,.wporg-filter-bar .wporg-query-filter__toggle:focus{background-color:var(--wporg--filter-bar--active--background-color);color:var(--wp--custom--button--color--text)}.wporg-filter-bar .wporg-filter-bar__navigation{flex-grow:1;margin-bottom:var(--wporg--filter-bar--gap)}.wporg-filter-bar .wporg-filter-bar__navigation ul{display:inline-block;font-size:13px;line-height:1.538;list-style:none;margin:0;padding-left:0}.wporg-filter-bar .wporg-filter-bar__navigation ul li{display:inline-block}.wporg-filter-bar .wporg-filter-bar__navigation ul li+li{margin-left:8px}.wporg-filter-bar .wporg-filter-bar__navigation ul a{border-radius:2px;color:var(--wporg--filter-bar--color);display:block;padding:8px 12px;text-decoration:none}.wporg-filter-bar .wporg-filter-bar__navigation ul a:focus,.wporg-filter-bar .wporg-filter-bar__navigation ul a:hover{text-decoration:underline}.wporg-filter-bar .wporg-filter-bar__navigation ul a:focus-visible{box-shadow:none;outline:1.5px solid var(--wporg--filter-bar--focus--border-color);outline-offset:-.5px}.wporg-filter-bar .wporg-filter-bar__navigation ul a.is-active{background-color:var(--wporg--filter-bar--active--background-color);color:#fff}.wporg-filter-bar .wporg-filter-bar__navigation ul a.is-active:focus,.wporg-filter-bar .wporg-filter-bar__navigation ul a.is-active:hover{color:#fff}.wporg-filter-bar .wporg-filter-bar__navigation ul a.is-active:focus-visible{box-shadow:inset 0 0 0 1.5px #fff;outline:1.5px solid var(--wporg--filter-bar--focus--border-color);outline-offset:-.5px}@media screen and (min-width:737px){.wporg-filter-bar{align-items:center;display:flex;flex-wrap:wrap;gap:var(--wporg--filter-bar--gap);justify-content:space-between;width:100%}.wporg-filter-bar .wporg-filter-bar__navigation{margin-bottom:0}}.wp-block-search__inside-wrapper{background:var(--wp--preset--color--light-grey-2);border:none}.button-link{background:none;border:0;border-radius:0;box-shadow:none;cursor:pointer;margin:0;outline:none;padding:0}.button{background-color:var(--wp--custom--button--color--background);border:0;border-radius:var(--wp--custom--button--border--radius);color:var(--wp--custom--button--color--text);cursor:pointer;opacity:1;padding:calc(var(--wp--custom--button--small--spacing--padding--top) + var(--wp--custom--button--border--width)) calc(var(--wp--custom--button--small--spacing--padding--right) + var(--wp--custom--button--border--width)) calc(var(--wp--custom--button--small--spacing--padding--bottom) + var(--wp--custom--button--border--width)) calc(var(--wp--custom--button--small--spacing--padding--left) + var(--wp--custom--button--border--width));vertical-align:middle}.button.button-large{padding:calc(var(--wp--custom--button--spacing--padding--top) + var(--wp--custom--button--border--width)) calc(var(--wp--custom--button--spacing--padding--right) + var(--wp--custom--button--border--width)) calc(var(--wp--custom--button--spacing--padding--bottom) + var(--wp--custom--button--border--width)) calc(var(--wp--custom--button--spacing--padding--left) + var(--wp--custom--button--border--width))}input+button.button,select+button.button{margin-top:-3px}.button.disabled{cursor:not-allowed;opacity:.6}.wp-block-post-content a.button{text-decoration:none}pre{background-color:#f7f7f7;border:1px solid var(--wp--preset--color--light-grey-1);overflow:scroll;padding:20px}code,pre{border-radius:2px}code{background:var(--wp--preset--color--light-grey-2);display:inline-block;line-height:var(--wp--custom--body--extra-small--typography--line-height);max-width:100%;padding-inline-end:3px;padding-inline-start:3px}dialog{border:0;box-shadow:6px 6px 6px #0003;min-height:50%;min-width:30%}@media (min-width:1280px){dialog{max-width:55%}}dialog::backdrop{background:#000;opacity:.5}dialog .close{color:inherit;cursor:pointer;position:absolute;right:1em;text-decoration:none!important;top:1em}.plugin-card{display:flex;flex-direction:column;height:100%;justify-content:space-between}.plugin-card .entry{display:inline-block;vertical-align:top}.plugin-card .entry-title{display:block;display:-webkit-box;font-size:var(--wp--preset--font-size--heading-5);font-weight:500;line-height:1.3;margin-bottom:2px!important;max-height:2.6em;overflow:hidden;-webkit-line-clamp:2;-webkit-box-orient:vertical}.plugin-card .entry-title a{display:block;text-decoration:none}.plugin-card .entry-title a:focus{box-shadow:none}.plugin-card .entry-excerpt{clear:both;font-size:var(--wp--preset--font-size--small)}.plugin-card .entry-excerpt p{margin:0}.plugin-card footer{font-size:var(--wp--preset--font-size--small);margin-top:var(--wp--style--block-gap)}.plugin-card footer span{color:var(--wp--preset--color--charcoal-4);display:inline-block;line-height:var(--wp--preset--font-size--normal);overflow:hidden}.plugin-card footer span.plugin-author{width:100%}.plugin-card footer span.plugin-author span{color:var(--wp--preset--color--charcoal-1)}.plugin-card footer span.plugin-author path{fill:var(--wp--preset--color--charcoal-1)}.plugin-card footer span svg{height:24px;vertical-align:bottom;width:24px}.plugin-card footer span svg path{fill:var(--wp--preset--color--charcoal-4)}.plugin-card footer span.active-installs{min-width:48%}.plugin-cards{cursor:pointer}.plugin-cards .is-style-cards-grid li:hover{background-color:#fff!important;border:1px solid var(--wp--preset--color--charcoal-1)!important}.plugin-cards .is-style-cards-grid li:focus-within{border-color:#0000;border-radius:2px;box-shadow:0 0 0 1.5px var(--wp--custom--link--color--text)}@media screen and (max-width:737px){.plugin-cards .is-style-cards-grid{grid-template-columns:100%}}.entry-thumbnail{display:none;margin-bottom:var(--wp--style--block-gap);margin-right:var(--wp--style--block-gap);max-width:80px}.entry-thumbnail .plugin-icon{background-size:cover;border-radius:var(--wp--custom--button--border--radius);display:block;height:80px;width:80px}@media screen and (min-width:21em){.entry-thumbnail{display:inline-block;float:left;vertical-align:top}}.single .entry-thumbnail{display:none;float:left;height:96px;margin-bottom:0;max-width:96px}@media screen and (min-width:26em){.single .entry-thumbnail{display:block}}.single .entry-thumbnail .plugin-icon{background-size:contain!important;height:96px!important;width:96px!important}.plugin-rating{line-height:1;margin:0 10px 8px 0}.plugin-rating .wporg-ratings{display:inline-block;margin-right:5px}.plugin-rating .rating-count{color:var(--wp--preset--color--charcoal-4);font-size:var(--wp--preset--font-size--extra-small);vertical-align:text-bottom}.plugin-rating .rating-count a{color:inherit;cursor:hand;text-decoration:none}[class*=dashicons-star-]{color:var(--wp--preset--color--pomegrade-1)}.rtl .dashicons-star-half{transform:rotateY(180deg)}#main .plugin-section{margin:0 auto var(--wp--preset--spacing--60)}#main .plugin-section:last-of-type{margin-bottom:0}#main .plugin-section .section-header{align-items:center;column-gap:10px;display:flex;justify-content:space-between;margin-bottom:var(--wp--style--block-gap)}#main .plugin-section .section-header>h2{margin-bottom:0}#main .plugin-section .section-link{align-self:center;flex:0 0 auto;text-decoration:underline}.pagination .nav-links{margin-top:var(--wp--style--block-gap);padding-top:var(--wp--style--block-gap);text-align:center}.pagination .nav-links a{text-decoration:none}.pagination .nav-links .page-numbers{cursor:pointer;display:inline-block;min-width:2em;padding:8px;text-align:center}.pagination .nav-links .page-numbers.dots,.pagination .nav-links .page-numbers.next,.pagination .nav-links .page-numbers.prev{background:none;font-size:.9em;width:auto}.pagination .nav-links .page-numbers.dots{cursor:inherit}@media screen and (max-width:737px){.pagination .nav-links .page-numbers.next,.pagination .nav-links .page-numbers.prev{font-size:0;min-width:auto;padding:0}.pagination .nav-links .page-numbers.next:after,.pagination .nav-links .page-numbers.prev:before{display:inline-block;font-size:medium;line-height:1.5;min-width:2em;padding:8px}.pagination .nav-links .page-numbers.prev:before{content:"‹"}.pagination .nav-links .page-numbers.next:after{content:"›"}}.pagination .nav-links span.page-numbers{font-weight:700}.pagination .nav-links span.page-numbers.current{text-decoration:underline}@keyframes favme-anime{0%{font-size:var(--wp--preset--font-size--large);opacity:1;-webkit-text-stroke-color:#0000}25%{color:#fff;font-size:var(--wp--preset--font-size--small);opacity:.6;-webkit-text-stroke-width:1px;-webkit-text-stroke-color:#dc3232}75%{color:#fff;font-size:var(--wp--preset--font-size--large);opacity:.6;-webkit-text-stroke-width:1px;-webkit-text-stroke-color:#dc3232}to{font-size:var(--wp--preset--font-size--normal);opacity:1;-webkit-text-stroke-color:#0000}}.plugin-favorite{height:calc(var(--wp--custom--button--spacing--padding--top)*2 + var(--wp--preset--font-size--normal)*2);text-align:center;vertical-align:top;width:36px}.plugin-favorite .plugin-favorite-heart{align-items:center;background:none;border:0;border-radius:0;box-shadow:none;color:#cbcdce;cursor:pointer;display:flex;font-size:var(--wp--preset--font-size--large);height:100%;justify-content:center;line-height:1;margin:0;outline:none;padding:0;text-decoration:none}.plugin-favorite .plugin-favorite-heart.favorited{color:#dc3232}.plugin-favorite .plugin-favorite-heart:focus,.plugin-favorite .plugin-favorite-heart:hover{color:var(----wp--preset--color--charcoal-2);text-decoration:none}.plugin-favorite .plugin-favorite-heart:after{content:"\f487";font-family:dashicons;vertical-align:top}.plugin-banner img{aspect-ratio:3.089;border-radius:var(--wp--custom--button--border--radius);display:block;margin:0 auto var(--wp--preset--spacing--30);width:100%}.plugin-releases{list-style-type:none;padding:0}.plugin-releases-item{border:1px solid var(--wp--preset--color--light-grey-1);border-radius:4px;margin-bottom:var(--wp--preset--spacing--30);padding:var(--wp--style--block-gap)}.plugin-releases-item-header{display:flex;justify-content:space-between}.plugin-releases-item-header h3{margin:0!important}@keyframes hideAnimation{to{visibility:hidden}}.categorization .help{color:var(--wp--preset--color--charcoal-4);display:inline-block;font-size:.8rem;margin-top:0}.categorization label{display:block;font-weight:700}.categorization input{width:100%}.categorization .success-msg{background:#eff7ed;border:solid #64b450;border-width:0 0 0 5px;font-size:.8rem;margin-left:1rem;opacity:0;overflow:auto;padding:.1rem .6rem .2rem;position:relative;transition:visibility 0s,opacity .5s linear;-webkit-user-select:none;user-select:none;visibility:hidden}.categorization .success-msg.saved{animation:hideAnimation 0s ease-in 5s;animation-fill-mode:forwards;opacity:1;visibility:visible}.plugin-changelog code{font-size:var(--wp--preset--font-size--small)}.plugin-developers .contributors-list li{align-items:center;display:flex;padding-bottom:var(--wp--style--block-gap)}@media screen and (min-width:500px){.plugin-developers .contributors-list{display:flex;flex-wrap:wrap}.plugin-developers .contributors-list li{padding-bottom:unset;width:50%}}.plugin-faq dl{border-bottom:1px solid var(--wp--preset--color--light-grey-1)}.plugin-faq dt{border-top:1px solid var(--wp--preset--color--light-grey-1);cursor:pointer;padding:1rem 0}.plugin-faq dt:before{content:"\f347";float:right;font-family:dashicons;margin:0 1rem}.plugin-faq dt.open:before{content:"\f343"}.plugin-faq dt .button-link{display:inherit;text-align:inherit}.plugin-faq dt .button-link.no-focus{box-shadow:none;outline:none}.plugin-faq dt h3{color:var(--wp--custom--link--color--text);display:inline;font-size:var(--wp--preset--font-size--normal);font-weight:400;margin-bottom:0;margin-top:0!important;text-decoration:underline}.plugin-faq dt h3 button{all:inherit;max-width:calc(100% - 60px)}.plugin-faq dt h3 button:focus,.plugin-faq dt h3 button:hover{text-decoration:underline}.plugin-faq dd{display:none;margin:0 0 1rem}.no-js .plugin-faq dd{display:block}.plugin-faq dd p{margin:0}.plugin-faq dd p+p{margin-top:1rem}.image-gallery{-webkit-user-select:none;user-select:none}.image-gallery-content{position:relative}.image-gallery-content .image-gallery-left-nav,.image-gallery-content .image-gallery-right-nav{border-color:var(--wp--preset--color--light-grey-1);display:none;font-size:48px;height:100%;position:absolute;top:0;transition:background .1s ease,border .1s ease;z-index:4}@media (max-width:768px){.image-gallery-content .image-gallery-left-nav,.image-gallery-content .image-gallery-right-nav{font-size:3.4em}}@media (min-width:768px){.image-gallery-content .image-gallery-left-nav:hover,.image-gallery-content .image-gallery-right-nav:hover{background:#fff;border:1px solid var(--wp--preset--color--light-grey-1);opacity:.8}}.image-gallery-content .image-gallery-left-nav:before,.image-gallery-content .image-gallery-right-nav:before{font-family:dashicons;position:relative}.image-gallery-content .image-gallery-left-nav{left:0}.image-gallery-content .image-gallery-left-nav:before{content:"\f341"}.image-gallery-content .image-gallery-left-nav:hover{margin-left:-1px}.image-gallery-content .image-gallery-right-nav{right:0}.image-gallery-content .image-gallery-right-nav:before{content:"\f345"}.image-gallery-content .image-gallery-right-nav:hover{margin-right:-1px}.image-gallery-content:hover .image-gallery-left-nav,.image-gallery-content:hover .image-gallery-right-nav{display:block}.image-gallery-slides{border:1px solid #eee;line-height:0;overflow:hidden;position:relative;white-space:nowrap}.image-gallery-slide{left:0;position:absolute;top:0;width:100%}.image-gallery-slide.center{position:relative}.image-gallery-slide .image-gallery-image{margin:0}.image-gallery-slide img{display:block;margin:0 auto}.image-gallery-slide .image-gallery-description{background:var(--wp--preset--color--light-grey-2);color:var(--wp--preset--color--charcoal-1);font-size:var(--wp--preset--font-size--small);line-height:1.5;padding:10px 20px;white-space:normal}@media (max-width:768px){.image-gallery-slide .image-gallery-description{padding:8px 15px}}.image-gallery-thumbnails{background:#fff;margin-top:5px}.image-gallery-thumbnails .image-gallery-thumbnails-container{cursor:pointer;text-align:center;white-space:nowrap}.image-gallery-thumbnail{border:1px solid #eee;display:table-cell;margin-right:5px;max-height:100px;overflow:hidden}.image-gallery-thumbnail .image-gallery-image{margin:0}.image-gallery-thumbnail img{vertical-align:middle;width:100px}@media (max-width:768px){.image-gallery-thumbnail img{width:75px}}.image-gallery-thumbnail:hover{box-shadow:0 1px 8px #0000004d}.image-gallery-thumbnail.active{border:1px solid #337ab7}.image-gallery-thumbnail-label{color:#222;font-size:1em}@media (max-width:768px){.image-gallery-thumbnail-label{font-size:.8em}}.image-gallery-index{background:#0006;bottom:0;color:#fff;line-height:1;padding:10px 20px;position:absolute;right:0;z-index:4}.plugin-reviews{list-style-type:none;margin:0;padding:0}.plugin-reviews .plugin-review{border-bottom:1px solid var(--wp--preset--color--light-grey-1);margin:2rem 0 1rem;padding-bottom:1rem}.plugin-reviews .plugin-review a{text-decoration:none}.plugin-reviews .plugin-review:first-child{margin-top:0}.plugin-reviews .plugin-review .header-top{display:flex}.plugin-reviews .plugin-review .header-top .wporg-ratings{flex-shrink:0}.plugin-reviews .plugin-review .header-bottom{display:flex;margin-top:4px}.plugin-reviews .review-avatar{display:none}.plugin-reviews .review,.plugin-reviews .review-author,.plugin-reviews .wporg-ratings{display:inline-block;vertical-align:top}.plugin-reviews .review-header{margin:0 0 .5rem}.plugin-reviews .review-title{font-size:var(--wp--preset--font-size--normal);font-weight:500;margin:2px 0 0 12px!important;text-transform:inherit}.plugin-reviews .review-author,.plugin-reviews .review-date,.plugin-reviews .review-replies{font-size:var(--wp--preset--font-size--extra-small);line-height:1.25}.plugin-reviews .review-date,.plugin-reviews .review-replies{color:var(--wp--preset--color--charcoal-4);font-size:var(--wp--preset--font-size--extra-small);margin-left:12px}.plugin-reviews .review-replies:before{content:"•";margin-right:12px}.plugin-reviews .review-content{margin:1em 0}@media screen and (min-width:737px){.plugin-reviews .review-avatar{display:inline-block;vertical-align:top}.plugin-reviews .review-avatar .avatar{margin-right:1rem}.plugin-reviews .review{width:calc(100% - 60px - 1rem)}.plugin-reviews .review-header{margin:0}.plugin-reviews .review-author,.plugin-reviews .review-date,.plugin-reviews .review-replies{line-height:1}}.plugin-reviews .reviews-link{display:inline-block;font-size:var(--wp--preset--font-size--small);text-decoration:none}.plugin-reviews .reviews-link:after{content:"\f345";float:right;font-family:dashicons;padding-left:5px;position:relative;top:1px;vertical-align:text-top}.plugin-screenshots{list-style-type:none;margin:0;padding:0}.plugin-screenshots .image-gallery-content{display:table;width:100%}.plugin-screenshots .image-gallery-slides{display:table-cell;max-height:600px}.plugin-screenshots .image-gallery-image img{max-height:550px;max-width:100%}.plugin-screenshots .image-gallery-thumbnail{vertical-align:top}.plugin-screenshots .image-gallery-thumbnail img{max-height:100px}.plugin-screenshots .image-gallery-thumbnails{overflow:hidden}.download-history-stats td{text-align:right}.previous-versions{max-width:60%}@media screen and (min-width:737px){.previous-versions{height:32px;vertical-align:middle}}hr{margin:2.5rem auto}.section h1:nth-child(2),.section h2:nth-child(2),.section h3:nth-child(2),.section h4:nth-child(2),.section h5:nth-child(2),.section h6:nth-child(2){margin-top:0}.section-heading{font-family:var(--wp--preset--font-family--inter)!important;font-size:var(--wp--preset--font-size--heading-5)!important;font-style:normal;font-weight:600;line-height:var(--wp--custom--heading--level-5--typography--line-height)}.section-intro{color:var(--wp--preset--color--charcoal-4);font-size:var(--wp--preset--font-size--small);margin-bottom:var(--wp--preset--spacing--20);margin-top:var(--wp--preset--spacing--10)}.type-plugin .plugin-notice{margin-top:0}.type-plugin .plugin-header{border-bottom:0;padding-top:var(--wp--preset--spacing--40)}.type-plugin .plugin-header:after,.type-plugin .plugin-header:before{content:"";display:table;table-layout:fixed}.type-plugin .plugin-header:after{clear:both}.type-plugin .plugin-header .entry-heading-container{display:flex;flex-direction:column;justify-content:space-between}@media screen and (max-width:599px){.type-plugin .plugin-header .entry-heading-container{--wp--custom--button--spacing--padding--top:12px;--wp--custom--button--spacing--padding--bottom:12px;--wp--custom--button--spacing--padding--left:16px;--wp--custom--button--spacing--padding--right:16px}}@media screen and (min-width:700px){.type-plugin .plugin-header .entry-heading-container{flex-direction:row}}.type-plugin .plugin-header .entry-heading-container>:first-child{align-items:center;display:flex;flex:1}.type-plugin .plugin-header .plugin-actions{align-items:center;display:flex;gap:16px;margin-top:var(--wp--style--block-gap)}@media screen and (min-width:700px){.type-plugin .plugin-header .plugin-actions{margin-top:0;margin-inline-start:1rem}}.type-plugin .plugin-header .plugin-actions>.button,.type-plugin .plugin-header .plugin-actions>div{display:inline-block;text-align:center}@media screen and (max-width:34em){.type-plugin .plugin-header .plugin-actions>.button.download-button{display:none}}.type-plugin .plugin-header .plugin-title{clear:none;font-size:var(--wp--preset--font-size--heading-3);font-weight:400;line-height:var(--wp--custom--heading--level-3--typography--line-height);margin:0}.type-plugin .plugin-header .plugin-title a{color:inherit;text-decoration:none}.type-plugin .plugin-header .plugin-title a:hover{text-decoration:underline}.type-plugin .plugin-header .byline{color:var(--wp--preset--color--charcoal-4);display:block;margin-top:4px}.type-plugin .plugin-banner+.plugin-header{padding-top:0}.type-plugin .plugin-banner+.plugin-header>.notice:first-of-type{margin-top:0}.type-plugin .tabs{border-bottom:1px solid var(--wp--preset--color--light-grey-1);list-style:none;margin:0}.type-plugin .tabs li{border:1px solid #0000;display:inline-block;font-size:.9rem;margin-bottom:-1px;transition:background .2s ease}.type-plugin .tabs li a{background:#fff;border:0;color:var(--wp--preset--color--charcoal-1);display:block;font-size:var(--wp--preset--font-size--normal);padding:.64rem 1.25rem;text-decoration:none}.type-plugin .tabs li a.active,.type-plugin .tabs li a:hover{background:var(--wp--preset--color--light-grey-2)!important}.type-plugin .tabs li.active,.type-plugin .tabs li:hover{border:1px solid var(--wp--preset--color--light-grey-1)}@media screen and (max-width:38em){.type-plugin .tabs{border-top:1px solid var(--wp--preset--color--light-grey-1)}.type-plugin .tabs li{display:block;margin-bottom:1px}.type-plugin .tabs li,.type-plugin .tabs li.active,.type-plugin .tabs li:hover{border:none;border-bottom:1px solid var(--wp--preset--color--light-grey-1)}}@media screen and (min-width:737px){.type-plugin .entry-content{float:left;padding:0;width:65%}}.type-plugin .entry-content>div,.type-plugin .entry-content>div~button{border:0;display:none}.type-plugin .entry-content ol>li>p,.type-plugin .entry-content ul>li>p{margin:0}.type-plugin .entry-content #admin{display:block!important}.type-plugin .plugin-blocks-list{list-style:none;margin-left:0;padding-left:0}.type-plugin .plugin-blocks-list .plugin-blocks-list-item{display:grid;grid-template-columns:auto 1fr;margin-bottom:var(--wp--style--block-gap)}.type-plugin .plugin-blocks-list .block-icon{border:1px solid var(--wp--preset--color--light-grey-1);border-radius:2px;display:inline-block;height:3.5rem;line-height:16px;margin-right:var(--wp--style--block-gap);padding:var(--wp--style--block-gap);width:3.5rem}.type-plugin .plugin-blocks-list .block-icon.dashicons{color:inherit}.type-plugin .plugin-blocks-list .block-icon.dashicons:before{margin-left:-3px}.type-plugin .plugin-blocks-list .block-icon svg{height:16px;width:16px;fill:currentColor;margin-left:-1px}.type-plugin .plugin-blocks-list .block-title{align-self:center;font-weight:700}.type-plugin .plugin-blocks-list .has-description .block-icon{grid-row:1/span 2}.type-plugin .plugin-blocks-list .has-description .block-title{margin-bottom:.4em}.type-plugin span#description,.type-plugin span#developers,.type-plugin span#installation,.type-plugin span#releases,.type-plugin span#reviews{position:fixed}.type-plugin span#advanced.displayed~#section-links .tabs li#tablink-advanced,.type-plugin span#developers:target~#section-links .tabs li#tablink-developers,.type-plugin span#installation:target~#section-links .tabs li#tablink-installation,.type-plugin span#releases:target~#section-links .tabs li#tablink-releases,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~span#advanced:not(.displayed)~#section-links .tabs li#tablink-description,.type-plugin span#reviews:target~#section-links .tabs li#tablink-reviews{background:#fff;border:1px solid var(--wp--preset--color--light-grey-1);border-bottom:0;padding-bottom:1px}@media screen and (max-width:38em){.type-plugin span#advanced.displayed~#section-links .tabs li#tablink-advanced.active,.type-plugin span#advanced.displayed~#section-links .tabs li#tablink-advanced:hover,.type-plugin span#developers:target~#section-links .tabs li#tablink-developers.active,.type-plugin span#developers:target~#section-links .tabs li#tablink-developers:hover,.type-plugin span#installation:target~#section-links .tabs li#tablink-installation.active,.type-plugin span#installation:target~#section-links .tabs li#tablink-installation:hover,.type-plugin span#releases:target~#section-links .tabs li#tablink-releases.active,.type-plugin span#releases:target~#section-links .tabs li#tablink-releases:hover,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~span#advanced:not(.displayed)~#section-links .tabs li#tablink-description.active,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~span#advanced:not(.displayed)~#section-links .tabs li#tablink-description:hover,.type-plugin span#reviews:target~#section-links .tabs li#tablink-reviews.active,.type-plugin span#reviews:target~#section-links .tabs li#tablink-reviews:hover{padding-bottom:1px!important}}.type-plugin span#section-links{display:flex;flex-flow:row wrap;margin-top:var(--wp--preset--spacing--30)}.type-plugin span#section-links .tabs{flex:1 1 auto;padding-left:0}@media screen and (max-width:38em){.type-plugin span#section-links .tabs{border:1px solid var(--wp--preset--color--light-grey-1)!important}.type-plugin span#section-links .tabs li{border:none!important}.type-plugin span#section-links{display:block}}.type-plugin #link-support{align-self:flex-end;border-bottom:1px solid var(--wp--preset--color--light-grey-1);flex:0 0 auto;font-size:.9rem}.type-plugin #link-support a{display:inline-block;font-size:var(--wp--preset--font-size--normal);padding:.64rem 0 .64rem 1.25rem}@media screen and (max-width:38em){.type-plugin #link-support{border-bottom:0;display:block;width:100%}.type-plugin #link-support a{padding-right:1.25rem}}.type-plugin span#developers:target~.entry-content #tab-changelog,.type-plugin span#developers:target~.entry-content #tab-developers,.type-plugin span#developers:target~.entry-content #tab-developers .plugin-development,.type-plugin span#developers:target~.entry-content #tab-developers~button,.type-plugin span#installation:target~.entry-content #tab-installation,.type-plugin span#releases:target~.entry-content #tab-releases,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~.entry-content #blocks,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~.entry-content #faq,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~.entry-content #screenshots,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~.entry-content #tab-description,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~.entry-content #tab-developers,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~.entry-content #tab-developers~button,.type-plugin span#reviews:target~.entry-content #tab-reviews{display:block}.type-plugin span#developers:target~.entry-content #tab-developers .plugin-contributors,.type-plugin span#installation:target~.entry-meta .plugin-contributors,.type-plugin span#releases:target~.entry-meta,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~.entry-content #tab-developers .plugin-development,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~.entry-meta .plugin-contributors,.type-plugin span#reviews:target~.entry-meta .plugin-contributors,.type-plugin span#reviews:target~.entry-meta .plugin-donate,.type-plugin span#reviews:target~.entry-meta .plugin-meta,.type-plugin span#reviews:target~.entry-meta .plugin-support{display:none}.type-plugin span#releases:target~.entry-content{width:100%}@media screen and (min-width:737px){.type-plugin .entry-content,.type-plugin .entry-meta{padding-left:0;padding-right:0}.type-plugin .entry-meta{float:right;width:30%}}.type-plugin .plugin-danger-zone h4{margin-top:var(--wp--preset--spacing--60)}.plugin-releases-listing{border-collapse:collapse;width:100%}.plugin-releases-listing tbody td:nth-child(4) div{font-size:14px}.plugin-releases-listing-actions{display:flex;flex-direction:column;gap:8px}@media screen and (min-width:34em){.plugin-releases-listing-actions{flex-direction:row}}.plugin-adopt-me{background:#e6f4fa;margin-top:36px;padding:12px}.plugin-adopt-me .widget-title{margin-top:0}.plugin-adopt-me p{margin-bottom:0}.widget.plugin-categorization{margin-top:var(--wp--style--block-gap)}.widget.plugin-categorization .widget-head h2{font-size:var(--wp--preset--font-size--heading-4);margin-bottom:.2rem;margin-top:0}.widget.plugin-categorization .widget-head a{font-size:var(--wp--preset--font-size--small)}.widget.plugin-categorization .widget-head a[href=""]{display:none}.widget.plugin-categorization p{font-size:var(--wp--preset--font-size--small);margin-top:.5rem}.widget.plugin-categorization~.plugin-meta li:first-child{border-top:1px solid var(--wp--preset--color--light-grey-1)}.committer-list,.support-rep-list{list-style:none;margin:0;padding:0}.committer-list li,.support-rep-list li{padding-bottom:.5rem}.committer-list li .remove,.support-rep-list li .remove{color:red;visibility:hidden}.committer-list li:hover .remove,.support-rep-list li:hover .remove{visibility:visible}.committer-list .avatar,.support-rep-list .avatar{float:left;margin-right:10px}.committer-list .spinner,.support-rep-list .spinner{position:relative}.committer-list .spinner:after,.support-rep-list .spinner:after{background:url(/wp-admin/images/spinner.gif) no-repeat 50%;background-size:20px 20px;content:"";display:block;height:20px;margin:-10px -10px 0 0;position:absolute;right:-50%;top:50%;transform:translateZ(0);width:20px}@media (min-resolution:120dpi),print{.committer-list .spinner:after,.support-rep-list .spinner:after{background-image:url(/wp-admin/images/spinner-2x.gif)}}.committer-list .new,.support-rep-list .new{margin-top:var(--wp--style--block-gap)}.plugin-contributors.read-more{border-bottom:1px solid var(--wp--preset--color--light-grey-1);max-height:200px;overflow:hidden;padding-bottom:1px}.plugin-contributors.read-more.toggled{max-height:none}.no-js .plugin-contributors.read-more{max-height:none;overflow:auto}.contributors-list{list-style-type:none;margin:0;padding:0}.contributors-list li{align-items:center;display:flex;margin-bottom:1rem}.contributors-list .avatar{float:left;margin-right:10px}.plugin-meta{font-size:var(--wp--preset--font-size--small);margin-top:var(--wp--style--block-gap)}.plugin-meta ul{list-style-type:none;margin:0;padding:0}.plugin-meta li{border-top:1px solid var(--wp--preset--color--light-grey-1);display:inline-block;padding:.5rem 0;position:relative;width:100%}.plugin-meta li strong{float:right;font-weight:500}.plugin-meta li .plugin-admin{font-size:var(--wp--preset--font-size--normal);font-weight:400}.plugin-meta li:first-child{border-top:0}.plugin-meta .languages,.plugin-meta .tags{float:right;text-align:right}.plugin-meta .tags{width:60%}.plugin-meta .languages button{font-size:var(--wp--preset--font-size--small);outline:revert}.plugin-meta .languages .popover{margin-top:8px}.plugin-meta .languages .popover-trigger{color:var(--wp--custom--link--color--text);text-decoration:underline}.plugin-meta .languages .popover-trigger:hover{text-decoration:underline}.plugin-meta [rel=tag]{background:var(--wp--preset--color--blueberry-4);border-radius:2px;color:var(--wp--preset--color--charcoal-1);display:inline-block;font-size:var(--wp--preset--font-size--extra-small);margin:2px;max-width:95%;overflow:hidden;padding:3px 6px;position:relative;text-decoration:none;text-overflow:ellipsis;white-space:nowrap;width:auto}.plugin-meta [rel=tag]:hover{text-decoration:underline}.popover{background-color:#fff;border:1px solid var(--wp--preset--color--light-grey-1);border-radius:2px;box-shadow:0 2px 10px #0000001a;display:none;left:0;margin-top:10px;max-width:300px;padding:1em 1em 2em;position:absolute;width:100%;z-index:100}.popover.is-top-right{left:auto;right:0}.popover.is-visible{display:block}.popover .popover-close{bottom:.5em;color:var(--wp--custom--link--color--text);font-size:small;position:absolute;right:.6em}.popover .popover-close:active,.popover .popover-close:focus,.popover .popover-close:hover{text-decoration:underline}.popover .popover-arrow{border:10px solid #0000;border-bottom:10px solid #ccc;border-top:none;height:0;position:absolute;right:20px;top:-10px;width:0;z-index:-1}.popover .popover-arrow:after{border:10px solid #0000;border-bottom:10px solid #fff;border-top:none;content:"";left:-10px;position:absolute;top:2px}.popover .popover-inner{text-align:left}.popover .popover-inner p:first-child{margin-top:0}.popover .popover-inner p:last-child{margin-bottom:0}.plugin-support .counter-container{margin-bottom:1rem;position:relative}.plugin-support .counter-back,.plugin-support .counter-bar{display:inline-block;height:30px;vertical-align:middle}.plugin-support .counter-back{background-color:var(--wp--preset--color--light-grey-2);width:100%}.plugin-support .counter-bar{background-color:var(--wp--preset--color--acid-green-2);display:block}.plugin-support .counter-count{font-size:var(--wp--preset--font-size--extra-small);left:8px;position:absolute;top:8px;width:100%;width:calc(100% - 8px)}@media screen and (min-width:737px){.plugin-support .counter-count{top:5px}}.home .widget,.widget-area.home .widget{display:inline-block;font-size:var(--wp--preset--font-size--small);margin:0;margin:var(--wp--style--block-gap);vertical-align:top;width:auto}@media screen and (min-width:737px){.home .widget,.widget-area.home .widget{margin:0;width:30%}.home .widget:first-child,.widget-area.home .widget:first-child{margin-right:5%}.home .widget:last-child,.widget-area.home .widget:last-child{margin-left:5%}}.home .widget select,.widget-area.home .widget select{max-width:100%}.entry-meta .widget-title{font-size:var(--wp--preset--font-size--heading-4)}body.single.single-plugin .entry-meta{font-size:var(--wp--preset--font-size--normal)}.widget-area{margin:0 auto;padding:var(--wp--preset--spacing--40) 0}.widget-area .widget-title{font-size:var(--wp--preset--font-size--heading-1);font-weight:var(--wp--custom--heading--typography--font-weight);margin-top:var(--wp--preset--spacing--50)}.widget-area .textwidget{text-wrap:pretty} +>>>>>>> try/release-page diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/functions.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/functions.php index 04720253b3..0951db315a 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/functions.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/functions.php @@ -21,6 +21,10 @@ require_once( __DIR__ . '/src/blocks/search-page/index.php' ); require_once( __DIR__ . '/src/blocks/single-plugin/index.php' ); require_once( __DIR__ . '/src/blocks/plugin-card/index.php' ); +require_once( __DIR__ . '/src/blocks/release-checks/index.php' ); +require_once( __DIR__ . '/src/blocks/release-changelog/index.php' ); +require_once( __DIR__ . '/src/blocks/release-confirmation/index.php' ); +require_once( __DIR__ . '/src/blocks/release-status/index.php' ); // Block Configs require_once( __DIR__ . '/inc/block-bindings.php' ); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/parts/releases.html b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/parts/releases.html new file mode 100644 index 0000000000..45dfa8ba75 --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/parts/releases.html @@ -0,0 +1,51 @@ + +

Releases

+ + + +
+ + +
+ + +
+ +
+ +
+ + +
+ + + + +
+ + +

🔨

+ +
+ +
+ + + + +
+ + + + + + + + + + +
+ + +
+ diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/patterns/releases-no-results.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/patterns/releases-no-results.php new file mode 100644 index 0000000000..31e9c82eac --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/patterns/releases-no-results.php @@ -0,0 +1,15 @@ + + + + + +

+ + \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-changelog/block.json b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-changelog/block.json new file mode 100644 index 0000000000..bf6cfbf0b2 --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-changelog/block.json @@ -0,0 +1,18 @@ +{ + "$schema": "https://schemas.wp.org/trunk/block.json", + "apiVersion": 2, + "name": "wporg/release-changelog", + "version": "0.1.0", + "title": "Displays release changelog.", + "category": "design", + "icon": "", + "description": "A block to display release changelog", + "textdomain": "wporg", + "attributes": {}, + "supports": { + "html": false + }, + "editorScript": "file:./index.js", + "render": "file:./render.php", + "style": "file:./style-index.css" +} \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-changelog/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-changelog/index.js new file mode 100644 index 0000000000..a52cd322ed --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-changelog/index.js @@ -0,0 +1,28 @@ +/** + * WordPress dependencies + */ +import { Disabled } from '@wordpress/components'; +import { registerBlockType } from '@wordpress/blocks'; +import ServerSideRender from '@wordpress/server-side-render'; +import { useBlockProps } from '@wordpress/block-editor'; + +/** + * Internal dependencies + */ +import metadata from './block.json'; +import './style.scss'; + +function Edit( { attributes, name } ) { + return ( +
+ + + +
+ ); +} + +registerBlockType( metadata.name, { + edit: Edit, + save: () => null, +} ); \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-changelog/index.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-changelog/index.php new file mode 100644 index 0000000000..7e51f7c6a4 --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-changelog/index.php @@ -0,0 +1,22 @@ + +
  • First Item
  • +
  • Second Item
  • + diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-changelog/style.scss b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-changelog/style.scss new file mode 100644 index 0000000000..e69de29bb2 diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-checks/block.json b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-checks/block.json new file mode 100644 index 0000000000..9902a69dfe --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-checks/block.json @@ -0,0 +1,19 @@ +{ + "$schema": "https://schemas.wp.org/trunk/block.json", + "apiVersion": 2, + "name": "wporg/release-checks", + "version": "0.1.0", + "title": "Displays release checks.", + "category": "design", + "icon": "", + "description": "A block to display release checks", + "textdomain": "wporg", + "attributes": {}, + "supports": { + "html": false + }, + "usesContext": [ "postId" ], + "editorScript": "file:./index.js", + "render": "file:./render.php", + "style": "file:./style-index.css" +} \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-checks/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-checks/index.js new file mode 100644 index 0000000000..a52cd322ed --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-checks/index.js @@ -0,0 +1,28 @@ +/** + * WordPress dependencies + */ +import { Disabled } from '@wordpress/components'; +import { registerBlockType } from '@wordpress/blocks'; +import ServerSideRender from '@wordpress/server-side-render'; +import { useBlockProps } from '@wordpress/block-editor'; + +/** + * Internal dependencies + */ +import metadata from './block.json'; +import './style.scss'; + +function Edit( { attributes, name } ) { + return ( +
    + + + +
    + ); +} + +registerBlockType( metadata.name, { + edit: Edit, + save: () => null, +} ); \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-checks/index.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-checks/index.php new file mode 100644 index 0000000000..18888f6111 --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-checks/index.php @@ -0,0 +1,22 @@ +context['postId']; +if ( ! $current_post_id ) { + return; +} + +if ( 'publish' === get_post_status( $block->context['postId'] ) ) { + return; +} + +?> + + +

    + + + diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-checks/style.scss b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-checks/style.scss new file mode 100644 index 0000000000..e69de29bb2 diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-confirmation/block.json b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-confirmation/block.json new file mode 100644 index 0000000000..d48d6f4dc3 --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-confirmation/block.json @@ -0,0 +1,19 @@ +{ + "$schema": "https://schemas.wp.org/trunk/block.json", + "apiVersion": 2, + "name": "wporg/release-confirmation", + "version": "0.1.0", + "title": "Release confirmation banner.", + "category": "design", + "icon": "", + "description": "A block to display release confirmation banner.", + "textdomain": "wporg", + "attributes": {}, + "supports": { + "html": false + }, + "usesContext": [ "postId" ], + "editorScript": "file:./index.js", + "render": "file:./render.php", + "style": "file:./style-index.css" +} \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-confirmation/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-confirmation/index.js new file mode 100644 index 0000000000..a52cd322ed --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-confirmation/index.js @@ -0,0 +1,28 @@ +/** + * WordPress dependencies + */ +import { Disabled } from '@wordpress/components'; +import { registerBlockType } from '@wordpress/blocks'; +import ServerSideRender from '@wordpress/server-side-render'; +import { useBlockProps } from '@wordpress/block-editor'; + +/** + * Internal dependencies + */ +import metadata from './block.json'; +import './style.scss'; + +function Edit( { attributes, name } ) { + return ( +
    + + + +
    + ); +} + +registerBlockType( metadata.name, { + edit: Edit, + save: () => null, +} ); \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-confirmation/index.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-confirmation/index.php new file mode 100644 index 0000000000..faf563e52b --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-confirmation/index.php @@ -0,0 +1,22 @@ +context['postId']; +if ( ! $current_post_id ) { + return; +} + +$post = get_post( $block->context['postId'] ); +if ( ! $post ) { + return; +} + +if( 'publish' === $post->post_status) { + return; +} + +$copy = sprintf( + 'This release was last updated on %s by %s.', + date_i18n( get_option( 'date_format' ) . ' ' . get_option( 'time_format' ), strtotime( $post->post_modified ) ), + get_the_author_meta( 'display_name', $post->post_author ) +); + +?> + +
    > + + +
    +

    + + + +

    + + + +
    +
    +
    + + + +
    +
    +
    +
    + + + + + + +
    + + + diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-confirmation/style.scss b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-confirmation/style.scss new file mode 100644 index 0000000000..59531e6682 --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-confirmation/style.scss @@ -0,0 +1,3 @@ +.wp-block-wporg-release-confirmation .wp-block-buttons { + display: flex; // I'm not sure why they are not working. +} \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-status/block.json b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-status/block.json new file mode 100644 index 0000000000..e99dadbaa8 --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-status/block.json @@ -0,0 +1,19 @@ +{ + "$schema": "https://schemas.wp.org/trunk/block.json", + "apiVersion": 2, + "name": "wporg/release-status", + "version": "0.1.0", + "title": "Displays release status.", + "category": "design", + "icon": "", + "description": "A block to display release status", + "textdomain": "wporg", + "attributes": {}, + "supports": { + "html": false + }, + "usesContext": [ "postId" ], + "editorScript": "file:./index.js", + "render": "file:./render.php", + "style": "file:./style-index.css" +} \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-status/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-status/index.js new file mode 100644 index 0000000000..a52cd322ed --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-status/index.js @@ -0,0 +1,28 @@ +/** + * WordPress dependencies + */ +import { Disabled } from '@wordpress/components'; +import { registerBlockType } from '@wordpress/blocks'; +import ServerSideRender from '@wordpress/server-side-render'; +import { useBlockProps } from '@wordpress/block-editor'; + +/** + * Internal dependencies + */ +import metadata from './block.json'; +import './style.scss'; + +function Edit( { attributes, name } ) { + return ( +
    + + + +
    + ); +} + +registerBlockType( metadata.name, { + edit: Edit, + save: () => null, +} ); \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-status/index.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-status/index.php new file mode 100644 index 0000000000..98e415afd3 --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-status/index.php @@ -0,0 +1,22 @@ +context['postId']; +if ( ! $current_post_id ) { + return; +} + +$post = get_post( $block->context['postId'] ); +if ( ! $post ) { + return; +} +?> + +
    > +post_status)->label; ?> +
    diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-status/style.scss b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-status/style.scss new file mode 100644 index 0000000000..368331bcf3 --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-status/style.scss @@ -0,0 +1,6 @@ +.wp-block-wporg-release-status { + padding: 2px 10px; + border: 1px solid var(--wp--preset--color--blueberry-3); + font-size: var(--wp--preset--font-size--extra-small); + border-radius: var(--wp--custom--button--border--radius); +} \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/releases/block.json b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/releases/block.json new file mode 100644 index 0000000000..f9ab6de33d --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/releases/block.json @@ -0,0 +1,18 @@ +{ + "$schema": "https://schemas.wp.org/trunk/block.json", + "apiVersion": 2, + "name": "wporg/releases", + "version": "0.1.0", + "title": "Displays releases.", + "category": "design", + "icon": "", + "description": "A block to display releases", + "textdomain": "wporg", + "attributes": {}, + "supports": { + "html": false + }, + "editorScript": "file:./index.js", + "render": "file:./render.php", + "style": "file:./style-index.css" +} \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/releases/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/releases/index.js new file mode 100644 index 0000000000..a52cd322ed --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/releases/index.js @@ -0,0 +1,28 @@ +/** + * WordPress dependencies + */ +import { Disabled } from '@wordpress/components'; +import { registerBlockType } from '@wordpress/blocks'; +import ServerSideRender from '@wordpress/server-side-render'; +import { useBlockProps } from '@wordpress/block-editor'; + +/** + * Internal dependencies + */ +import metadata from './block.json'; +import './style.scss'; + +function Edit( { attributes, name } ) { + return ( +
    + + + +
    + ); +} + +registerBlockType( metadata.name, { + edit: Edit, + save: () => null, +} ); \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/releases/index.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/releases/index.php new file mode 100644 index 0000000000..dbeb58c44c --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/releases/index.php @@ -0,0 +1,22 @@ + +
    + +
    +
    +
    + +
    + + + +
    +

    Actions

    +
    +
    + + + +
    +

    Checks

    + + + + + +

    Flags

    + + + + + +

    Changelog

    + + +
    +
    + +
    + +BLOCKS +); + +printf( + '
    %2$s
    ', + get_block_wrapper_attributes(), + $content +); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/releases/style.scss b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/releases/style.scss new file mode 100644 index 0000000000..09ba86b98d --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/releases/style.scss @@ -0,0 +1,4 @@ +.wp-block-wporg-releases ul { + margin-top: 0; + font-size: var(--wp--preset--font-size--small); +} diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/style.css b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/style.css index 513af88bca..06af87d242 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/style.css +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/style.css @@ -4,7 +4,7 @@ Theme URI: https://wordpress.org/plugins Author: wordpressdotorg Author URI: https://wordpress.org Description: Theme for the WordPress.org Plugin Directory. -Version: 2024.0.3 +Version: 2024.0.5 License: GNU General Public License v2 or later License URI: http://www.gnu.org/licenses/gpl-2.0.html Text Domain: wporg-plugins diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/template-parts/plugin-single.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/template-parts/plugin-single.php index b28bcffb99..d5edcac236 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/template-parts/plugin-single.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/template-parts/plugin-single.php @@ -18,6 +18,8 @@ $is_closed = in_array( get_post_status(), [ 'closed', 'disabled' ], true ); $plugin_title = $is_closed ? $post->post_name : get_the_title(); + +$show_release_beta = isset( $_GET['show_release_beta'] ) || ( defined( 'WPORG_SANDBOXED' ) && WPORG_SANDBOXED ); ?>
    > @@ -47,6 +49,7 @@
    +
    '; @@ -87,6 +90,7 @@ +
      @@ -98,6 +102,9 @@ + + + @@ -114,11 +121,15 @@ get_template_part( 'template-parts/section-advanced' ); } else { $plugin_sections_titles = Template::get_plugin_section_titles(); + $content_section_list = array( 'description', 'screenshots', 'blocks', 'installation', 'faq', 'reviews', 'developers', 'changelog' ); - foreach ( array( 'description', 'screenshots', 'blocks', 'installation', 'faq', 'reviews', 'developers', 'changelog' ) as $section_slug ) { + if ( $show_release_beta ) { + $content_section_list[] = 'releases'; + } + + foreach ( $content_section_list as $section_slug ) { $section_content = ''; $section_title = $plugin_sections_titles[ $section_slug ] ?? ''; - if ( $is_closed && in_array( $section_slug, [ 'screenshots', 'installation', 'faq', 'changelog' ], true ) ) { // Don't show these sections when closed. $section_content = ''; @@ -134,6 +145,13 @@ $section_content = trim( apply_filters( 'the_content', $content[ $section_slug ], $section_slug ) ); } + if ( 'releases' === $section_slug ) { + echo '
      '; + block_template_part( 'releases' ); + echo '
      '; + continue; + } + if ( empty( $section_content ) ) { continue; } @@ -142,6 +160,7 @@ } } // plugin_advanced. ?> +
    @@ -155,4 +174,4 @@ } ?>
    - + \ No newline at end of file From 401dfdb47b78336e406c40c904663ec7598cc0c4 Mon Sep 17 00:00:00 2001 From: StevenDufresne Date: Mon, 18 Nov 2024 00:41:19 +0000 Subject: [PATCH 02/84] Remove releases reference. --- .../wp-content/plugins/plugin-directory/class-template.php | 1 - 1 file changed, 1 deletion(-) diff --git a/wordpress.org/public_html/wp-content/plugins/plugin-directory/class-template.php b/wordpress.org/public_html/wp-content/plugins/plugin-directory/class-template.php index c6382db2ff..021c35a094 100644 --- a/wordpress.org/public_html/wp-content/plugins/plugin-directory/class-template.php +++ b/wordpress.org/public_html/wp-content/plugins/plugin-directory/class-template.php @@ -353,7 +353,6 @@ public static function get_plugin_section_titles() { 'developers' => _x( 'Contributors & Developers', 'plugin tab title', 'wporg-plugins' ), 'other_notes' => _x( 'Other Notes', 'plugin tab title', 'wporg-plugins' ), 'blocks' => _x( 'Blocks', 'plugin tab title', 'wporg-plugins' ), - 'releases' => _x( 'Releases', 'plugin tab title', 'wporg-plugins' ) ]; } From 38e8bb944d29baec34e24e8300898622a5b09f91 Mon Sep 17 00:00:00 2001 From: StevenDufresne Date: Mon, 18 Nov 2024 00:45:55 +0000 Subject: [PATCH 03/84] Turn around if not published. --- .../build/blocks/release-checks/render.php | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks/render.php index 55230a69d7..f6c226baf1 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks/render.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks/render.php @@ -3,8 +3,23 @@ if ( ! current_user_can( 'plugin_admin_edit', $post ) ) { return; } + + +$current_post_id = $block->context['postId']; +if ( ! $current_post_id ) { + return; +} + +if ( 'publish' === get_post_status( $block->context['postId'] ) ) { + return; +} + ?> + +

    + +
    • First Item
    • Second Item
    • From a03056972771ab280869cffdfad6e590f07e1fc1 Mon Sep 17 00:00:00 2001 From: StevenDufresne Date: Mon, 18 Nov 2024 00:46:39 +0000 Subject: [PATCH 04/84] remove changelog for now. --- .../pub/wporg-plugins-2024/functions.php | 1 - .../src/blocks/release-changelog/block.json | 18 ------------ .../src/blocks/release-changelog/index.js | 28 ------------------- .../src/blocks/release-changelog/index.php | 22 --------------- .../src/blocks/release-changelog/render.php | 4 --- .../src/blocks/release-changelog/style.scss | 0 6 files changed, 73 deletions(-) delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-changelog/block.json delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-changelog/index.js delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-changelog/index.php delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-changelog/render.php delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-changelog/style.scss diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/functions.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/functions.php index 0951db315a..227876a685 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/functions.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/functions.php @@ -22,7 +22,6 @@ require_once( __DIR__ . '/src/blocks/single-plugin/index.php' ); require_once( __DIR__ . '/src/blocks/plugin-card/index.php' ); require_once( __DIR__ . '/src/blocks/release-checks/index.php' ); -require_once( __DIR__ . '/src/blocks/release-changelog/index.php' ); require_once( __DIR__ . '/src/blocks/release-confirmation/index.php' ); require_once( __DIR__ . '/src/blocks/release-status/index.php' ); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-changelog/block.json b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-changelog/block.json deleted file mode 100644 index bf6cfbf0b2..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-changelog/block.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "$schema": "https://schemas.wp.org/trunk/block.json", - "apiVersion": 2, - "name": "wporg/release-changelog", - "version": "0.1.0", - "title": "Displays release changelog.", - "category": "design", - "icon": "", - "description": "A block to display release changelog", - "textdomain": "wporg", - "attributes": {}, - "supports": { - "html": false - }, - "editorScript": "file:./index.js", - "render": "file:./render.php", - "style": "file:./style-index.css" -} \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-changelog/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-changelog/index.js deleted file mode 100644 index a52cd322ed..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-changelog/index.js +++ /dev/null @@ -1,28 +0,0 @@ -/** - * WordPress dependencies - */ -import { Disabled } from '@wordpress/components'; -import { registerBlockType } from '@wordpress/blocks'; -import ServerSideRender from '@wordpress/server-side-render'; -import { useBlockProps } from '@wordpress/block-editor'; - -/** - * Internal dependencies - */ -import metadata from './block.json'; -import './style.scss'; - -function Edit( { attributes, name } ) { - return ( -
      - - - -
      - ); -} - -registerBlockType( metadata.name, { - edit: Edit, - save: () => null, -} ); \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-changelog/index.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-changelog/index.php deleted file mode 100644 index 7e51f7c6a4..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-changelog/index.php +++ /dev/null @@ -1,22 +0,0 @@ - -
    • First Item
    • -
    • Second Item
    • -
    diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-changelog/style.scss b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-changelog/style.scss deleted file mode 100644 index e69de29bb2..0000000000 From ec5a5074dcdd0bb8f259470858740072ba294eb9 Mon Sep 17 00:00:00 2001 From: StevenDufresne Date: Mon, 18 Nov 2024 00:47:50 +0000 Subject: [PATCH 05/84] Clean up build artifacts. --- .../blocks/release-checks copy/block.json | 18 -- .../release-checks copy/index.asset.php | 1 - .../build/blocks/release-checks copy/index.js | 298 ------------------ .../blocks/release-checks copy/render.php | 11 - .../release-checks copy/style-index.css | 4 - .../blocks/release-status copy/block.json | 21 -- .../release-status copy/index.asset.php | 1 - .../build/blocks/release-status copy/index.js | 298 ------------------ .../blocks/release-status copy/render.php | 16 - .../release-status copy/style-index.css | 11 - 10 files changed, 679 deletions(-) delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks copy/block.json delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks copy/index.asset.php delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks copy/index.js delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks copy/render.php delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks copy/style-index.css delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status copy/block.json delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status copy/index.asset.php delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status copy/index.js delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status copy/render.php delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status copy/style-index.css diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks copy/block.json b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks copy/block.json deleted file mode 100644 index d98ac30881..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks copy/block.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "$schema": "https://schemas.wp.org/trunk/block.json", - "apiVersion": 2, - "name": "wporg/release-checks", - "version": "0.1.0", - "title": "Displays release checks.", - "category": "design", - "icon": "", - "description": "A block to display release checks", - "textdomain": "wporg", - "attributes": {}, - "supports": { - "html": false - }, - "editorScript": "file:./index.js", - "render": "file:./render.php", - "style": "file:./style-index.css" -} \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks copy/index.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks copy/index.asset.php deleted file mode 100644 index 35b2f9de48..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks copy/index.asset.php +++ /dev/null @@ -1 +0,0 @@ - array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => 'd68e487a800311586374'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks copy/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks copy/index.js deleted file mode 100644 index b25b4852d0..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks copy/index.js +++ /dev/null @@ -1,298 +0,0 @@ -/******/ (() => { // webpackBootstrap -/******/ "use strict"; -/******/ var __webpack_modules__ = ({ - -/***/ "./src/blocks/release-checks copy/index.js": -/*!*************************************************!*\ - !*** ./src/blocks/release-checks copy/index.js ***! - \*************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); -/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/blocks */ "@wordpress/blocks"); -/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/server-side-render */ "@wordpress/server-side-render"); -/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/block-editor */ "@wordpress/block-editor"); -/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__); -/* harmony import */ var _block_json__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./block.json */ "./src/blocks/release-checks copy/block.json"); -/* harmony import */ var _style_scss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./style.scss */ "./src/blocks/release-checks copy/style.scss"); - -/** - * WordPress dependencies - */ - - - - - -/** - * Internal dependencies - */ - - -function Edit({ - attributes, - name -}) { - return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", { - ...(0,_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__.useBlockProps)() - }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Disabled, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)((_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default()), { - block: name, - attributes: attributes - }))); -} -(0,_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__.registerBlockType)(_block_json__WEBPACK_IMPORTED_MODULE_5__.name, { - edit: Edit, - save: () => null -}); - -/***/ }), - -/***/ "./src/blocks/release-checks copy/style.scss": -/*!***************************************************!*\ - !*** ./src/blocks/release-checks copy/style.scss ***! - \***************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -// extracted by mini-css-extract-plugin - - -/***/ }), - -/***/ "react": -/*!************************!*\ - !*** external "React" ***! - \************************/ -/***/ ((module) => { - -module.exports = window["React"]; - -/***/ }), - -/***/ "@wordpress/block-editor": -/*!*************************************!*\ - !*** external ["wp","blockEditor"] ***! - \*************************************/ -/***/ ((module) => { - -module.exports = window["wp"]["blockEditor"]; - -/***/ }), - -/***/ "@wordpress/blocks": -/*!********************************!*\ - !*** external ["wp","blocks"] ***! - \********************************/ -/***/ ((module) => { - -module.exports = window["wp"]["blocks"]; - -/***/ }), - -/***/ "@wordpress/components": -/*!************************************!*\ - !*** external ["wp","components"] ***! - \************************************/ -/***/ ((module) => { - -module.exports = window["wp"]["components"]; - -/***/ }), - -/***/ "@wordpress/server-side-render": -/*!******************************************!*\ - !*** external ["wp","serverSideRender"] ***! - \******************************************/ -/***/ ((module) => { - -module.exports = window["wp"]["serverSideRender"]; - -/***/ }), - -/***/ "./src/blocks/release-checks copy/block.json": -/*!***************************************************!*\ - !*** ./src/blocks/release-checks copy/block.json ***! - \***************************************************/ -/***/ ((module) => { - -module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"wporg/release-checks","version":"0.1.0","title":"Displays release checks.","category":"design","icon":"","description":"A block to display release checks","textdomain":"wporg","attributes":{},"supports":{"html":false},"editorScript":"file:./index.js","render":"file:./render.php","style":"file:./style-index.css"}'); - -/***/ }) - -/******/ }); -/************************************************************************/ -/******/ // The module cache -/******/ var __webpack_module_cache__ = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ // Check if module is in cache -/******/ var cachedModule = __webpack_module_cache__[moduleId]; -/******/ if (cachedModule !== undefined) { -/******/ return cachedModule.exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = __webpack_module_cache__[moduleId] = { -/******/ // no module.id needed -/******/ // no module.loaded needed -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = __webpack_modules__; -/******/ -/************************************************************************/ -/******/ /* webpack/runtime/chunk loaded */ -/******/ (() => { -/******/ var deferred = []; -/******/ __webpack_require__.O = (result, chunkIds, fn, priority) => { -/******/ if(chunkIds) { -/******/ priority = priority || 0; -/******/ for(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1]; -/******/ deferred[i] = [chunkIds, fn, priority]; -/******/ return; -/******/ } -/******/ var notFulfilled = Infinity; -/******/ for (var i = 0; i < deferred.length; i++) { -/******/ var chunkIds = deferred[i][0]; -/******/ var fn = deferred[i][1]; -/******/ var priority = deferred[i][2]; -/******/ var fulfilled = true; -/******/ for (var j = 0; j < chunkIds.length; j++) { -/******/ if ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) { -/******/ chunkIds.splice(j--, 1); -/******/ } else { -/******/ fulfilled = false; -/******/ if(priority < notFulfilled) notFulfilled = priority; -/******/ } -/******/ } -/******/ if(fulfilled) { -/******/ deferred.splice(i--, 1) -/******/ var r = fn(); -/******/ if (r !== undefined) result = r; -/******/ } -/******/ } -/******/ return result; -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/compat get default export */ -/******/ (() => { -/******/ // getDefaultExport function for compatibility with non-harmony modules -/******/ __webpack_require__.n = (module) => { -/******/ var getter = module && module.__esModule ? -/******/ () => (module['default']) : -/******/ () => (module); -/******/ __webpack_require__.d(getter, { a: getter }); -/******/ return getter; -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/define property getters */ -/******/ (() => { -/******/ // define getter functions for harmony exports -/******/ __webpack_require__.d = (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 */ -/******/ (() => { -/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) -/******/ })(); -/******/ -/******/ /* webpack/runtime/make namespace object */ -/******/ (() => { -/******/ // define __esModule on exports -/******/ __webpack_require__.r = (exports) => { -/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { -/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); -/******/ } -/******/ Object.defineProperty(exports, '__esModule', { value: true }); -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/jsonp chunk loading */ -/******/ (() => { -/******/ // no baseURI -/******/ -/******/ // object to store loaded and loading chunks -/******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched -/******/ // [resolve, reject, Promise] = chunk loading, 0 = chunk loaded -/******/ var installedChunks = { -/******/ "blocks/release-checks copy/index": 0, -/******/ "blocks/release-checks copy/style-index": 0 -/******/ }; -/******/ -/******/ // no chunk on demand loading -/******/ -/******/ // no prefetching -/******/ -/******/ // no preloaded -/******/ -/******/ // no HMR -/******/ -/******/ // no HMR manifest -/******/ -/******/ __webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0); -/******/ -/******/ // install a JSONP callback for chunk loading -/******/ var webpackJsonpCallback = (parentChunkLoadingFunction, data) => { -/******/ var chunkIds = data[0]; -/******/ var moreModules = data[1]; -/******/ var runtime = data[2]; -/******/ // add "moreModules" to the modules object, -/******/ // then flag all "chunkIds" as loaded and fire callback -/******/ var moduleId, chunkId, i = 0; -/******/ if(chunkIds.some((id) => (installedChunks[id] !== 0))) { -/******/ for(moduleId in moreModules) { -/******/ if(__webpack_require__.o(moreModules, moduleId)) { -/******/ __webpack_require__.m[moduleId] = moreModules[moduleId]; -/******/ } -/******/ } -/******/ if(runtime) var result = runtime(__webpack_require__); -/******/ } -/******/ if(parentChunkLoadingFunction) parentChunkLoadingFunction(data); -/******/ for(;i < chunkIds.length; i++) { -/******/ chunkId = chunkIds[i]; -/******/ if(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) { -/******/ installedChunks[chunkId][0](); -/******/ } -/******/ installedChunks[chunkId] = 0; -/******/ } -/******/ return __webpack_require__.O(result); -/******/ } -/******/ -/******/ var chunkLoadingGlobal = self["webpackChunkwporg_plugins_2024"] = self["webpackChunkwporg_plugins_2024"] || []; -/******/ chunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0)); -/******/ chunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal)); -/******/ })(); -/******/ -/************************************************************************/ -/******/ -/******/ // startup -/******/ // Load entry module and return exports -/******/ // This entry module depends on other loaded chunks and execution need to be delayed -/******/ var __webpack_exports__ = __webpack_require__.O(undefined, ["blocks/release-checks copy/style-index"], () => (__webpack_require__("./src/blocks/release-checks copy/index.js"))) -/******/ __webpack_exports__ = __webpack_require__.O(__webpack_exports__); -/******/ -/******/ })() -; -//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks copy/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks copy/render.php deleted file mode 100644 index 55230a69d7..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks copy/render.php +++ /dev/null @@ -1,11 +0,0 @@ - - -
      -
    • First Item
    • -
    • Second Item
    • -
    diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks copy/style-index.css b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks copy/style-index.css deleted file mode 100644 index 8e453a747c..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks copy/style-index.css +++ /dev/null @@ -1,4 +0,0 @@ -/*!******************************************************************************************************************************************************************************************************************************************************************!*\ - !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/blocks/release-checks copy/style.scss ***! - \******************************************************************************************************************************************************************************************************************************************************************/ - diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status copy/block.json b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status copy/block.json deleted file mode 100644 index b92e587f36..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status copy/block.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "$schema": "https://schemas.wp.org/trunk/block.json", - "apiVersion": 2, - "name": "wporg/release-status", - "version": "0.1.0", - "title": "Displays release status.", - "category": "design", - "icon": "", - "description": "A block to display release status", - "textdomain": "wporg", - "attributes": {}, - "supports": { - "html": false - }, - "usesContext": [ - "postId" - ], - "editorScript": "file:./index.js", - "render": "file:./render.php", - "style": "file:./style-index.css" -} \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status copy/index.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status copy/index.asset.php deleted file mode 100644 index 047eab21cf..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status copy/index.asset.php +++ /dev/null @@ -1 +0,0 @@ - array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => 'bcb8765d8662b3726a15'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status copy/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status copy/index.js deleted file mode 100644 index 1717ab0084..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status copy/index.js +++ /dev/null @@ -1,298 +0,0 @@ -/******/ (() => { // webpackBootstrap -/******/ "use strict"; -/******/ var __webpack_modules__ = ({ - -/***/ "./src/blocks/release-status copy/index.js": -/*!*************************************************!*\ - !*** ./src/blocks/release-status copy/index.js ***! - \*************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); -/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/blocks */ "@wordpress/blocks"); -/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/server-side-render */ "@wordpress/server-side-render"); -/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/block-editor */ "@wordpress/block-editor"); -/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__); -/* harmony import */ var _block_json__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./block.json */ "./src/blocks/release-status copy/block.json"); -/* harmony import */ var _style_scss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./style.scss */ "./src/blocks/release-status copy/style.scss"); - -/** - * WordPress dependencies - */ - - - - - -/** - * Internal dependencies - */ - - -function Edit({ - attributes, - name -}) { - return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", { - ...(0,_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__.useBlockProps)() - }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Disabled, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)((_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default()), { - block: name, - attributes: attributes - }))); -} -(0,_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__.registerBlockType)(_block_json__WEBPACK_IMPORTED_MODULE_5__.name, { - edit: Edit, - save: () => null -}); - -/***/ }), - -/***/ "./src/blocks/release-status copy/style.scss": -/*!***************************************************!*\ - !*** ./src/blocks/release-status copy/style.scss ***! - \***************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -// extracted by mini-css-extract-plugin - - -/***/ }), - -/***/ "react": -/*!************************!*\ - !*** external "React" ***! - \************************/ -/***/ ((module) => { - -module.exports = window["React"]; - -/***/ }), - -/***/ "@wordpress/block-editor": -/*!*************************************!*\ - !*** external ["wp","blockEditor"] ***! - \*************************************/ -/***/ ((module) => { - -module.exports = window["wp"]["blockEditor"]; - -/***/ }), - -/***/ "@wordpress/blocks": -/*!********************************!*\ - !*** external ["wp","blocks"] ***! - \********************************/ -/***/ ((module) => { - -module.exports = window["wp"]["blocks"]; - -/***/ }), - -/***/ "@wordpress/components": -/*!************************************!*\ - !*** external ["wp","components"] ***! - \************************************/ -/***/ ((module) => { - -module.exports = window["wp"]["components"]; - -/***/ }), - -/***/ "@wordpress/server-side-render": -/*!******************************************!*\ - !*** external ["wp","serverSideRender"] ***! - \******************************************/ -/***/ ((module) => { - -module.exports = window["wp"]["serverSideRender"]; - -/***/ }), - -/***/ "./src/blocks/release-status copy/block.json": -/*!***************************************************!*\ - !*** ./src/blocks/release-status copy/block.json ***! - \***************************************************/ -/***/ ((module) => { - -module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"wporg/release-status","version":"0.1.0","title":"Displays release status.","category":"design","icon":"","description":"A block to display release status","textdomain":"wporg","attributes":{},"supports":{"html":false},"usesContext":["postId"],"editorScript":"file:./index.js","render":"file:./render.php","style":"file:./style-index.css"}'); - -/***/ }) - -/******/ }); -/************************************************************************/ -/******/ // The module cache -/******/ var __webpack_module_cache__ = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ // Check if module is in cache -/******/ var cachedModule = __webpack_module_cache__[moduleId]; -/******/ if (cachedModule !== undefined) { -/******/ return cachedModule.exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = __webpack_module_cache__[moduleId] = { -/******/ // no module.id needed -/******/ // no module.loaded needed -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = __webpack_modules__; -/******/ -/************************************************************************/ -/******/ /* webpack/runtime/chunk loaded */ -/******/ (() => { -/******/ var deferred = []; -/******/ __webpack_require__.O = (result, chunkIds, fn, priority) => { -/******/ if(chunkIds) { -/******/ priority = priority || 0; -/******/ for(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1]; -/******/ deferred[i] = [chunkIds, fn, priority]; -/******/ return; -/******/ } -/******/ var notFulfilled = Infinity; -/******/ for (var i = 0; i < deferred.length; i++) { -/******/ var chunkIds = deferred[i][0]; -/******/ var fn = deferred[i][1]; -/******/ var priority = deferred[i][2]; -/******/ var fulfilled = true; -/******/ for (var j = 0; j < chunkIds.length; j++) { -/******/ if ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) { -/******/ chunkIds.splice(j--, 1); -/******/ } else { -/******/ fulfilled = false; -/******/ if(priority < notFulfilled) notFulfilled = priority; -/******/ } -/******/ } -/******/ if(fulfilled) { -/******/ deferred.splice(i--, 1) -/******/ var r = fn(); -/******/ if (r !== undefined) result = r; -/******/ } -/******/ } -/******/ return result; -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/compat get default export */ -/******/ (() => { -/******/ // getDefaultExport function for compatibility with non-harmony modules -/******/ __webpack_require__.n = (module) => { -/******/ var getter = module && module.__esModule ? -/******/ () => (module['default']) : -/******/ () => (module); -/******/ __webpack_require__.d(getter, { a: getter }); -/******/ return getter; -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/define property getters */ -/******/ (() => { -/******/ // define getter functions for harmony exports -/******/ __webpack_require__.d = (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 */ -/******/ (() => { -/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) -/******/ })(); -/******/ -/******/ /* webpack/runtime/make namespace object */ -/******/ (() => { -/******/ // define __esModule on exports -/******/ __webpack_require__.r = (exports) => { -/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { -/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); -/******/ } -/******/ Object.defineProperty(exports, '__esModule', { value: true }); -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/jsonp chunk loading */ -/******/ (() => { -/******/ // no baseURI -/******/ -/******/ // object to store loaded and loading chunks -/******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched -/******/ // [resolve, reject, Promise] = chunk loading, 0 = chunk loaded -/******/ var installedChunks = { -/******/ "blocks/release-status copy/index": 0, -/******/ "blocks/release-status copy/style-index": 0 -/******/ }; -/******/ -/******/ // no chunk on demand loading -/******/ -/******/ // no prefetching -/******/ -/******/ // no preloaded -/******/ -/******/ // no HMR -/******/ -/******/ // no HMR manifest -/******/ -/******/ __webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0); -/******/ -/******/ // install a JSONP callback for chunk loading -/******/ var webpackJsonpCallback = (parentChunkLoadingFunction, data) => { -/******/ var chunkIds = data[0]; -/******/ var moreModules = data[1]; -/******/ var runtime = data[2]; -/******/ // add "moreModules" to the modules object, -/******/ // then flag all "chunkIds" as loaded and fire callback -/******/ var moduleId, chunkId, i = 0; -/******/ if(chunkIds.some((id) => (installedChunks[id] !== 0))) { -/******/ for(moduleId in moreModules) { -/******/ if(__webpack_require__.o(moreModules, moduleId)) { -/******/ __webpack_require__.m[moduleId] = moreModules[moduleId]; -/******/ } -/******/ } -/******/ if(runtime) var result = runtime(__webpack_require__); -/******/ } -/******/ if(parentChunkLoadingFunction) parentChunkLoadingFunction(data); -/******/ for(;i < chunkIds.length; i++) { -/******/ chunkId = chunkIds[i]; -/******/ if(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) { -/******/ installedChunks[chunkId][0](); -/******/ } -/******/ installedChunks[chunkId] = 0; -/******/ } -/******/ return __webpack_require__.O(result); -/******/ } -/******/ -/******/ var chunkLoadingGlobal = self["webpackChunkwporg_plugins_2024"] = self["webpackChunkwporg_plugins_2024"] || []; -/******/ chunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0)); -/******/ chunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal)); -/******/ })(); -/******/ -/************************************************************************/ -/******/ -/******/ // startup -/******/ // Load entry module and return exports -/******/ // This entry module depends on other loaded chunks and execution need to be delayed -/******/ var __webpack_exports__ = __webpack_require__.O(undefined, ["blocks/release-status copy/style-index"], () => (__webpack_require__("./src/blocks/release-status copy/index.js"))) -/******/ __webpack_exports__ = __webpack_require__.O(__webpack_exports__); -/******/ -/******/ })() -; -//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status copy/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status copy/render.php deleted file mode 100644 index 7ee87a9871..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status copy/render.php +++ /dev/null @@ -1,16 +0,0 @@ -context['postId']; -if ( ! $current_post_id ) { - return; -} - -$post = get_post( $block->context['postId'] ); -if ( ! $post ) { - return; -} -?> - -
    > -post_status)->label; ?> -
    diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status copy/style-index.css b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status copy/style-index.css deleted file mode 100644 index 16b3b8b379..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status copy/style-index.css +++ /dev/null @@ -1,11 +0,0 @@ -/*!******************************************************************************************************************************************************************************************************************************************************************!*\ - !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/blocks/release-status copy/style.scss ***! - \******************************************************************************************************************************************************************************************************************************************************************/ -.wp-block-wporg-release-status { - padding: 2px 10px; - border: 1px solid var(--wp--preset--color--blueberry-3); - font-size: var(--wp--preset--font-size--extra-small); - border-radius: var(--wp--custom--button--border--radius); -} - -/*# sourceMappingURL=style-index.css.map*/ \ No newline at end of file From 3569a1c31b7e6a2bba0c6e7506b6068c7f3d4219 Mon Sep 17 00:00:00 2001 From: StevenDufresne Date: Mon, 18 Nov 2024 01:02:22 +0000 Subject: [PATCH 06/84] Update with current state. --- .../build/blocks/archive-page/index.asset.php | 2 +- .../build/blocks/archive-page/index.js | 184 +---------- .../category-navigation/index.asset.php | 2 +- .../build/blocks/category-navigation/index.js | 184 +---------- .../build/blocks/filter-bar/index.asset.php | 2 +- .../build/blocks/filter-bar/index.js | 184 +---------- .../build/blocks/front-page/index.asset.php | 2 +- .../build/blocks/front-page/index.js | 184 +---------- .../build/blocks/plugin-card/index.asset.php | 2 +- .../build/blocks/plugin-card/index.js | 184 +---------- .../build/blocks/plugin-card/view.asset.php | 2 +- .../build/blocks/plugin-card/view.js | 37 +-- .../build/blocks/release-changelog/block.json | 18 -- .../blocks/release-changelog/index.asset.php | 1 - .../build/blocks/release-changelog/index.js | 298 ----------------- .../build/blocks/release-changelog/render.php | 4 - .../blocks/release-changelog/style-index.css | 4 - .../blocks/release-checks/index.asset.php | 2 +- .../build/blocks/release-checks/index.js | 299 +----------------- .../blocks/release-checks/style-index.css | 3 - .../release-confirmation/index.asset.php | 2 +- .../blocks/release-confirmation/index.js | 299 +----------------- .../release-confirmation/style-index.css | 9 +- .../blocks/release-status-tab/block.json | 18 -- .../blocks/release-status-tab/index.asset.php | 1 - .../build/blocks/release-status-tab/index.js | 298 ----------------- .../blocks/release-status-tab/render.php | 11 - .../blocks/release-status-tab/style-index.css | 4 - .../blocks/release-status/index.asset.php | 2 +- .../build/blocks/release-status/index.js | 299 +----------------- .../blocks/release-status/style-index.css | 12 +- .../build/blocks/releases/index.asset.php | 2 +- .../build/blocks/releases/index.js | 299 +----------------- .../build/blocks/releases/render.php | 7 +- .../build/blocks/releases/style-index.css | 10 +- .../build/blocks/search-page/index.asset.php | 2 +- .../build/blocks/search-page/index.js | 184 +---------- .../blocks/single-plugin/index.asset.php | 2 +- .../build/blocks/single-plugin/index.js | 184 +---------- .../pub/wporg-plugins-2024/css/style-rtl.css | 6 +- .../pub/wporg-plugins-2024/css/style.css | 6 +- 41 files changed, 31 insertions(+), 3224 deletions(-) delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-changelog/block.json delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-changelog/index.asset.php delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-changelog/index.js delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-changelog/render.php delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-changelog/style-index.css delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status-tab/block.json delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status-tab/index.asset.php delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status-tab/index.js delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status-tab/render.php delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status-tab/style-index.css diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/archive-page/index.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/archive-page/index.asset.php index 9202f58eda..d7b228686a 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/archive-page/index.asset.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/archive-page/index.asset.php @@ -1 +1 @@ - array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => '7f26875761f01d13f9dd'); + array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => '8627e1da9b24373a1f90'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/archive-page/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/archive-page/index.js index 772b3d2c7e..1b86a728bd 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/archive-page/index.js +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/archive-page/index.js @@ -1,183 +1 @@ -/******/ (() => { // webpackBootstrap -/******/ "use strict"; -/******/ var __webpack_modules__ = ({ - -/***/ "react": -/*!************************!*\ - !*** external "React" ***! - \************************/ -/***/ ((module) => { - -module.exports = window["React"]; - -/***/ }), - -/***/ "@wordpress/block-editor": -/*!*************************************!*\ - !*** external ["wp","blockEditor"] ***! - \*************************************/ -/***/ ((module) => { - -module.exports = window["wp"]["blockEditor"]; - -/***/ }), - -/***/ "@wordpress/blocks": -/*!********************************!*\ - !*** external ["wp","blocks"] ***! - \********************************/ -/***/ ((module) => { - -module.exports = window["wp"]["blocks"]; - -/***/ }), - -/***/ "@wordpress/components": -/*!************************************!*\ - !*** external ["wp","components"] ***! - \************************************/ -/***/ ((module) => { - -module.exports = window["wp"]["components"]; - -/***/ }), - -/***/ "@wordpress/server-side-render": -/*!******************************************!*\ - !*** external ["wp","serverSideRender"] ***! - \******************************************/ -/***/ ((module) => { - -module.exports = window["wp"]["serverSideRender"]; - -/***/ }), - -/***/ "./src/blocks/archive-page/block.json": -/*!********************************************!*\ - !*** ./src/blocks/archive-page/block.json ***! - \********************************************/ -/***/ ((module) => { - -module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"wporg/archive-page","version":"0.1.0","title":"Archive Page Content","category":"design","icon":"","description":"A block that displays the archive page content","textdomain":"wporg","attributes":{},"supports":{"html":false},"editorScript":"file:./index.js","render":"file:./render.php"}'); - -/***/ }) - -/******/ }); -/************************************************************************/ -/******/ // The module cache -/******/ var __webpack_module_cache__ = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ // Check if module is in cache -/******/ var cachedModule = __webpack_module_cache__[moduleId]; -/******/ if (cachedModule !== undefined) { -/******/ return cachedModule.exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = __webpack_module_cache__[moduleId] = { -/******/ // no module.id needed -/******/ // no module.loaded needed -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/************************************************************************/ -/******/ /* webpack/runtime/compat get default export */ -/******/ (() => { -/******/ // getDefaultExport function for compatibility with non-harmony modules -/******/ __webpack_require__.n = (module) => { -/******/ var getter = module && module.__esModule ? -/******/ () => (module['default']) : -/******/ () => (module); -/******/ __webpack_require__.d(getter, { a: getter }); -/******/ return getter; -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/define property getters */ -/******/ (() => { -/******/ // define getter functions for harmony exports -/******/ __webpack_require__.d = (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 */ -/******/ (() => { -/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) -/******/ })(); -/******/ -/******/ /* webpack/runtime/make namespace object */ -/******/ (() => { -/******/ // define __esModule on exports -/******/ __webpack_require__.r = (exports) => { -/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { -/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); -/******/ } -/******/ Object.defineProperty(exports, '__esModule', { value: true }); -/******/ }; -/******/ })(); -/******/ -/************************************************************************/ -var __webpack_exports__ = {}; -// This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk. -(() => { -/*!******************************************!*\ - !*** ./src/blocks/archive-page/index.js ***! - \******************************************/ -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); -/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/blocks */ "@wordpress/blocks"); -/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/server-side-render */ "@wordpress/server-side-render"); -/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/block-editor */ "@wordpress/block-editor"); -/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__); -/* harmony import */ var _block_json__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./block.json */ "./src/blocks/archive-page/block.json"); - -/** - * WordPress dependencies - */ - - - - - -/** - * Internal dependencies - */ - -function Edit({ - attributes, - name -}) { - return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", { - ...(0,_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__.useBlockProps)() - }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Disabled, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)((_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default()), { - block: name, - attributes: attributes - }))); -} -(0,_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__.registerBlockType)(_block_json__WEBPACK_IMPORTED_MODULE_5__.name, { - edit: Edit, - save: () => null -}); -})(); - -/******/ })() -; -//# sourceMappingURL=index.js.map \ No newline at end of file +(()=>{"use strict";var e={n:t=>{var r=t&&t.__esModule?()=>t.default:()=>t;return e.d(r,{a:r}),r},d:(t,r)=>{for(var o in r)e.o(r,o)&&!e.o(t,o)&&Object.defineProperty(t,o,{enumerable:!0,get:r[o]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t)};const t=window.React,r=window.wp.components,o=window.wp.blocks,n=window.wp.serverSideRender;var a=e.n(n);const c=window.wp.blockEditor,i=JSON.parse('{"u2":"wporg/archive-page"}');(0,o.registerBlockType)(i.u2,{edit:function({attributes:e,name:o}){return(0,t.createElement)("div",{...(0,c.useBlockProps)()},(0,t.createElement)(r.Disabled,null,(0,t.createElement)(a(),{block:o,attributes:e})))},save:()=>null})})(); \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/category-navigation/index.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/category-navigation/index.asset.php index 94878f12bf..ab2fb9f31a 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/category-navigation/index.asset.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/category-navigation/index.asset.php @@ -1 +1 @@ - array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => '9b7cfda9379a258a4745'); + array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => '6bce91817a063cdf476d'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/category-navigation/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/category-navigation/index.js index a639fdc3e3..e8e14d7ec6 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/category-navigation/index.js +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/category-navigation/index.js @@ -1,183 +1 @@ -/******/ (() => { // webpackBootstrap -/******/ "use strict"; -/******/ var __webpack_modules__ = ({ - -/***/ "react": -/*!************************!*\ - !*** external "React" ***! - \************************/ -/***/ ((module) => { - -module.exports = window["React"]; - -/***/ }), - -/***/ "@wordpress/block-editor": -/*!*************************************!*\ - !*** external ["wp","blockEditor"] ***! - \*************************************/ -/***/ ((module) => { - -module.exports = window["wp"]["blockEditor"]; - -/***/ }), - -/***/ "@wordpress/blocks": -/*!********************************!*\ - !*** external ["wp","blocks"] ***! - \********************************/ -/***/ ((module) => { - -module.exports = window["wp"]["blocks"]; - -/***/ }), - -/***/ "@wordpress/components": -/*!************************************!*\ - !*** external ["wp","components"] ***! - \************************************/ -/***/ ((module) => { - -module.exports = window["wp"]["components"]; - -/***/ }), - -/***/ "@wordpress/server-side-render": -/*!******************************************!*\ - !*** external ["wp","serverSideRender"] ***! - \******************************************/ -/***/ ((module) => { - -module.exports = window["wp"]["serverSideRender"]; - -/***/ }), - -/***/ "./src/blocks/category-navigation/block.json": -/*!***************************************************!*\ - !*** ./src/blocks/category-navigation/block.json ***! - \***************************************************/ -/***/ ((module) => { - -module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"wporg/category-navigation","version":"0.2.0","title":"Category Navigation","category":"design","icon":"","description":"Adds the category navigation menu","textdomain":"wporg","attributes":{},"supports":{"html":false},"editorScript":"file:./index.js","render":"file:./render.php"}'); - -/***/ }) - -/******/ }); -/************************************************************************/ -/******/ // The module cache -/******/ var __webpack_module_cache__ = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ // Check if module is in cache -/******/ var cachedModule = __webpack_module_cache__[moduleId]; -/******/ if (cachedModule !== undefined) { -/******/ return cachedModule.exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = __webpack_module_cache__[moduleId] = { -/******/ // no module.id needed -/******/ // no module.loaded needed -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/************************************************************************/ -/******/ /* webpack/runtime/compat get default export */ -/******/ (() => { -/******/ // getDefaultExport function for compatibility with non-harmony modules -/******/ __webpack_require__.n = (module) => { -/******/ var getter = module && module.__esModule ? -/******/ () => (module['default']) : -/******/ () => (module); -/******/ __webpack_require__.d(getter, { a: getter }); -/******/ return getter; -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/define property getters */ -/******/ (() => { -/******/ // define getter functions for harmony exports -/******/ __webpack_require__.d = (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 */ -/******/ (() => { -/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) -/******/ })(); -/******/ -/******/ /* webpack/runtime/make namespace object */ -/******/ (() => { -/******/ // define __esModule on exports -/******/ __webpack_require__.r = (exports) => { -/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { -/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); -/******/ } -/******/ Object.defineProperty(exports, '__esModule', { value: true }); -/******/ }; -/******/ })(); -/******/ -/************************************************************************/ -var __webpack_exports__ = {}; -// This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk. -(() => { -/*!*************************************************!*\ - !*** ./src/blocks/category-navigation/index.js ***! - \*************************************************/ -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); -/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/blocks */ "@wordpress/blocks"); -/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/server-side-render */ "@wordpress/server-side-render"); -/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/block-editor */ "@wordpress/block-editor"); -/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__); -/* harmony import */ var _block_json__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./block.json */ "./src/blocks/category-navigation/block.json"); - -/** - * WordPress dependencies - */ - - - - - -/** - * Internal dependencies - */ - -function Edit({ - attributes, - name -}) { - return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", { - ...(0,_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__.useBlockProps)() - }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Disabled, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)((_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default()), { - block: name, - attributes: attributes - }))); -} -(0,_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__.registerBlockType)(_block_json__WEBPACK_IMPORTED_MODULE_5__.name, { - edit: Edit, - save: () => null -}); -})(); - -/******/ })() -; -//# sourceMappingURL=index.js.map \ No newline at end of file +(()=>{"use strict";var e={n:t=>{var r=t&&t.__esModule?()=>t.default:()=>t;return e.d(r,{a:r}),r},d:(t,r)=>{for(var o in r)e.o(r,o)&&!e.o(t,o)&&Object.defineProperty(t,o,{enumerable:!0,get:r[o]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t)};const t=window.React,r=window.wp.components,o=window.wp.blocks,n=window.wp.serverSideRender;var a=e.n(n);const i=window.wp.blockEditor,c=JSON.parse('{"u2":"wporg/category-navigation"}');(0,o.registerBlockType)(c.u2,{edit:function({attributes:e,name:o}){return(0,t.createElement)("div",{...(0,i.useBlockProps)()},(0,t.createElement)(r.Disabled,null,(0,t.createElement)(a(),{block:o,attributes:e})))},save:()=>null})})(); \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/filter-bar/index.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/filter-bar/index.asset.php index 922b695350..32cfe90ff5 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/filter-bar/index.asset.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/filter-bar/index.asset.php @@ -1 +1 @@ - array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => 'fe9a74e9340bde2c89fa'); + array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => '4e25fbe50d772f6a1559'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/filter-bar/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/filter-bar/index.js index 1d81e7ca65..3662ea6f71 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/filter-bar/index.js +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/filter-bar/index.js @@ -1,183 +1 @@ -/******/ (() => { // webpackBootstrap -/******/ "use strict"; -/******/ var __webpack_modules__ = ({ - -/***/ "react": -/*!************************!*\ - !*** external "React" ***! - \************************/ -/***/ ((module) => { - -module.exports = window["React"]; - -/***/ }), - -/***/ "@wordpress/block-editor": -/*!*************************************!*\ - !*** external ["wp","blockEditor"] ***! - \*************************************/ -/***/ ((module) => { - -module.exports = window["wp"]["blockEditor"]; - -/***/ }), - -/***/ "@wordpress/blocks": -/*!********************************!*\ - !*** external ["wp","blocks"] ***! - \********************************/ -/***/ ((module) => { - -module.exports = window["wp"]["blocks"]; - -/***/ }), - -/***/ "@wordpress/components": -/*!************************************!*\ - !*** external ["wp","components"] ***! - \************************************/ -/***/ ((module) => { - -module.exports = window["wp"]["components"]; - -/***/ }), - -/***/ "@wordpress/server-side-render": -/*!******************************************!*\ - !*** external ["wp","serverSideRender"] ***! - \******************************************/ -/***/ ((module) => { - -module.exports = window["wp"]["serverSideRender"]; - -/***/ }), - -/***/ "./src/blocks/filter-bar/block.json": -/*!******************************************!*\ - !*** ./src/blocks/filter-bar/block.json ***! - \******************************************/ -/***/ ((module) => { - -module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"wporg/filter-bar","version":"0.2.0","title":"Filter Bar","category":"design","icon":"","description":"Adds a filter bar","textdomain":"wporg","attributes":{},"supports":{"html":false},"editorScript":"file:./index.js","render":"file:./render.php"}'); - -/***/ }) - -/******/ }); -/************************************************************************/ -/******/ // The module cache -/******/ var __webpack_module_cache__ = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ // Check if module is in cache -/******/ var cachedModule = __webpack_module_cache__[moduleId]; -/******/ if (cachedModule !== undefined) { -/******/ return cachedModule.exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = __webpack_module_cache__[moduleId] = { -/******/ // no module.id needed -/******/ // no module.loaded needed -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/************************************************************************/ -/******/ /* webpack/runtime/compat get default export */ -/******/ (() => { -/******/ // getDefaultExport function for compatibility with non-harmony modules -/******/ __webpack_require__.n = (module) => { -/******/ var getter = module && module.__esModule ? -/******/ () => (module['default']) : -/******/ () => (module); -/******/ __webpack_require__.d(getter, { a: getter }); -/******/ return getter; -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/define property getters */ -/******/ (() => { -/******/ // define getter functions for harmony exports -/******/ __webpack_require__.d = (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 */ -/******/ (() => { -/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) -/******/ })(); -/******/ -/******/ /* webpack/runtime/make namespace object */ -/******/ (() => { -/******/ // define __esModule on exports -/******/ __webpack_require__.r = (exports) => { -/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { -/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); -/******/ } -/******/ Object.defineProperty(exports, '__esModule', { value: true }); -/******/ }; -/******/ })(); -/******/ -/************************************************************************/ -var __webpack_exports__ = {}; -// This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk. -(() => { -/*!****************************************!*\ - !*** ./src/blocks/filter-bar/index.js ***! - \****************************************/ -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); -/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/blocks */ "@wordpress/blocks"); -/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/server-side-render */ "@wordpress/server-side-render"); -/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/block-editor */ "@wordpress/block-editor"); -/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__); -/* harmony import */ var _block_json__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./block.json */ "./src/blocks/filter-bar/block.json"); - -/** - * WordPress dependencies - */ - - - - - -/** - * Internal dependencies - */ - -function Edit({ - attributes, - name -}) { - return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", { - ...(0,_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__.useBlockProps)() - }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Disabled, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)((_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default()), { - block: name, - attributes: attributes - }))); -} -(0,_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__.registerBlockType)(_block_json__WEBPACK_IMPORTED_MODULE_5__.name, { - edit: Edit, - save: () => null -}); -})(); - -/******/ })() -; -//# sourceMappingURL=index.js.map \ No newline at end of file +(()=>{"use strict";var e={n:t=>{var r=t&&t.__esModule?()=>t.default:()=>t;return e.d(r,{a:r}),r},d:(t,r)=>{for(var o in r)e.o(r,o)&&!e.o(t,o)&&Object.defineProperty(t,o,{enumerable:!0,get:r[o]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t)};const t=window.React,r=window.wp.components,o=window.wp.blocks,n=window.wp.serverSideRender;var a=e.n(n);const l=window.wp.blockEditor,i=JSON.parse('{"u2":"wporg/filter-bar"}');(0,o.registerBlockType)(i.u2,{edit:function({attributes:e,name:o}){return(0,t.createElement)("div",{...(0,l.useBlockProps)()},(0,t.createElement)(r.Disabled,null,(0,t.createElement)(a(),{block:o,attributes:e})))},save:()=>null})})(); \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/front-page/index.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/front-page/index.asset.php index 264faed9d3..09684019c7 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/front-page/index.asset.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/front-page/index.asset.php @@ -1 +1 @@ - array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => 'b4c88578d4fb8d783dd4'); + array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => '3f3755bbf3697bb808f8'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/front-page/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/front-page/index.js index 7136a3f573..7a3c8b2166 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/front-page/index.js +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/front-page/index.js @@ -1,183 +1 @@ -/******/ (() => { // webpackBootstrap -/******/ "use strict"; -/******/ var __webpack_modules__ = ({ - -/***/ "react": -/*!************************!*\ - !*** external "React" ***! - \************************/ -/***/ ((module) => { - -module.exports = window["React"]; - -/***/ }), - -/***/ "@wordpress/block-editor": -/*!*************************************!*\ - !*** external ["wp","blockEditor"] ***! - \*************************************/ -/***/ ((module) => { - -module.exports = window["wp"]["blockEditor"]; - -/***/ }), - -/***/ "@wordpress/blocks": -/*!********************************!*\ - !*** external ["wp","blocks"] ***! - \********************************/ -/***/ ((module) => { - -module.exports = window["wp"]["blocks"]; - -/***/ }), - -/***/ "@wordpress/components": -/*!************************************!*\ - !*** external ["wp","components"] ***! - \************************************/ -/***/ ((module) => { - -module.exports = window["wp"]["components"]; - -/***/ }), - -/***/ "@wordpress/server-side-render": -/*!******************************************!*\ - !*** external ["wp","serverSideRender"] ***! - \******************************************/ -/***/ ((module) => { - -module.exports = window["wp"]["serverSideRender"]; - -/***/ }), - -/***/ "./src/blocks/front-page/block.json": -/*!******************************************!*\ - !*** ./src/blocks/front-page/block.json ***! - \******************************************/ -/***/ ((module) => { - -module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"wporg/front-page","version":"0.1.0","title":"Front Page Content","category":"design","icon":"","description":"A block that displays the front page content","textdomain":"wporg","attributes":{},"supports":{"html":false},"editorScript":"file:./index.js","render":"file:./render.php"}'); - -/***/ }) - -/******/ }); -/************************************************************************/ -/******/ // The module cache -/******/ var __webpack_module_cache__ = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ // Check if module is in cache -/******/ var cachedModule = __webpack_module_cache__[moduleId]; -/******/ if (cachedModule !== undefined) { -/******/ return cachedModule.exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = __webpack_module_cache__[moduleId] = { -/******/ // no module.id needed -/******/ // no module.loaded needed -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/************************************************************************/ -/******/ /* webpack/runtime/compat get default export */ -/******/ (() => { -/******/ // getDefaultExport function for compatibility with non-harmony modules -/******/ __webpack_require__.n = (module) => { -/******/ var getter = module && module.__esModule ? -/******/ () => (module['default']) : -/******/ () => (module); -/******/ __webpack_require__.d(getter, { a: getter }); -/******/ return getter; -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/define property getters */ -/******/ (() => { -/******/ // define getter functions for harmony exports -/******/ __webpack_require__.d = (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 */ -/******/ (() => { -/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) -/******/ })(); -/******/ -/******/ /* webpack/runtime/make namespace object */ -/******/ (() => { -/******/ // define __esModule on exports -/******/ __webpack_require__.r = (exports) => { -/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { -/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); -/******/ } -/******/ Object.defineProperty(exports, '__esModule', { value: true }); -/******/ }; -/******/ })(); -/******/ -/************************************************************************/ -var __webpack_exports__ = {}; -// This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk. -(() => { -/*!****************************************!*\ - !*** ./src/blocks/front-page/index.js ***! - \****************************************/ -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); -/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/blocks */ "@wordpress/blocks"); -/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/server-side-render */ "@wordpress/server-side-render"); -/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/block-editor */ "@wordpress/block-editor"); -/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__); -/* harmony import */ var _block_json__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./block.json */ "./src/blocks/front-page/block.json"); - -/** - * WordPress dependencies - */ - - - - - -/** - * Internal dependencies - */ - -function Edit({ - attributes, - name -}) { - return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", { - ...(0,_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__.useBlockProps)() - }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Disabled, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)((_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default()), { - block: name, - attributes: attributes - }))); -} -(0,_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__.registerBlockType)(_block_json__WEBPACK_IMPORTED_MODULE_5__.name, { - edit: Edit, - save: () => null -}); -})(); - -/******/ })() -; -//# sourceMappingURL=index.js.map \ No newline at end of file +(()=>{"use strict";var e={n:t=>{var r=t&&t.__esModule?()=>t.default:()=>t;return e.d(r,{a:r}),r},d:(t,r)=>{for(var o in r)e.o(r,o)&&!e.o(t,o)&&Object.defineProperty(t,o,{enumerable:!0,get:r[o]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t)};const t=window.React,r=window.wp.components,o=window.wp.blocks,n=window.wp.serverSideRender;var a=e.n(n);const l=window.wp.blockEditor,c=JSON.parse('{"u2":"wporg/front-page"}');(0,o.registerBlockType)(c.u2,{edit:function({attributes:e,name:o}){return(0,t.createElement)("div",{...(0,l.useBlockProps)()},(0,t.createElement)(r.Disabled,null,(0,t.createElement)(a(),{block:o,attributes:e})))},save:()=>null})})(); \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/plugin-card/index.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/plugin-card/index.asset.php index b579c818ac..f1dd1a21c9 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/plugin-card/index.asset.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/plugin-card/index.asset.php @@ -1 +1 @@ - array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => '26ed8b457f67063bbcbe'); + array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => '58f6f779c22873c960e8'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/plugin-card/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/plugin-card/index.js index 77b892a7b3..3f9a8e7de5 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/plugin-card/index.js +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/plugin-card/index.js @@ -1,183 +1 @@ -/******/ (() => { // webpackBootstrap -/******/ "use strict"; -/******/ var __webpack_modules__ = ({ - -/***/ "react": -/*!************************!*\ - !*** external "React" ***! - \************************/ -/***/ ((module) => { - -module.exports = window["React"]; - -/***/ }), - -/***/ "@wordpress/block-editor": -/*!*************************************!*\ - !*** external ["wp","blockEditor"] ***! - \*************************************/ -/***/ ((module) => { - -module.exports = window["wp"]["blockEditor"]; - -/***/ }), - -/***/ "@wordpress/blocks": -/*!********************************!*\ - !*** external ["wp","blocks"] ***! - \********************************/ -/***/ ((module) => { - -module.exports = window["wp"]["blocks"]; - -/***/ }), - -/***/ "@wordpress/components": -/*!************************************!*\ - !*** external ["wp","components"] ***! - \************************************/ -/***/ ((module) => { - -module.exports = window["wp"]["components"]; - -/***/ }), - -/***/ "@wordpress/server-side-render": -/*!******************************************!*\ - !*** external ["wp","serverSideRender"] ***! - \******************************************/ -/***/ ((module) => { - -module.exports = window["wp"]["serverSideRender"]; - -/***/ }), - -/***/ "./src/blocks/plugin-card/block.json": -/*!*******************************************!*\ - !*** ./src/blocks/plugin-card/block.json ***! - \*******************************************/ -/***/ ((module) => { - -module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"wporg/plugin-card","version":"0.1.0","title":"Plugin Card for Archive Pages","category":"design","icon":"","description":"A block that displays a plugin card.","textdomain":"wporg","attributes":{},"supports":{"html":false},"editorScript":"file:./index.js","render":"file:./render.php","viewScript":"file:./view.js"}'); - -/***/ }) - -/******/ }); -/************************************************************************/ -/******/ // The module cache -/******/ var __webpack_module_cache__ = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ // Check if module is in cache -/******/ var cachedModule = __webpack_module_cache__[moduleId]; -/******/ if (cachedModule !== undefined) { -/******/ return cachedModule.exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = __webpack_module_cache__[moduleId] = { -/******/ // no module.id needed -/******/ // no module.loaded needed -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/************************************************************************/ -/******/ /* webpack/runtime/compat get default export */ -/******/ (() => { -/******/ // getDefaultExport function for compatibility with non-harmony modules -/******/ __webpack_require__.n = (module) => { -/******/ var getter = module && module.__esModule ? -/******/ () => (module['default']) : -/******/ () => (module); -/******/ __webpack_require__.d(getter, { a: getter }); -/******/ return getter; -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/define property getters */ -/******/ (() => { -/******/ // define getter functions for harmony exports -/******/ __webpack_require__.d = (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 */ -/******/ (() => { -/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) -/******/ })(); -/******/ -/******/ /* webpack/runtime/make namespace object */ -/******/ (() => { -/******/ // define __esModule on exports -/******/ __webpack_require__.r = (exports) => { -/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { -/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); -/******/ } -/******/ Object.defineProperty(exports, '__esModule', { value: true }); -/******/ }; -/******/ })(); -/******/ -/************************************************************************/ -var __webpack_exports__ = {}; -// This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk. -(() => { -/*!*****************************************!*\ - !*** ./src/blocks/plugin-card/index.js ***! - \*****************************************/ -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); -/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/blocks */ "@wordpress/blocks"); -/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/server-side-render */ "@wordpress/server-side-render"); -/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/block-editor */ "@wordpress/block-editor"); -/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__); -/* harmony import */ var _block_json__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./block.json */ "./src/blocks/plugin-card/block.json"); - -/** - * WordPress dependencies - */ - - - - - -/** - * Internal dependencies - */ - -function Edit({ - attributes, - name -}) { - return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", { - ...(0,_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__.useBlockProps)() - }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Disabled, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)((_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default()), { - block: name, - attributes: attributes - }))); -} -(0,_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__.registerBlockType)(_block_json__WEBPACK_IMPORTED_MODULE_5__.name, { - edit: Edit, - save: () => null -}); -})(); - -/******/ })() -; -//# sourceMappingURL=index.js.map \ No newline at end of file +(()=>{"use strict";var e={n:t=>{var r=t&&t.__esModule?()=>t.default:()=>t;return e.d(r,{a:r}),r},d:(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:(e,t)=>Object.prototype.hasOwnProperty.call(e,t)};const t=window.React,r=window.wp.components,n=window.wp.blocks,o=window.wp.serverSideRender;var a=e.n(o);const l=window.wp.blockEditor,c=JSON.parse('{"u2":"wporg/plugin-card"}');(0,n.registerBlockType)(c.u2,{edit:function({attributes:e,name:n}){return(0,t.createElement)("div",{...(0,l.useBlockProps)()},(0,t.createElement)(r.Disabled,null,(0,t.createElement)(a(),{block:n,attributes:e})))},save:()=>null})})(); \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/plugin-card/view.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/plugin-card/view.asset.php index 0dd4c71ab5..a451d28c8a 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/plugin-card/view.asset.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/plugin-card/view.asset.php @@ -1 +1 @@ - array(), 'version' => '038d83c28b7b82ea64d9'); + array(), 'version' => 'f221373b7e38d2ff3d7c'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/plugin-card/view.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/plugin-card/view.js index a0ec1ebc4a..f3234f94de 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/plugin-card/view.js +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/plugin-card/view.js @@ -1,36 +1 @@ -/******/ (() => { // webpackBootstrap -var __webpack_exports__ = {}; -/*!****************************************!*\ - !*** ./src/blocks/plugin-card/view.js ***! - \****************************************/ -/** - * Binds click events to navigate on plugin card click. - */ -document.addEventListener('DOMContentLoaded', function () { - var cards = document.querySelectorAll('.plugin-cards li'); - if (cards) { - cards.forEach(function (card) { - card.addEventListener('click', function (event) { - var selectedText = window.getSelection().toString(); - - // Keep regular anchor tag function - if ('a' === event.target.tagName.toLowerCase()) { - return; - } - - // If they are selecting text, let's not navigate. - if ('' !== selectedText) { - return; - } - var anchorTag = card.querySelector('a'); - if (anchorTag) { - var link = anchorTag.getAttribute('href'); - window.location.href = link; - } - }); - }); - } -}); -/******/ })() -; -//# sourceMappingURL=view.js.map \ No newline at end of file +document.addEventListener("DOMContentLoaded",(function(){var e=document.querySelectorAll(".plugin-cards li");e&&e.forEach((function(e){e.addEventListener("click",(function(t){var n=window.getSelection().toString();if("a"!==t.target.tagName.toLowerCase()&&""===n){var o=e.querySelector("a");if(o){var r=o.getAttribute("href");window.location.href=r}}}))}))})); \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-changelog/block.json b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-changelog/block.json deleted file mode 100644 index 8f294063db..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-changelog/block.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "$schema": "https://schemas.wp.org/trunk/block.json", - "apiVersion": 2, - "name": "wporg/release-changelog", - "version": "0.1.0", - "title": "Displays release changelog.", - "category": "design", - "icon": "", - "description": "A block to display release changelog", - "textdomain": "wporg", - "attributes": {}, - "supports": { - "html": false - }, - "editorScript": "file:./index.js", - "render": "file:./render.php", - "style": "file:./style-index.css" -} \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-changelog/index.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-changelog/index.asset.php deleted file mode 100644 index 24548ddad2..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-changelog/index.asset.php +++ /dev/null @@ -1 +0,0 @@ - array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => '16b93262d18ec0d0ccbd'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-changelog/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-changelog/index.js deleted file mode 100644 index ab1b057388..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-changelog/index.js +++ /dev/null @@ -1,298 +0,0 @@ -/******/ (() => { // webpackBootstrap -/******/ "use strict"; -/******/ var __webpack_modules__ = ({ - -/***/ "./src/blocks/release-changelog/index.js": -/*!***********************************************!*\ - !*** ./src/blocks/release-changelog/index.js ***! - \***********************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); -/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/blocks */ "@wordpress/blocks"); -/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/server-side-render */ "@wordpress/server-side-render"); -/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/block-editor */ "@wordpress/block-editor"); -/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__); -/* harmony import */ var _block_json__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./block.json */ "./src/blocks/release-changelog/block.json"); -/* harmony import */ var _style_scss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./style.scss */ "./src/blocks/release-changelog/style.scss"); - -/** - * WordPress dependencies - */ - - - - - -/** - * Internal dependencies - */ - - -function Edit({ - attributes, - name -}) { - return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", { - ...(0,_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__.useBlockProps)() - }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Disabled, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)((_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default()), { - block: name, - attributes: attributes - }))); -} -(0,_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__.registerBlockType)(_block_json__WEBPACK_IMPORTED_MODULE_5__.name, { - edit: Edit, - save: () => null -}); - -/***/ }), - -/***/ "./src/blocks/release-changelog/style.scss": -/*!*************************************************!*\ - !*** ./src/blocks/release-changelog/style.scss ***! - \*************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -// extracted by mini-css-extract-plugin - - -/***/ }), - -/***/ "react": -/*!************************!*\ - !*** external "React" ***! - \************************/ -/***/ ((module) => { - -module.exports = window["React"]; - -/***/ }), - -/***/ "@wordpress/block-editor": -/*!*************************************!*\ - !*** external ["wp","blockEditor"] ***! - \*************************************/ -/***/ ((module) => { - -module.exports = window["wp"]["blockEditor"]; - -/***/ }), - -/***/ "@wordpress/blocks": -/*!********************************!*\ - !*** external ["wp","blocks"] ***! - \********************************/ -/***/ ((module) => { - -module.exports = window["wp"]["blocks"]; - -/***/ }), - -/***/ "@wordpress/components": -/*!************************************!*\ - !*** external ["wp","components"] ***! - \************************************/ -/***/ ((module) => { - -module.exports = window["wp"]["components"]; - -/***/ }), - -/***/ "@wordpress/server-side-render": -/*!******************************************!*\ - !*** external ["wp","serverSideRender"] ***! - \******************************************/ -/***/ ((module) => { - -module.exports = window["wp"]["serverSideRender"]; - -/***/ }), - -/***/ "./src/blocks/release-changelog/block.json": -/*!*************************************************!*\ - !*** ./src/blocks/release-changelog/block.json ***! - \*************************************************/ -/***/ ((module) => { - -module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"wporg/release-changelog","version":"0.1.0","title":"Displays release changelog.","category":"design","icon":"","description":"A block to display release changelog","textdomain":"wporg","attributes":{},"supports":{"html":false},"editorScript":"file:./index.js","render":"file:./render.php","style":"file:./style-index.css"}'); - -/***/ }) - -/******/ }); -/************************************************************************/ -/******/ // The module cache -/******/ var __webpack_module_cache__ = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ // Check if module is in cache -/******/ var cachedModule = __webpack_module_cache__[moduleId]; -/******/ if (cachedModule !== undefined) { -/******/ return cachedModule.exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = __webpack_module_cache__[moduleId] = { -/******/ // no module.id needed -/******/ // no module.loaded needed -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = __webpack_modules__; -/******/ -/************************************************************************/ -/******/ /* webpack/runtime/chunk loaded */ -/******/ (() => { -/******/ var deferred = []; -/******/ __webpack_require__.O = (result, chunkIds, fn, priority) => { -/******/ if(chunkIds) { -/******/ priority = priority || 0; -/******/ for(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1]; -/******/ deferred[i] = [chunkIds, fn, priority]; -/******/ return; -/******/ } -/******/ var notFulfilled = Infinity; -/******/ for (var i = 0; i < deferred.length; i++) { -/******/ var chunkIds = deferred[i][0]; -/******/ var fn = deferred[i][1]; -/******/ var priority = deferred[i][2]; -/******/ var fulfilled = true; -/******/ for (var j = 0; j < chunkIds.length; j++) { -/******/ if ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) { -/******/ chunkIds.splice(j--, 1); -/******/ } else { -/******/ fulfilled = false; -/******/ if(priority < notFulfilled) notFulfilled = priority; -/******/ } -/******/ } -/******/ if(fulfilled) { -/******/ deferred.splice(i--, 1) -/******/ var r = fn(); -/******/ if (r !== undefined) result = r; -/******/ } -/******/ } -/******/ return result; -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/compat get default export */ -/******/ (() => { -/******/ // getDefaultExport function for compatibility with non-harmony modules -/******/ __webpack_require__.n = (module) => { -/******/ var getter = module && module.__esModule ? -/******/ () => (module['default']) : -/******/ () => (module); -/******/ __webpack_require__.d(getter, { a: getter }); -/******/ return getter; -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/define property getters */ -/******/ (() => { -/******/ // define getter functions for harmony exports -/******/ __webpack_require__.d = (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 */ -/******/ (() => { -/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) -/******/ })(); -/******/ -/******/ /* webpack/runtime/make namespace object */ -/******/ (() => { -/******/ // define __esModule on exports -/******/ __webpack_require__.r = (exports) => { -/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { -/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); -/******/ } -/******/ Object.defineProperty(exports, '__esModule', { value: true }); -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/jsonp chunk loading */ -/******/ (() => { -/******/ // no baseURI -/******/ -/******/ // object to store loaded and loading chunks -/******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched -/******/ // [resolve, reject, Promise] = chunk loading, 0 = chunk loaded -/******/ var installedChunks = { -/******/ "blocks/release-changelog/index": 0, -/******/ "blocks/release-changelog/style-index": 0 -/******/ }; -/******/ -/******/ // no chunk on demand loading -/******/ -/******/ // no prefetching -/******/ -/******/ // no preloaded -/******/ -/******/ // no HMR -/******/ -/******/ // no HMR manifest -/******/ -/******/ __webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0); -/******/ -/******/ // install a JSONP callback for chunk loading -/******/ var webpackJsonpCallback = (parentChunkLoadingFunction, data) => { -/******/ var chunkIds = data[0]; -/******/ var moreModules = data[1]; -/******/ var runtime = data[2]; -/******/ // add "moreModules" to the modules object, -/******/ // then flag all "chunkIds" as loaded and fire callback -/******/ var moduleId, chunkId, i = 0; -/******/ if(chunkIds.some((id) => (installedChunks[id] !== 0))) { -/******/ for(moduleId in moreModules) { -/******/ if(__webpack_require__.o(moreModules, moduleId)) { -/******/ __webpack_require__.m[moduleId] = moreModules[moduleId]; -/******/ } -/******/ } -/******/ if(runtime) var result = runtime(__webpack_require__); -/******/ } -/******/ if(parentChunkLoadingFunction) parentChunkLoadingFunction(data); -/******/ for(;i < chunkIds.length; i++) { -/******/ chunkId = chunkIds[i]; -/******/ if(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) { -/******/ installedChunks[chunkId][0](); -/******/ } -/******/ installedChunks[chunkId] = 0; -/******/ } -/******/ return __webpack_require__.O(result); -/******/ } -/******/ -/******/ var chunkLoadingGlobal = self["webpackChunkwporg_plugins_2024"] = self["webpackChunkwporg_plugins_2024"] || []; -/******/ chunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0)); -/******/ chunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal)); -/******/ })(); -/******/ -/************************************************************************/ -/******/ -/******/ // startup -/******/ // Load entry module and return exports -/******/ // This entry module depends on other loaded chunks and execution need to be delayed -/******/ var __webpack_exports__ = __webpack_require__.O(undefined, ["blocks/release-changelog/style-index"], () => (__webpack_require__("./src/blocks/release-changelog/index.js"))) -/******/ __webpack_exports__ = __webpack_require__.O(__webpack_exports__); -/******/ -/******/ })() -; -//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-changelog/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-changelog/render.php deleted file mode 100644 index bbd25746fb..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-changelog/render.php +++ /dev/null @@ -1,4 +0,0 @@ -
      -
    • First Item
    • -
    • Second Item
    • -
    diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-changelog/style-index.css b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-changelog/style-index.css deleted file mode 100644 index c4a25cabe0..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-changelog/style-index.css +++ /dev/null @@ -1,4 +0,0 @@ -/*!****************************************************************************************************************************************************************************************************************************************************************!*\ - !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/blocks/release-changelog/style.scss ***! - \****************************************************************************************************************************************************************************************************************************************************************/ - diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks/index.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks/index.asset.php index 65e11078f8..3c2ca53022 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks/index.asset.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks/index.asset.php @@ -1 +1 @@ - array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => 'e8840736b53778e9b720'); + array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => 'a977c41b397d84605650'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks/index.js index a295a33d84..1739398679 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks/index.js +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks/index.js @@ -1,298 +1 @@ -/******/ (() => { // webpackBootstrap -/******/ "use strict"; -/******/ var __webpack_modules__ = ({ - -/***/ "./src/blocks/release-checks/index.js": -/*!********************************************!*\ - !*** ./src/blocks/release-checks/index.js ***! - \********************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); -/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/blocks */ "@wordpress/blocks"); -/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/server-side-render */ "@wordpress/server-side-render"); -/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/block-editor */ "@wordpress/block-editor"); -/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__); -/* harmony import */ var _block_json__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./block.json */ "./src/blocks/release-checks/block.json"); -/* harmony import */ var _style_scss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./style.scss */ "./src/blocks/release-checks/style.scss"); - -/** - * WordPress dependencies - */ - - - - - -/** - * Internal dependencies - */ - - -function Edit({ - attributes, - name -}) { - return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", { - ...(0,_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__.useBlockProps)() - }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Disabled, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)((_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default()), { - block: name, - attributes: attributes - }))); -} -(0,_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__.registerBlockType)(_block_json__WEBPACK_IMPORTED_MODULE_5__.name, { - edit: Edit, - save: () => null -}); - -/***/ }), - -/***/ "./src/blocks/release-checks/style.scss": -/*!**********************************************!*\ - !*** ./src/blocks/release-checks/style.scss ***! - \**********************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -// extracted by mini-css-extract-plugin - - -/***/ }), - -/***/ "react": -/*!************************!*\ - !*** external "React" ***! - \************************/ -/***/ ((module) => { - -module.exports = window["React"]; - -/***/ }), - -/***/ "@wordpress/block-editor": -/*!*************************************!*\ - !*** external ["wp","blockEditor"] ***! - \*************************************/ -/***/ ((module) => { - -module.exports = window["wp"]["blockEditor"]; - -/***/ }), - -/***/ "@wordpress/blocks": -/*!********************************!*\ - !*** external ["wp","blocks"] ***! - \********************************/ -/***/ ((module) => { - -module.exports = window["wp"]["blocks"]; - -/***/ }), - -/***/ "@wordpress/components": -/*!************************************!*\ - !*** external ["wp","components"] ***! - \************************************/ -/***/ ((module) => { - -module.exports = window["wp"]["components"]; - -/***/ }), - -/***/ "@wordpress/server-side-render": -/*!******************************************!*\ - !*** external ["wp","serverSideRender"] ***! - \******************************************/ -/***/ ((module) => { - -module.exports = window["wp"]["serverSideRender"]; - -/***/ }), - -/***/ "./src/blocks/release-checks/block.json": -/*!**********************************************!*\ - !*** ./src/blocks/release-checks/block.json ***! - \**********************************************/ -/***/ ((module) => { - -module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"wporg/release-checks","version":"0.1.0","title":"Displays release checks.","category":"design","icon":"","description":"A block to display release checks","textdomain":"wporg","attributes":{},"supports":{"html":false},"usesContext":["postId"],"editorScript":"file:./index.js","render":"file:./render.php","style":"file:./style-index.css"}'); - -/***/ }) - -/******/ }); -/************************************************************************/ -/******/ // The module cache -/******/ var __webpack_module_cache__ = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ // Check if module is in cache -/******/ var cachedModule = __webpack_module_cache__[moduleId]; -/******/ if (cachedModule !== undefined) { -/******/ return cachedModule.exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = __webpack_module_cache__[moduleId] = { -/******/ // no module.id needed -/******/ // no module.loaded needed -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = __webpack_modules__; -/******/ -/************************************************************************/ -/******/ /* webpack/runtime/chunk loaded */ -/******/ (() => { -/******/ var deferred = []; -/******/ __webpack_require__.O = (result, chunkIds, fn, priority) => { -/******/ if(chunkIds) { -/******/ priority = priority || 0; -/******/ for(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1]; -/******/ deferred[i] = [chunkIds, fn, priority]; -/******/ return; -/******/ } -/******/ var notFulfilled = Infinity; -/******/ for (var i = 0; i < deferred.length; i++) { -/******/ var chunkIds = deferred[i][0]; -/******/ var fn = deferred[i][1]; -/******/ var priority = deferred[i][2]; -/******/ var fulfilled = true; -/******/ for (var j = 0; j < chunkIds.length; j++) { -/******/ if ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) { -/******/ chunkIds.splice(j--, 1); -/******/ } else { -/******/ fulfilled = false; -/******/ if(priority < notFulfilled) notFulfilled = priority; -/******/ } -/******/ } -/******/ if(fulfilled) { -/******/ deferred.splice(i--, 1) -/******/ var r = fn(); -/******/ if (r !== undefined) result = r; -/******/ } -/******/ } -/******/ return result; -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/compat get default export */ -/******/ (() => { -/******/ // getDefaultExport function for compatibility with non-harmony modules -/******/ __webpack_require__.n = (module) => { -/******/ var getter = module && module.__esModule ? -/******/ () => (module['default']) : -/******/ () => (module); -/******/ __webpack_require__.d(getter, { a: getter }); -/******/ return getter; -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/define property getters */ -/******/ (() => { -/******/ // define getter functions for harmony exports -/******/ __webpack_require__.d = (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 */ -/******/ (() => { -/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) -/******/ })(); -/******/ -/******/ /* webpack/runtime/make namespace object */ -/******/ (() => { -/******/ // define __esModule on exports -/******/ __webpack_require__.r = (exports) => { -/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { -/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); -/******/ } -/******/ Object.defineProperty(exports, '__esModule', { value: true }); -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/jsonp chunk loading */ -/******/ (() => { -/******/ // no baseURI -/******/ -/******/ // object to store loaded and loading chunks -/******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched -/******/ // [resolve, reject, Promise] = chunk loading, 0 = chunk loaded -/******/ var installedChunks = { -/******/ "blocks/release-checks/index": 0, -/******/ "blocks/release-checks/style-index": 0 -/******/ }; -/******/ -/******/ // no chunk on demand loading -/******/ -/******/ // no prefetching -/******/ -/******/ // no preloaded -/******/ -/******/ // no HMR -/******/ -/******/ // no HMR manifest -/******/ -/******/ __webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0); -/******/ -/******/ // install a JSONP callback for chunk loading -/******/ var webpackJsonpCallback = (parentChunkLoadingFunction, data) => { -/******/ var chunkIds = data[0]; -/******/ var moreModules = data[1]; -/******/ var runtime = data[2]; -/******/ // add "moreModules" to the modules object, -/******/ // then flag all "chunkIds" as loaded and fire callback -/******/ var moduleId, chunkId, i = 0; -/******/ if(chunkIds.some((id) => (installedChunks[id] !== 0))) { -/******/ for(moduleId in moreModules) { -/******/ if(__webpack_require__.o(moreModules, moduleId)) { -/******/ __webpack_require__.m[moduleId] = moreModules[moduleId]; -/******/ } -/******/ } -/******/ if(runtime) var result = runtime(__webpack_require__); -/******/ } -/******/ if(parentChunkLoadingFunction) parentChunkLoadingFunction(data); -/******/ for(;i < chunkIds.length; i++) { -/******/ chunkId = chunkIds[i]; -/******/ if(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) { -/******/ installedChunks[chunkId][0](); -/******/ } -/******/ installedChunks[chunkId] = 0; -/******/ } -/******/ return __webpack_require__.O(result); -/******/ } -/******/ -/******/ var chunkLoadingGlobal = self["webpackChunkwporg_plugins_2024"] = self["webpackChunkwporg_plugins_2024"] || []; -/******/ chunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0)); -/******/ chunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal)); -/******/ })(); -/******/ -/************************************************************************/ -/******/ -/******/ // startup -/******/ // Load entry module and return exports -/******/ // This entry module depends on other loaded chunks and execution need to be delayed -/******/ var __webpack_exports__ = __webpack_require__.O(undefined, ["blocks/release-checks/style-index"], () => (__webpack_require__("./src/blocks/release-checks/index.js"))) -/******/ __webpack_exports__ = __webpack_require__.O(__webpack_exports__); -/******/ -/******/ })() -; -//# sourceMappingURL=index.js.map \ No newline at end of file +(()=>{"use strict";var e,r={651:(e,r,n)=>{const o=window.React,t=window.wp.components,a=window.wp.blocks,i=window.wp.serverSideRender;var l=n.n(i);const s=window.wp.blockEditor,p=JSON.parse('{"u2":"wporg/release-checks"}');(0,a.registerBlockType)(p.u2,{edit:function({attributes:e,name:r}){return(0,o.createElement)("div",{...(0,s.useBlockProps)()},(0,o.createElement)(t.Disabled,null,(0,o.createElement)(l(),{block:r,attributes:e})))},save:()=>null})}},n={};function o(e){var t=n[e];if(void 0!==t)return t.exports;var a=n[e]={exports:{}};return r[e](a,a.exports,o),a.exports}o.m=r,e=[],o.O=(r,n,t,a)=>{if(!n){var i=1/0;for(u=0;u=a)&&Object.keys(o.O).every((e=>o.O[e](n[s])))?n.splice(s--,1):(l=!1,a0&&e[u-1][2]>a;u--)e[u]=e[u-1];e[u]=[n,t,a]},o.n=e=>{var r=e&&e.__esModule?()=>e.default:()=>e;return o.d(r,{a:r}),r},o.d=(e,r)=>{for(var n in r)o.o(r,n)&&!o.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),(()=>{var e={361:0,276:0};o.O.j=r=>0===e[r];var r=(r,n)=>{var t,a,i=n[0],l=n[1],s=n[2],p=0;if(i.some((r=>0!==e[r]))){for(t in l)o.o(l,t)&&(o.m[t]=l[t]);if(s)var u=s(o)}for(r&&r(n);po(651)));t=o.O(t)})(); \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks/style-index.css b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks/style-index.css index 177995f6fe..8b13789179 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks/style-index.css +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks/style-index.css @@ -1,4 +1 @@ -/*!*************************************************************************************************************************************************************************************************************************************************************!*\ - !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/blocks/release-checks/style.scss ***! - \*************************************************************************************************************************************************************************************************************************************************************/ diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-confirmation/index.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-confirmation/index.asset.php index c63d21c5fa..0390d0605c 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-confirmation/index.asset.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-confirmation/index.asset.php @@ -1 +1 @@ - array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => '7e90263901f994049c19'); + array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => '30391b7a73bd29220d6b'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-confirmation/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-confirmation/index.js index 0763f98fa9..44204b200c 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-confirmation/index.js +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-confirmation/index.js @@ -1,298 +1 @@ -/******/ (() => { // webpackBootstrap -/******/ "use strict"; -/******/ var __webpack_modules__ = ({ - -/***/ "./src/blocks/release-confirmation/index.js": -/*!**************************************************!*\ - !*** ./src/blocks/release-confirmation/index.js ***! - \**************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); -/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/blocks */ "@wordpress/blocks"); -/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/server-side-render */ "@wordpress/server-side-render"); -/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/block-editor */ "@wordpress/block-editor"); -/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__); -/* harmony import */ var _block_json__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./block.json */ "./src/blocks/release-confirmation/block.json"); -/* harmony import */ var _style_scss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./style.scss */ "./src/blocks/release-confirmation/style.scss"); - -/** - * WordPress dependencies - */ - - - - - -/** - * Internal dependencies - */ - - -function Edit({ - attributes, - name -}) { - return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", { - ...(0,_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__.useBlockProps)() - }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Disabled, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)((_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default()), { - block: name, - attributes: attributes - }))); -} -(0,_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__.registerBlockType)(_block_json__WEBPACK_IMPORTED_MODULE_5__.name, { - edit: Edit, - save: () => null -}); - -/***/ }), - -/***/ "./src/blocks/release-confirmation/style.scss": -/*!****************************************************!*\ - !*** ./src/blocks/release-confirmation/style.scss ***! - \****************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -// extracted by mini-css-extract-plugin - - -/***/ }), - -/***/ "react": -/*!************************!*\ - !*** external "React" ***! - \************************/ -/***/ ((module) => { - -module.exports = window["React"]; - -/***/ }), - -/***/ "@wordpress/block-editor": -/*!*************************************!*\ - !*** external ["wp","blockEditor"] ***! - \*************************************/ -/***/ ((module) => { - -module.exports = window["wp"]["blockEditor"]; - -/***/ }), - -/***/ "@wordpress/blocks": -/*!********************************!*\ - !*** external ["wp","blocks"] ***! - \********************************/ -/***/ ((module) => { - -module.exports = window["wp"]["blocks"]; - -/***/ }), - -/***/ "@wordpress/components": -/*!************************************!*\ - !*** external ["wp","components"] ***! - \************************************/ -/***/ ((module) => { - -module.exports = window["wp"]["components"]; - -/***/ }), - -/***/ "@wordpress/server-side-render": -/*!******************************************!*\ - !*** external ["wp","serverSideRender"] ***! - \******************************************/ -/***/ ((module) => { - -module.exports = window["wp"]["serverSideRender"]; - -/***/ }), - -/***/ "./src/blocks/release-confirmation/block.json": -/*!****************************************************!*\ - !*** ./src/blocks/release-confirmation/block.json ***! - \****************************************************/ -/***/ ((module) => { - -module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"wporg/release-confirmation","version":"0.1.0","title":"Release confirmation banner.","category":"design","icon":"","description":"A block to display release confirmation banner.","textdomain":"wporg","attributes":{},"supports":{"html":false},"usesContext":["postId"],"editorScript":"file:./index.js","render":"file:./render.php","style":"file:./style-index.css"}'); - -/***/ }) - -/******/ }); -/************************************************************************/ -/******/ // The module cache -/******/ var __webpack_module_cache__ = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ // Check if module is in cache -/******/ var cachedModule = __webpack_module_cache__[moduleId]; -/******/ if (cachedModule !== undefined) { -/******/ return cachedModule.exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = __webpack_module_cache__[moduleId] = { -/******/ // no module.id needed -/******/ // no module.loaded needed -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = __webpack_modules__; -/******/ -/************************************************************************/ -/******/ /* webpack/runtime/chunk loaded */ -/******/ (() => { -/******/ var deferred = []; -/******/ __webpack_require__.O = (result, chunkIds, fn, priority) => { -/******/ if(chunkIds) { -/******/ priority = priority || 0; -/******/ for(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1]; -/******/ deferred[i] = [chunkIds, fn, priority]; -/******/ return; -/******/ } -/******/ var notFulfilled = Infinity; -/******/ for (var i = 0; i < deferred.length; i++) { -/******/ var chunkIds = deferred[i][0]; -/******/ var fn = deferred[i][1]; -/******/ var priority = deferred[i][2]; -/******/ var fulfilled = true; -/******/ for (var j = 0; j < chunkIds.length; j++) { -/******/ if ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) { -/******/ chunkIds.splice(j--, 1); -/******/ } else { -/******/ fulfilled = false; -/******/ if(priority < notFulfilled) notFulfilled = priority; -/******/ } -/******/ } -/******/ if(fulfilled) { -/******/ deferred.splice(i--, 1) -/******/ var r = fn(); -/******/ if (r !== undefined) result = r; -/******/ } -/******/ } -/******/ return result; -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/compat get default export */ -/******/ (() => { -/******/ // getDefaultExport function for compatibility with non-harmony modules -/******/ __webpack_require__.n = (module) => { -/******/ var getter = module && module.__esModule ? -/******/ () => (module['default']) : -/******/ () => (module); -/******/ __webpack_require__.d(getter, { a: getter }); -/******/ return getter; -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/define property getters */ -/******/ (() => { -/******/ // define getter functions for harmony exports -/******/ __webpack_require__.d = (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 */ -/******/ (() => { -/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) -/******/ })(); -/******/ -/******/ /* webpack/runtime/make namespace object */ -/******/ (() => { -/******/ // define __esModule on exports -/******/ __webpack_require__.r = (exports) => { -/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { -/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); -/******/ } -/******/ Object.defineProperty(exports, '__esModule', { value: true }); -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/jsonp chunk loading */ -/******/ (() => { -/******/ // no baseURI -/******/ -/******/ // object to store loaded and loading chunks -/******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched -/******/ // [resolve, reject, Promise] = chunk loading, 0 = chunk loaded -/******/ var installedChunks = { -/******/ "blocks/release-confirmation/index": 0, -/******/ "blocks/release-confirmation/style-index": 0 -/******/ }; -/******/ -/******/ // no chunk on demand loading -/******/ -/******/ // no prefetching -/******/ -/******/ // no preloaded -/******/ -/******/ // no HMR -/******/ -/******/ // no HMR manifest -/******/ -/******/ __webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0); -/******/ -/******/ // install a JSONP callback for chunk loading -/******/ var webpackJsonpCallback = (parentChunkLoadingFunction, data) => { -/******/ var chunkIds = data[0]; -/******/ var moreModules = data[1]; -/******/ var runtime = data[2]; -/******/ // add "moreModules" to the modules object, -/******/ // then flag all "chunkIds" as loaded and fire callback -/******/ var moduleId, chunkId, i = 0; -/******/ if(chunkIds.some((id) => (installedChunks[id] !== 0))) { -/******/ for(moduleId in moreModules) { -/******/ if(__webpack_require__.o(moreModules, moduleId)) { -/******/ __webpack_require__.m[moduleId] = moreModules[moduleId]; -/******/ } -/******/ } -/******/ if(runtime) var result = runtime(__webpack_require__); -/******/ } -/******/ if(parentChunkLoadingFunction) parentChunkLoadingFunction(data); -/******/ for(;i < chunkIds.length; i++) { -/******/ chunkId = chunkIds[i]; -/******/ if(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) { -/******/ installedChunks[chunkId][0](); -/******/ } -/******/ installedChunks[chunkId] = 0; -/******/ } -/******/ return __webpack_require__.O(result); -/******/ } -/******/ -/******/ var chunkLoadingGlobal = self["webpackChunkwporg_plugins_2024"] = self["webpackChunkwporg_plugins_2024"] || []; -/******/ chunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0)); -/******/ chunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal)); -/******/ })(); -/******/ -/************************************************************************/ -/******/ -/******/ // startup -/******/ // Load entry module and return exports -/******/ // This entry module depends on other loaded chunks and execution need to be delayed -/******/ var __webpack_exports__ = __webpack_require__.O(undefined, ["blocks/release-confirmation/style-index"], () => (__webpack_require__("./src/blocks/release-confirmation/index.js"))) -/******/ __webpack_exports__ = __webpack_require__.O(__webpack_exports__); -/******/ -/******/ })() -; -//# sourceMappingURL=index.js.map \ No newline at end of file +(()=>{"use strict";var e,r={376:(e,r,n)=>{const o=window.React,t=window.wp.components,i=window.wp.blocks,a=window.wp.serverSideRender;var l=n.n(a);const s=window.wp.blockEditor,p=JSON.parse('{"u2":"wporg/release-confirmation"}');(0,i.registerBlockType)(p.u2,{edit:function({attributes:e,name:r}){return(0,o.createElement)("div",{...(0,s.useBlockProps)()},(0,o.createElement)(t.Disabled,null,(0,o.createElement)(l(),{block:r,attributes:e})))},save:()=>null})}},n={};function o(e){var t=n[e];if(void 0!==t)return t.exports;var i=n[e]={exports:{}};return r[e](i,i.exports,o),i.exports}o.m=r,e=[],o.O=(r,n,t,i)=>{if(!n){var a=1/0;for(u=0;u=i)&&Object.keys(o.O).every((e=>o.O[e](n[s])))?n.splice(s--,1):(l=!1,i0&&e[u-1][2]>i;u--)e[u]=e[u-1];e[u]=[n,t,i]},o.n=e=>{var r=e&&e.__esModule?()=>e.default:()=>e;return o.d(r,{a:r}),r},o.d=(e,r)=>{for(var n in r)o.o(r,n)&&!o.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),(()=>{var e={3:0,106:0};o.O.j=r=>0===e[r];var r=(r,n)=>{var t,i,a=n[0],l=n[1],s=n[2],p=0;if(a.some((r=>0!==e[r]))){for(t in l)o.o(l,t)&&(o.m[t]=l[t]);if(s)var u=s(o)}for(r&&r(n);po(376)));t=o.O(t)})(); \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-confirmation/style-index.css b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-confirmation/style-index.css index aeb3acd5c6..522a27faaa 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-confirmation/style-index.css +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-confirmation/style-index.css @@ -1,8 +1 @@ -/*!*******************************************************************************************************************************************************************************************************************************************************************!*\ - !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/blocks/release-confirmation/style.scss ***! - \*******************************************************************************************************************************************************************************************************************************************************************/ -.wp-block-wporg-release-confirmation .wp-block-buttons { - display: flex; -} - -/*# sourceMappingURL=style-index.css.map*/ \ No newline at end of file +.wp-block-wporg-release-confirmation .wp-block-buttons{display:flex} diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status-tab/block.json b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status-tab/block.json deleted file mode 100644 index 0bf86d5258..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status-tab/block.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "$schema": "https://schemas.wp.org/trunk/block.json", - "apiVersion": 2, - "name": "wporg/release-status", - "version": "0.1.0", - "title": "Displays release status.", - "category": "design", - "icon": "", - "description": "A block to display release status", - "textdomain": "wporg", - "attributes": {}, - "supports": { - "html": false - }, - "editorScript": "file:./index.js", - "render": "file:./render.php", - "style": "file:./style-index.css" -} \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status-tab/index.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status-tab/index.asset.php deleted file mode 100644 index 32b7d9f747..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status-tab/index.asset.php +++ /dev/null @@ -1 +0,0 @@ - array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => '2fb9fcaa2ec206c0e60f'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status-tab/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status-tab/index.js deleted file mode 100644 index 6918d5b4fa..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status-tab/index.js +++ /dev/null @@ -1,298 +0,0 @@ -/******/ (() => { // webpackBootstrap -/******/ "use strict"; -/******/ var __webpack_modules__ = ({ - -/***/ "./src/blocks/release-status-tab/index.js": -/*!************************************************!*\ - !*** ./src/blocks/release-status-tab/index.js ***! - \************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); -/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/blocks */ "@wordpress/blocks"); -/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/server-side-render */ "@wordpress/server-side-render"); -/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/block-editor */ "@wordpress/block-editor"); -/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__); -/* harmony import */ var _block_json__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./block.json */ "./src/blocks/release-status-tab/block.json"); -/* harmony import */ var _style_scss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./style.scss */ "./src/blocks/release-status-tab/style.scss"); - -/** - * WordPress dependencies - */ - - - - - -/** - * Internal dependencies - */ - - -function Edit({ - attributes, - name -}) { - return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", { - ...(0,_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__.useBlockProps)() - }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Disabled, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)((_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default()), { - block: name, - attributes: attributes - }))); -} -(0,_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__.registerBlockType)(_block_json__WEBPACK_IMPORTED_MODULE_5__.name, { - edit: Edit, - save: () => null -}); - -/***/ }), - -/***/ "./src/blocks/release-status-tab/style.scss": -/*!**************************************************!*\ - !*** ./src/blocks/release-status-tab/style.scss ***! - \**************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -// extracted by mini-css-extract-plugin - - -/***/ }), - -/***/ "react": -/*!************************!*\ - !*** external "React" ***! - \************************/ -/***/ ((module) => { - -module.exports = window["React"]; - -/***/ }), - -/***/ "@wordpress/block-editor": -/*!*************************************!*\ - !*** external ["wp","blockEditor"] ***! - \*************************************/ -/***/ ((module) => { - -module.exports = window["wp"]["blockEditor"]; - -/***/ }), - -/***/ "@wordpress/blocks": -/*!********************************!*\ - !*** external ["wp","blocks"] ***! - \********************************/ -/***/ ((module) => { - -module.exports = window["wp"]["blocks"]; - -/***/ }), - -/***/ "@wordpress/components": -/*!************************************!*\ - !*** external ["wp","components"] ***! - \************************************/ -/***/ ((module) => { - -module.exports = window["wp"]["components"]; - -/***/ }), - -/***/ "@wordpress/server-side-render": -/*!******************************************!*\ - !*** external ["wp","serverSideRender"] ***! - \******************************************/ -/***/ ((module) => { - -module.exports = window["wp"]["serverSideRender"]; - -/***/ }), - -/***/ "./src/blocks/release-status-tab/block.json": -/*!**************************************************!*\ - !*** ./src/blocks/release-status-tab/block.json ***! - \**************************************************/ -/***/ ((module) => { - -module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"wporg/release-status","version":"0.1.0","title":"Displays release status.","category":"design","icon":"","description":"A block to display release status","textdomain":"wporg","attributes":{},"supports":{"html":false},"editorScript":"file:./index.js","render":"file:./render.php","style":"file:./style-index.css"}'); - -/***/ }) - -/******/ }); -/************************************************************************/ -/******/ // The module cache -/******/ var __webpack_module_cache__ = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ // Check if module is in cache -/******/ var cachedModule = __webpack_module_cache__[moduleId]; -/******/ if (cachedModule !== undefined) { -/******/ return cachedModule.exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = __webpack_module_cache__[moduleId] = { -/******/ // no module.id needed -/******/ // no module.loaded needed -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = __webpack_modules__; -/******/ -/************************************************************************/ -/******/ /* webpack/runtime/chunk loaded */ -/******/ (() => { -/******/ var deferred = []; -/******/ __webpack_require__.O = (result, chunkIds, fn, priority) => { -/******/ if(chunkIds) { -/******/ priority = priority || 0; -/******/ for(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1]; -/******/ deferred[i] = [chunkIds, fn, priority]; -/******/ return; -/******/ } -/******/ var notFulfilled = Infinity; -/******/ for (var i = 0; i < deferred.length; i++) { -/******/ var chunkIds = deferred[i][0]; -/******/ var fn = deferred[i][1]; -/******/ var priority = deferred[i][2]; -/******/ var fulfilled = true; -/******/ for (var j = 0; j < chunkIds.length; j++) { -/******/ if ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) { -/******/ chunkIds.splice(j--, 1); -/******/ } else { -/******/ fulfilled = false; -/******/ if(priority < notFulfilled) notFulfilled = priority; -/******/ } -/******/ } -/******/ if(fulfilled) { -/******/ deferred.splice(i--, 1) -/******/ var r = fn(); -/******/ if (r !== undefined) result = r; -/******/ } -/******/ } -/******/ return result; -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/compat get default export */ -/******/ (() => { -/******/ // getDefaultExport function for compatibility with non-harmony modules -/******/ __webpack_require__.n = (module) => { -/******/ var getter = module && module.__esModule ? -/******/ () => (module['default']) : -/******/ () => (module); -/******/ __webpack_require__.d(getter, { a: getter }); -/******/ return getter; -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/define property getters */ -/******/ (() => { -/******/ // define getter functions for harmony exports -/******/ __webpack_require__.d = (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 */ -/******/ (() => { -/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) -/******/ })(); -/******/ -/******/ /* webpack/runtime/make namespace object */ -/******/ (() => { -/******/ // define __esModule on exports -/******/ __webpack_require__.r = (exports) => { -/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { -/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); -/******/ } -/******/ Object.defineProperty(exports, '__esModule', { value: true }); -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/jsonp chunk loading */ -/******/ (() => { -/******/ // no baseURI -/******/ -/******/ // object to store loaded and loading chunks -/******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched -/******/ // [resolve, reject, Promise] = chunk loading, 0 = chunk loaded -/******/ var installedChunks = { -/******/ "blocks/release-status-tab/index": 0, -/******/ "blocks/release-status-tab/style-index": 0 -/******/ }; -/******/ -/******/ // no chunk on demand loading -/******/ -/******/ // no prefetching -/******/ -/******/ // no preloaded -/******/ -/******/ // no HMR -/******/ -/******/ // no HMR manifest -/******/ -/******/ __webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0); -/******/ -/******/ // install a JSONP callback for chunk loading -/******/ var webpackJsonpCallback = (parentChunkLoadingFunction, data) => { -/******/ var chunkIds = data[0]; -/******/ var moreModules = data[1]; -/******/ var runtime = data[2]; -/******/ // add "moreModules" to the modules object, -/******/ // then flag all "chunkIds" as loaded and fire callback -/******/ var moduleId, chunkId, i = 0; -/******/ if(chunkIds.some((id) => (installedChunks[id] !== 0))) { -/******/ for(moduleId in moreModules) { -/******/ if(__webpack_require__.o(moreModules, moduleId)) { -/******/ __webpack_require__.m[moduleId] = moreModules[moduleId]; -/******/ } -/******/ } -/******/ if(runtime) var result = runtime(__webpack_require__); -/******/ } -/******/ if(parentChunkLoadingFunction) parentChunkLoadingFunction(data); -/******/ for(;i < chunkIds.length; i++) { -/******/ chunkId = chunkIds[i]; -/******/ if(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) { -/******/ installedChunks[chunkId][0](); -/******/ } -/******/ installedChunks[chunkId] = 0; -/******/ } -/******/ return __webpack_require__.O(result); -/******/ } -/******/ -/******/ var chunkLoadingGlobal = self["webpackChunkwporg_plugins_2024"] = self["webpackChunkwporg_plugins_2024"] || []; -/******/ chunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0)); -/******/ chunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal)); -/******/ })(); -/******/ -/************************************************************************/ -/******/ -/******/ // startup -/******/ // Load entry module and return exports -/******/ // This entry module depends on other loaded chunks and execution need to be delayed -/******/ var __webpack_exports__ = __webpack_require__.O(undefined, ["blocks/release-status-tab/style-index"], () => (__webpack_require__("./src/blocks/release-status-tab/index.js"))) -/******/ __webpack_exports__ = __webpack_require__.O(__webpack_exports__); -/******/ -/******/ })() -; -//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status-tab/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status-tab/render.php deleted file mode 100644 index 55230a69d7..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status-tab/render.php +++ /dev/null @@ -1,11 +0,0 @@ - - -
      -
    • First Item
    • -
    • Second Item
    • -
    diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status-tab/style-index.css b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status-tab/style-index.css deleted file mode 100644 index a6faefb59c..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status-tab/style-index.css +++ /dev/null @@ -1,4 +0,0 @@ -/*!*****************************************************************************************************************************************************************************************************************************************************************!*\ - !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/blocks/release-status-tab/style.scss ***! - \*****************************************************************************************************************************************************************************************************************************************************************/ - diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status/index.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status/index.asset.php index a633bbc607..ae48d16627 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status/index.asset.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status/index.asset.php @@ -1 +1 @@ - array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => 'c8b67e982eee590fc342'); + array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => '5ba0c1f0bcdeb1df6776'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status/index.js index 7e48e7abc5..46af162598 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status/index.js +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status/index.js @@ -1,298 +1 @@ -/******/ (() => { // webpackBootstrap -/******/ "use strict"; -/******/ var __webpack_modules__ = ({ - -/***/ "./src/blocks/release-status/index.js": -/*!********************************************!*\ - !*** ./src/blocks/release-status/index.js ***! - \********************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); -/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/blocks */ "@wordpress/blocks"); -/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/server-side-render */ "@wordpress/server-side-render"); -/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/block-editor */ "@wordpress/block-editor"); -/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__); -/* harmony import */ var _block_json__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./block.json */ "./src/blocks/release-status/block.json"); -/* harmony import */ var _style_scss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./style.scss */ "./src/blocks/release-status/style.scss"); - -/** - * WordPress dependencies - */ - - - - - -/** - * Internal dependencies - */ - - -function Edit({ - attributes, - name -}) { - return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", { - ...(0,_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__.useBlockProps)() - }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Disabled, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)((_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default()), { - block: name, - attributes: attributes - }))); -} -(0,_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__.registerBlockType)(_block_json__WEBPACK_IMPORTED_MODULE_5__.name, { - edit: Edit, - save: () => null -}); - -/***/ }), - -/***/ "./src/blocks/release-status/style.scss": -/*!**********************************************!*\ - !*** ./src/blocks/release-status/style.scss ***! - \**********************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -// extracted by mini-css-extract-plugin - - -/***/ }), - -/***/ "react": -/*!************************!*\ - !*** external "React" ***! - \************************/ -/***/ ((module) => { - -module.exports = window["React"]; - -/***/ }), - -/***/ "@wordpress/block-editor": -/*!*************************************!*\ - !*** external ["wp","blockEditor"] ***! - \*************************************/ -/***/ ((module) => { - -module.exports = window["wp"]["blockEditor"]; - -/***/ }), - -/***/ "@wordpress/blocks": -/*!********************************!*\ - !*** external ["wp","blocks"] ***! - \********************************/ -/***/ ((module) => { - -module.exports = window["wp"]["blocks"]; - -/***/ }), - -/***/ "@wordpress/components": -/*!************************************!*\ - !*** external ["wp","components"] ***! - \************************************/ -/***/ ((module) => { - -module.exports = window["wp"]["components"]; - -/***/ }), - -/***/ "@wordpress/server-side-render": -/*!******************************************!*\ - !*** external ["wp","serverSideRender"] ***! - \******************************************/ -/***/ ((module) => { - -module.exports = window["wp"]["serverSideRender"]; - -/***/ }), - -/***/ "./src/blocks/release-status/block.json": -/*!**********************************************!*\ - !*** ./src/blocks/release-status/block.json ***! - \**********************************************/ -/***/ ((module) => { - -module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"wporg/release-status","version":"0.1.0","title":"Displays release status.","category":"design","icon":"","description":"A block to display release status","textdomain":"wporg","attributes":{},"supports":{"html":false},"usesContext":["postId"],"editorScript":"file:./index.js","render":"file:./render.php","style":"file:./style-index.css"}'); - -/***/ }) - -/******/ }); -/************************************************************************/ -/******/ // The module cache -/******/ var __webpack_module_cache__ = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ // Check if module is in cache -/******/ var cachedModule = __webpack_module_cache__[moduleId]; -/******/ if (cachedModule !== undefined) { -/******/ return cachedModule.exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = __webpack_module_cache__[moduleId] = { -/******/ // no module.id needed -/******/ // no module.loaded needed -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = __webpack_modules__; -/******/ -/************************************************************************/ -/******/ /* webpack/runtime/chunk loaded */ -/******/ (() => { -/******/ var deferred = []; -/******/ __webpack_require__.O = (result, chunkIds, fn, priority) => { -/******/ if(chunkIds) { -/******/ priority = priority || 0; -/******/ for(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1]; -/******/ deferred[i] = [chunkIds, fn, priority]; -/******/ return; -/******/ } -/******/ var notFulfilled = Infinity; -/******/ for (var i = 0; i < deferred.length; i++) { -/******/ var chunkIds = deferred[i][0]; -/******/ var fn = deferred[i][1]; -/******/ var priority = deferred[i][2]; -/******/ var fulfilled = true; -/******/ for (var j = 0; j < chunkIds.length; j++) { -/******/ if ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) { -/******/ chunkIds.splice(j--, 1); -/******/ } else { -/******/ fulfilled = false; -/******/ if(priority < notFulfilled) notFulfilled = priority; -/******/ } -/******/ } -/******/ if(fulfilled) { -/******/ deferred.splice(i--, 1) -/******/ var r = fn(); -/******/ if (r !== undefined) result = r; -/******/ } -/******/ } -/******/ return result; -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/compat get default export */ -/******/ (() => { -/******/ // getDefaultExport function for compatibility with non-harmony modules -/******/ __webpack_require__.n = (module) => { -/******/ var getter = module && module.__esModule ? -/******/ () => (module['default']) : -/******/ () => (module); -/******/ __webpack_require__.d(getter, { a: getter }); -/******/ return getter; -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/define property getters */ -/******/ (() => { -/******/ // define getter functions for harmony exports -/******/ __webpack_require__.d = (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 */ -/******/ (() => { -/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) -/******/ })(); -/******/ -/******/ /* webpack/runtime/make namespace object */ -/******/ (() => { -/******/ // define __esModule on exports -/******/ __webpack_require__.r = (exports) => { -/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { -/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); -/******/ } -/******/ Object.defineProperty(exports, '__esModule', { value: true }); -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/jsonp chunk loading */ -/******/ (() => { -/******/ // no baseURI -/******/ -/******/ // object to store loaded and loading chunks -/******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched -/******/ // [resolve, reject, Promise] = chunk loading, 0 = chunk loaded -/******/ var installedChunks = { -/******/ "blocks/release-status/index": 0, -/******/ "blocks/release-status/style-index": 0 -/******/ }; -/******/ -/******/ // no chunk on demand loading -/******/ -/******/ // no prefetching -/******/ -/******/ // no preloaded -/******/ -/******/ // no HMR -/******/ -/******/ // no HMR manifest -/******/ -/******/ __webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0); -/******/ -/******/ // install a JSONP callback for chunk loading -/******/ var webpackJsonpCallback = (parentChunkLoadingFunction, data) => { -/******/ var chunkIds = data[0]; -/******/ var moreModules = data[1]; -/******/ var runtime = data[2]; -/******/ // add "moreModules" to the modules object, -/******/ // then flag all "chunkIds" as loaded and fire callback -/******/ var moduleId, chunkId, i = 0; -/******/ if(chunkIds.some((id) => (installedChunks[id] !== 0))) { -/******/ for(moduleId in moreModules) { -/******/ if(__webpack_require__.o(moreModules, moduleId)) { -/******/ __webpack_require__.m[moduleId] = moreModules[moduleId]; -/******/ } -/******/ } -/******/ if(runtime) var result = runtime(__webpack_require__); -/******/ } -/******/ if(parentChunkLoadingFunction) parentChunkLoadingFunction(data); -/******/ for(;i < chunkIds.length; i++) { -/******/ chunkId = chunkIds[i]; -/******/ if(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) { -/******/ installedChunks[chunkId][0](); -/******/ } -/******/ installedChunks[chunkId] = 0; -/******/ } -/******/ return __webpack_require__.O(result); -/******/ } -/******/ -/******/ var chunkLoadingGlobal = self["webpackChunkwporg_plugins_2024"] = self["webpackChunkwporg_plugins_2024"] || []; -/******/ chunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0)); -/******/ chunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal)); -/******/ })(); -/******/ -/************************************************************************/ -/******/ -/******/ // startup -/******/ // Load entry module and return exports -/******/ // This entry module depends on other loaded chunks and execution need to be delayed -/******/ var __webpack_exports__ = __webpack_require__.O(undefined, ["blocks/release-status/style-index"], () => (__webpack_require__("./src/blocks/release-status/index.js"))) -/******/ __webpack_exports__ = __webpack_require__.O(__webpack_exports__); -/******/ -/******/ })() -; -//# sourceMappingURL=index.js.map \ No newline at end of file +(()=>{"use strict";var e,r={728:(e,r,t)=>{const n=window.React,o=window.wp.components,a=window.wp.blocks,i=window.wp.serverSideRender;var s=t.n(i);const l=window.wp.blockEditor,u=JSON.parse('{"u2":"wporg/release-status"}');(0,a.registerBlockType)(u.u2,{edit:function({attributes:e,name:r}){return(0,n.createElement)("div",{...(0,l.useBlockProps)()},(0,n.createElement)(o.Disabled,null,(0,n.createElement)(s(),{block:r,attributes:e})))},save:()=>null})}},t={};function n(e){var o=t[e];if(void 0!==o)return o.exports;var a=t[e]={exports:{}};return r[e](a,a.exports,n),a.exports}n.m=r,e=[],n.O=(r,t,o,a)=>{if(!t){var i=1/0;for(p=0;p=a)&&Object.keys(n.O).every((e=>n.O[e](t[l])))?t.splice(l--,1):(s=!1,a0&&e[p-1][2]>a;p--)e[p]=e[p-1];e[p]=[t,o,a]},n.n=e=>{var r=e&&e.__esModule?()=>e.default:()=>e;return n.d(r,{a:r}),r},n.d=(e,r)=>{for(var t in r)n.o(r,t)&&!n.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:r[t]})},n.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),(()=>{var e={400:0,467:0};n.O.j=r=>0===e[r];var r=(r,t)=>{var o,a,i=t[0],s=t[1],l=t[2],u=0;if(i.some((r=>0!==e[r]))){for(o in s)n.o(s,o)&&(n.m[o]=s[o]);if(l)var p=l(n)}for(r&&r(t);un(728)));o=n.O(o)})(); \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status/style-index.css b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status/style-index.css index 3a9fab5125..0d122edafe 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status/style-index.css +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status/style-index.css @@ -1,11 +1 @@ -/*!*************************************************************************************************************************************************************************************************************************************************************!*\ - !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/blocks/release-status/style.scss ***! - \*************************************************************************************************************************************************************************************************************************************************************/ -.wp-block-wporg-release-status { - padding: 2px 10px; - border: 1px solid var(--wp--preset--color--blueberry-3); - font-size: var(--wp--preset--font-size--extra-small); - border-radius: var(--wp--custom--button--border--radius); -} - -/*# sourceMappingURL=style-index.css.map*/ \ No newline at end of file +.wp-block-wporg-release-status{border:1px solid var(--wp--preset--color--blueberry-3);border-radius:var(--wp--custom--button--border--radius);font-size:var(--wp--preset--font-size--extra-small);padding:2px 10px} diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/releases/index.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/releases/index.asset.php index cd604a1be5..421ed4f5a8 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/releases/index.asset.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/releases/index.asset.php @@ -1 +1 @@ - array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => '92b98939fc1c5933a17d'); + array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => 'e500d039a1751ee0eadd'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/releases/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/releases/index.js index dc1de64504..f71a7fd809 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/releases/index.js +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/releases/index.js @@ -1,298 +1 @@ -/******/ (() => { // webpackBootstrap -/******/ "use strict"; -/******/ var __webpack_modules__ = ({ - -/***/ "./src/blocks/releases/index.js": -/*!**************************************!*\ - !*** ./src/blocks/releases/index.js ***! - \**************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); -/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/blocks */ "@wordpress/blocks"); -/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/server-side-render */ "@wordpress/server-side-render"); -/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/block-editor */ "@wordpress/block-editor"); -/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__); -/* harmony import */ var _block_json__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./block.json */ "./src/blocks/releases/block.json"); -/* harmony import */ var _style_scss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./style.scss */ "./src/blocks/releases/style.scss"); - -/** - * WordPress dependencies - */ - - - - - -/** - * Internal dependencies - */ - - -function Edit({ - attributes, - name -}) { - return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", { - ...(0,_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__.useBlockProps)() - }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Disabled, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)((_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default()), { - block: name, - attributes: attributes - }))); -} -(0,_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__.registerBlockType)(_block_json__WEBPACK_IMPORTED_MODULE_5__.name, { - edit: Edit, - save: () => null -}); - -/***/ }), - -/***/ "./src/blocks/releases/style.scss": -/*!****************************************!*\ - !*** ./src/blocks/releases/style.scss ***! - \****************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -// extracted by mini-css-extract-plugin - - -/***/ }), - -/***/ "react": -/*!************************!*\ - !*** external "React" ***! - \************************/ -/***/ ((module) => { - -module.exports = window["React"]; - -/***/ }), - -/***/ "@wordpress/block-editor": -/*!*************************************!*\ - !*** external ["wp","blockEditor"] ***! - \*************************************/ -/***/ ((module) => { - -module.exports = window["wp"]["blockEditor"]; - -/***/ }), - -/***/ "@wordpress/blocks": -/*!********************************!*\ - !*** external ["wp","blocks"] ***! - \********************************/ -/***/ ((module) => { - -module.exports = window["wp"]["blocks"]; - -/***/ }), - -/***/ "@wordpress/components": -/*!************************************!*\ - !*** external ["wp","components"] ***! - \************************************/ -/***/ ((module) => { - -module.exports = window["wp"]["components"]; - -/***/ }), - -/***/ "@wordpress/server-side-render": -/*!******************************************!*\ - !*** external ["wp","serverSideRender"] ***! - \******************************************/ -/***/ ((module) => { - -module.exports = window["wp"]["serverSideRender"]; - -/***/ }), - -/***/ "./src/blocks/releases/block.json": -/*!****************************************!*\ - !*** ./src/blocks/releases/block.json ***! - \****************************************/ -/***/ ((module) => { - -module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"wporg/releases","version":"0.1.0","title":"Displays releases.","category":"design","icon":"","description":"A block to display releases","textdomain":"wporg","attributes":{},"supports":{"html":false},"editorScript":"file:./index.js","render":"file:./render.php","style":"file:./style-index.css"}'); - -/***/ }) - -/******/ }); -/************************************************************************/ -/******/ // The module cache -/******/ var __webpack_module_cache__ = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ // Check if module is in cache -/******/ var cachedModule = __webpack_module_cache__[moduleId]; -/******/ if (cachedModule !== undefined) { -/******/ return cachedModule.exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = __webpack_module_cache__[moduleId] = { -/******/ // no module.id needed -/******/ // no module.loaded needed -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = __webpack_modules__; -/******/ -/************************************************************************/ -/******/ /* webpack/runtime/chunk loaded */ -/******/ (() => { -/******/ var deferred = []; -/******/ __webpack_require__.O = (result, chunkIds, fn, priority) => { -/******/ if(chunkIds) { -/******/ priority = priority || 0; -/******/ for(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1]; -/******/ deferred[i] = [chunkIds, fn, priority]; -/******/ return; -/******/ } -/******/ var notFulfilled = Infinity; -/******/ for (var i = 0; i < deferred.length; i++) { -/******/ var chunkIds = deferred[i][0]; -/******/ var fn = deferred[i][1]; -/******/ var priority = deferred[i][2]; -/******/ var fulfilled = true; -/******/ for (var j = 0; j < chunkIds.length; j++) { -/******/ if ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) { -/******/ chunkIds.splice(j--, 1); -/******/ } else { -/******/ fulfilled = false; -/******/ if(priority < notFulfilled) notFulfilled = priority; -/******/ } -/******/ } -/******/ if(fulfilled) { -/******/ deferred.splice(i--, 1) -/******/ var r = fn(); -/******/ if (r !== undefined) result = r; -/******/ } -/******/ } -/******/ return result; -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/compat get default export */ -/******/ (() => { -/******/ // getDefaultExport function for compatibility with non-harmony modules -/******/ __webpack_require__.n = (module) => { -/******/ var getter = module && module.__esModule ? -/******/ () => (module['default']) : -/******/ () => (module); -/******/ __webpack_require__.d(getter, { a: getter }); -/******/ return getter; -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/define property getters */ -/******/ (() => { -/******/ // define getter functions for harmony exports -/******/ __webpack_require__.d = (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 */ -/******/ (() => { -/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) -/******/ })(); -/******/ -/******/ /* webpack/runtime/make namespace object */ -/******/ (() => { -/******/ // define __esModule on exports -/******/ __webpack_require__.r = (exports) => { -/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { -/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); -/******/ } -/******/ Object.defineProperty(exports, '__esModule', { value: true }); -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/jsonp chunk loading */ -/******/ (() => { -/******/ // no baseURI -/******/ -/******/ // object to store loaded and loading chunks -/******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched -/******/ // [resolve, reject, Promise] = chunk loading, 0 = chunk loaded -/******/ var installedChunks = { -/******/ "blocks/releases/index": 0, -/******/ "blocks/releases/style-index": 0 -/******/ }; -/******/ -/******/ // no chunk on demand loading -/******/ -/******/ // no prefetching -/******/ -/******/ // no preloaded -/******/ -/******/ // no HMR -/******/ -/******/ // no HMR manifest -/******/ -/******/ __webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0); -/******/ -/******/ // install a JSONP callback for chunk loading -/******/ var webpackJsonpCallback = (parentChunkLoadingFunction, data) => { -/******/ var chunkIds = data[0]; -/******/ var moreModules = data[1]; -/******/ var runtime = data[2]; -/******/ // add "moreModules" to the modules object, -/******/ // then flag all "chunkIds" as loaded and fire callback -/******/ var moduleId, chunkId, i = 0; -/******/ if(chunkIds.some((id) => (installedChunks[id] !== 0))) { -/******/ for(moduleId in moreModules) { -/******/ if(__webpack_require__.o(moreModules, moduleId)) { -/******/ __webpack_require__.m[moduleId] = moreModules[moduleId]; -/******/ } -/******/ } -/******/ if(runtime) var result = runtime(__webpack_require__); -/******/ } -/******/ if(parentChunkLoadingFunction) parentChunkLoadingFunction(data); -/******/ for(;i < chunkIds.length; i++) { -/******/ chunkId = chunkIds[i]; -/******/ if(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) { -/******/ installedChunks[chunkId][0](); -/******/ } -/******/ installedChunks[chunkId] = 0; -/******/ } -/******/ return __webpack_require__.O(result); -/******/ } -/******/ -/******/ var chunkLoadingGlobal = self["webpackChunkwporg_plugins_2024"] = self["webpackChunkwporg_plugins_2024"] || []; -/******/ chunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0)); -/******/ chunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal)); -/******/ })(); -/******/ -/************************************************************************/ -/******/ -/******/ // startup -/******/ // Load entry module and return exports -/******/ // This entry module depends on other loaded chunks and execution need to be delayed -/******/ var __webpack_exports__ = __webpack_require__.O(undefined, ["blocks/releases/style-index"], () => (__webpack_require__("./src/blocks/releases/index.js"))) -/******/ __webpack_exports__ = __webpack_require__.O(__webpack_exports__); -/******/ -/******/ })() -; -//# sourceMappingURL=index.js.map \ No newline at end of file +(()=>{"use strict";var e,r={169:(e,r,n)=>{const o=window.React,t=window.wp.components,a=window.wp.blocks,i=window.wp.serverSideRender;var l=n.n(i);const s=window.wp.blockEditor,p=JSON.parse('{"u2":"wporg/releases"}');(0,a.registerBlockType)(p.u2,{edit:function({attributes:e,name:r}){return(0,o.createElement)("div",{...(0,s.useBlockProps)()},(0,o.createElement)(t.Disabled,null,(0,o.createElement)(l(),{block:r,attributes:e})))},save:()=>null})}},n={};function o(e){var t=n[e];if(void 0!==t)return t.exports;var a=n[e]={exports:{}};return r[e](a,a.exports,o),a.exports}o.m=r,e=[],o.O=(r,n,t,a)=>{if(!n){var i=1/0;for(u=0;u=a)&&Object.keys(o.O).every((e=>o.O[e](n[s])))?n.splice(s--,1):(l=!1,a0&&e[u-1][2]>a;u--)e[u]=e[u-1];e[u]=[n,t,a]},o.n=e=>{var r=e&&e.__esModule?()=>e.default:()=>e;return o.d(r,{a:r}),r},o.d=(e,r)=>{for(var n in r)o.o(r,n)&&!o.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),(()=>{var e={291:0,629:0};o.O.j=r=>0===e[r];var r=(r,n)=>{var t,a,i=n[0],l=n[1],s=n[2],p=0;if(i.some((r=>0!==e[r]))){for(t in l)o.o(l,t)&&(o.m[t]=l[t]);if(s)var u=s(o)}for(r&&r(n);po(169)));t=o.O(t)})(); \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/releases/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/releases/render.php index aa0276a40c..43a3016ab4 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/releases/render.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/releases/render.php @@ -1,8 +1,6 @@ -
    @@ -41,13 +39,12 @@
    - - + BLOCKS ); printf( - '
    %2$s
    ', + '
    %2$s
    ', get_block_wrapper_attributes(), $content ); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/releases/style-index.css b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/releases/style-index.css index 7adf0240dc..250674eb87 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/releases/style-index.css +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/releases/style-index.css @@ -1,9 +1 @@ -/*!*******************************************************************************************************************************************************************************************************************************************************!*\ - !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/blocks/releases/style.scss ***! - \*******************************************************************************************************************************************************************************************************************************************************/ -.wp-block-wporg-releases ul { - margin-top: 0; - font-size: var(--wp--preset--font-size--small); -} - -/*# sourceMappingURL=style-index.css.map*/ \ No newline at end of file +.wp-block-wporg-releases ul{font-size:var(--wp--preset--font-size--small);margin-top:0} diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/search-page/index.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/search-page/index.asset.php index 324a1e825f..3874c78df8 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/search-page/index.asset.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/search-page/index.asset.php @@ -1 +1 @@ - array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => '2932d78d72daed3eaacc'); + array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => '6b2f02802534bd210435'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/search-page/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/search-page/index.js index 7e3f159885..66e06627aa 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/search-page/index.js +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/search-page/index.js @@ -1,183 +1 @@ -/******/ (() => { // webpackBootstrap -/******/ "use strict"; -/******/ var __webpack_modules__ = ({ - -/***/ "react": -/*!************************!*\ - !*** external "React" ***! - \************************/ -/***/ ((module) => { - -module.exports = window["React"]; - -/***/ }), - -/***/ "@wordpress/block-editor": -/*!*************************************!*\ - !*** external ["wp","blockEditor"] ***! - \*************************************/ -/***/ ((module) => { - -module.exports = window["wp"]["blockEditor"]; - -/***/ }), - -/***/ "@wordpress/blocks": -/*!********************************!*\ - !*** external ["wp","blocks"] ***! - \********************************/ -/***/ ((module) => { - -module.exports = window["wp"]["blocks"]; - -/***/ }), - -/***/ "@wordpress/components": -/*!************************************!*\ - !*** external ["wp","components"] ***! - \************************************/ -/***/ ((module) => { - -module.exports = window["wp"]["components"]; - -/***/ }), - -/***/ "@wordpress/server-side-render": -/*!******************************************!*\ - !*** external ["wp","serverSideRender"] ***! - \******************************************/ -/***/ ((module) => { - -module.exports = window["wp"]["serverSideRender"]; - -/***/ }), - -/***/ "./src/blocks/search-page/block.json": -/*!*******************************************!*\ - !*** ./src/blocks/search-page/block.json ***! - \*******************************************/ -/***/ ((module) => { - -module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"wporg/search-page","version":"0.1.0","title":"Search Page Content","category":"design","icon":"","description":"A block that displays the search page content","textdomain":"wporg","attributes":{},"supports":{"html":false},"editorScript":"file:./index.js","render":"file:./render.php"}'); - -/***/ }) - -/******/ }); -/************************************************************************/ -/******/ // The module cache -/******/ var __webpack_module_cache__ = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ // Check if module is in cache -/******/ var cachedModule = __webpack_module_cache__[moduleId]; -/******/ if (cachedModule !== undefined) { -/******/ return cachedModule.exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = __webpack_module_cache__[moduleId] = { -/******/ // no module.id needed -/******/ // no module.loaded needed -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/************************************************************************/ -/******/ /* webpack/runtime/compat get default export */ -/******/ (() => { -/******/ // getDefaultExport function for compatibility with non-harmony modules -/******/ __webpack_require__.n = (module) => { -/******/ var getter = module && module.__esModule ? -/******/ () => (module['default']) : -/******/ () => (module); -/******/ __webpack_require__.d(getter, { a: getter }); -/******/ return getter; -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/define property getters */ -/******/ (() => { -/******/ // define getter functions for harmony exports -/******/ __webpack_require__.d = (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 */ -/******/ (() => { -/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) -/******/ })(); -/******/ -/******/ /* webpack/runtime/make namespace object */ -/******/ (() => { -/******/ // define __esModule on exports -/******/ __webpack_require__.r = (exports) => { -/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { -/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); -/******/ } -/******/ Object.defineProperty(exports, '__esModule', { value: true }); -/******/ }; -/******/ })(); -/******/ -/************************************************************************/ -var __webpack_exports__ = {}; -// This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk. -(() => { -/*!*****************************************!*\ - !*** ./src/blocks/search-page/index.js ***! - \*****************************************/ -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); -/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/blocks */ "@wordpress/blocks"); -/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/server-side-render */ "@wordpress/server-side-render"); -/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/block-editor */ "@wordpress/block-editor"); -/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__); -/* harmony import */ var _block_json__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./block.json */ "./src/blocks/search-page/block.json"); - -/** - * WordPress dependencies - */ - - - - - -/** - * Internal dependencies - */ - -function Edit({ - attributes, - name -}) { - return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", { - ...(0,_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__.useBlockProps)() - }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Disabled, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)((_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default()), { - block: name, - attributes: attributes - }))); -} -(0,_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__.registerBlockType)(_block_json__WEBPACK_IMPORTED_MODULE_5__.name, { - edit: Edit, - save: () => null -}); -})(); - -/******/ })() -; -//# sourceMappingURL=index.js.map \ No newline at end of file +(()=>{"use strict";var e={n:t=>{var r=t&&t.__esModule?()=>t.default:()=>t;return e.d(r,{a:r}),r},d:(t,r)=>{for(var o in r)e.o(r,o)&&!e.o(t,o)&&Object.defineProperty(t,o,{enumerable:!0,get:r[o]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t)};const t=window.React,r=window.wp.components,o=window.wp.blocks,n=window.wp.serverSideRender;var a=e.n(n);const c=window.wp.blockEditor,l=JSON.parse('{"u2":"wporg/search-page"}');(0,o.registerBlockType)(l.u2,{edit:function({attributes:e,name:o}){return(0,t.createElement)("div",{...(0,c.useBlockProps)()},(0,t.createElement)(r.Disabled,null,(0,t.createElement)(a(),{block:o,attributes:e})))},save:()=>null})})(); \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/single-plugin/index.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/single-plugin/index.asset.php index d35f709556..cb40720c88 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/single-plugin/index.asset.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/single-plugin/index.asset.php @@ -1 +1 @@ - array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => '1bb248b43dcc36e48747'); + array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => '553d7b70458e5cb3fa39'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/single-plugin/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/single-plugin/index.js index 8c8d7df376..4d9a19fd2b 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/single-plugin/index.js +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/single-plugin/index.js @@ -1,183 +1 @@ -/******/ (() => { // webpackBootstrap -/******/ "use strict"; -/******/ var __webpack_modules__ = ({ - -/***/ "react": -/*!************************!*\ - !*** external "React" ***! - \************************/ -/***/ ((module) => { - -module.exports = window["React"]; - -/***/ }), - -/***/ "@wordpress/block-editor": -/*!*************************************!*\ - !*** external ["wp","blockEditor"] ***! - \*************************************/ -/***/ ((module) => { - -module.exports = window["wp"]["blockEditor"]; - -/***/ }), - -/***/ "@wordpress/blocks": -/*!********************************!*\ - !*** external ["wp","blocks"] ***! - \********************************/ -/***/ ((module) => { - -module.exports = window["wp"]["blocks"]; - -/***/ }), - -/***/ "@wordpress/components": -/*!************************************!*\ - !*** external ["wp","components"] ***! - \************************************/ -/***/ ((module) => { - -module.exports = window["wp"]["components"]; - -/***/ }), - -/***/ "@wordpress/server-side-render": -/*!******************************************!*\ - !*** external ["wp","serverSideRender"] ***! - \******************************************/ -/***/ ((module) => { - -module.exports = window["wp"]["serverSideRender"]; - -/***/ }), - -/***/ "./src/blocks/single-plugin/block.json": -/*!*********************************************!*\ - !*** ./src/blocks/single-plugin/block.json ***! - \*********************************************/ -/***/ ((module) => { - -module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"wporg/single-plugin","version":"0.1.0","title":"Single Plugin Content","category":"design","icon":"","description":"A block that displays the single plugin content","textdomain":"wporg","attributes":{},"supports":{"html":false},"usesContext":["postId"],"editorScript":"file:./index.js","render":"file:./render.php"}'); - -/***/ }) - -/******/ }); -/************************************************************************/ -/******/ // The module cache -/******/ var __webpack_module_cache__ = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ // Check if module is in cache -/******/ var cachedModule = __webpack_module_cache__[moduleId]; -/******/ if (cachedModule !== undefined) { -/******/ return cachedModule.exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = __webpack_module_cache__[moduleId] = { -/******/ // no module.id needed -/******/ // no module.loaded needed -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/************************************************************************/ -/******/ /* webpack/runtime/compat get default export */ -/******/ (() => { -/******/ // getDefaultExport function for compatibility with non-harmony modules -/******/ __webpack_require__.n = (module) => { -/******/ var getter = module && module.__esModule ? -/******/ () => (module['default']) : -/******/ () => (module); -/******/ __webpack_require__.d(getter, { a: getter }); -/******/ return getter; -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/define property getters */ -/******/ (() => { -/******/ // define getter functions for harmony exports -/******/ __webpack_require__.d = (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 */ -/******/ (() => { -/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) -/******/ })(); -/******/ -/******/ /* webpack/runtime/make namespace object */ -/******/ (() => { -/******/ // define __esModule on exports -/******/ __webpack_require__.r = (exports) => { -/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { -/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); -/******/ } -/******/ Object.defineProperty(exports, '__esModule', { value: true }); -/******/ }; -/******/ })(); -/******/ -/************************************************************************/ -var __webpack_exports__ = {}; -// This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk. -(() => { -/*!*******************************************!*\ - !*** ./src/blocks/single-plugin/index.js ***! - \*******************************************/ -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); -/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/blocks */ "@wordpress/blocks"); -/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/server-side-render */ "@wordpress/server-side-render"); -/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/block-editor */ "@wordpress/block-editor"); -/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__); -/* harmony import */ var _block_json__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./block.json */ "./src/blocks/single-plugin/block.json"); - -/** - * WordPress dependencies - */ - - - - - -/** - * Internal dependencies - */ - -function Edit({ - attributes, - name -}) { - return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", { - ...(0,_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__.useBlockProps)() - }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Disabled, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)((_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default()), { - block: name, - attributes: attributes - }))); -} -(0,_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__.registerBlockType)(_block_json__WEBPACK_IMPORTED_MODULE_5__.name, { - edit: Edit, - save: () => null -}); -})(); - -/******/ })() -; -//# sourceMappingURL=index.js.map \ No newline at end of file +(()=>{"use strict";var e={n:t=>{var r=t&&t.__esModule?()=>t.default:()=>t;return e.d(r,{a:r}),r},d:(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:(e,t)=>Object.prototype.hasOwnProperty.call(e,t)};const t=window.React,r=window.wp.components,n=window.wp.blocks,o=window.wp.serverSideRender;var l=e.n(o);const a=window.wp.blockEditor,i=JSON.parse('{"u2":"wporg/single-plugin"}');(0,n.registerBlockType)(i.u2,{edit:function({attributes:e,name:n}){return(0,t.createElement)("div",{...(0,a.useBlockProps)()},(0,t.createElement)(r.Disabled,null,(0,t.createElement)(l(),{block:n,attributes:e})))},save:()=>null})})(); \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/css/style-rtl.css b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/css/style-rtl.css index e6beb39993..06d154b748 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/css/style-rtl.css +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/css/style-rtl.css @@ -1,5 +1 @@ -<<<<<<< HEAD -@charset "UTF-8";.avatar{border-radius:50%;vertical-align:middle}.wp-block-wporg-language-suggest>p{margin:0}.block-validator>details summary{padding:var(--wp--style--block-gap) 0}.block-validator .block-validator__plugin-form label{display:block;margin-bottom:.8em}.block-validator .block-validator__plugin-input-container{display:flex;max-width:34rem}.block-validator .block-validator__plugin-input{flex:1}.block-validator .block-validator__plugin-submit{flex:0;margin-right:4px}@media (max-width:36rem){.block-validator .block-validator__plugin-submit{width:100%}.block-validator .block-validator__plugin-input-container{display:block}.block-validator .block-validator__plugin-input{width:100%}.block-validator .block-validator__plugin-submit{margin-right:0;margin-top:var(--wp--style--block-gap)}}.block-validator .notice details,.block-validator .notice p{font-size:var(--wp--preset--font-size--normal);margin:var(--wp--style--block-gap) 0}.block-validator .notice details p{font-size:var(--wp--preset--font-size--small);margin-right:1rem}.block-validator .notice summary{display:list-item}.block-validator figure{border:1px solid #aaa;display:inline-block;padding:1em}.block-validator .test-screenshot{text-align:center}.block-validator .plugin-upload-form-controls{align-items:center;display:flex;gap:4px}.block-validator .plugin-upload-form-controls>label{border:1px solid var(--wp--custom--form--border--color);border-radius:var(--wp--custom--form--border--radius);cursor:pointer;min-width:200px;padding:4px 8px}.notice{background:#fff;border-right:4px solid #fff;box-shadow:0 1px 1px 0 #0000001a;font-size:var(--wp--preset--font-size--small);margin:var(--wp--style--block-gap) 0;padding:1px 12px}.notice p,.notice ul{margin:.5em 0;padding:2px}.notice pre{white-space:pre-wrap}.notice ul{list-style:none;margin:.5em}.notice.notice-alt{box-shadow:none}.notice.notice-large{padding:10px 20px}.notice.notice-success{border-right-color:#46b450}.notice.notice-success.notice-alt{background-color:#ecf7ed}.notice.notice-warning{border-right-color:#ffb900}.notice.notice-warning.notice-alt{background-color:#fff8e5}.notice.notice-error{border-right-color:#dc3232}.notice.notice-error.notice-alt{background-color:#fbeaea}.notice.notice-info{border-right-color:#00a0d2}.notice.notice-info.notice-alt{background-color:#e5f5fa}.notice.hidden{display:none}.plugin-upload-form.hidden{display:none}.plugin-upload-form fieldset{border:none;margin:0;padding:0}.plugin-upload-form legend{margin:1rem 0}.plugin-upload-form .category-checklist{list-style-type:none;margin:0 0 2rem}.plugin-upload-form .category-checklist li{float:right;padding:.5rem 0;width:50%}@media screen and (min-width:48em){.plugin-upload-form .category-checklist li{padding:0}.plugin-upload-form .category-checklist label{font-size:var(--wp--preset--font-size--small)}.plugin-upload-form label.button{line-height:1.8}}.plugin-upload-form .plugin-file{height:.1px;opacity:0;overflow:hidden;position:absolute;width:.1px;z-index:-1}.plugin-queue-message code{font-size:1em}.plugin-queue-message dialog.slug-change input[type=text]{font-family:monospace;font-size:1.2em;width:20em}:where(main) a:where(:not(.wp-element-button,.wp-block-wporg-link-wrapper)):focus,:where(main) button:where(:not([class*=wp-block-button])):focus{border-radius:2px;box-shadow:0 0 0 1.5px currentColor;outline:none}.wporg-filter-bar{--wporg--filter-bar--gap:20px;--wporg--filter-bar--color:#40464d;--wporg--filter-bar--active--background-color:var(--wp--custom--button--color--background);--wporg--filter-bar--focus--border-color:var(--wp--custom--button--focus--border--color);margin:var(--wp--style--block-gap) 0}.wporg-filter-bar .wporg-query-filter__toggle.is-active,.wporg-filter-bar .wporg-query-filter__toggle:active,.wporg-filter-bar .wporg-query-filter__toggle:focus{background-color:var(--wporg--filter-bar--active--background-color);color:var(--wp--custom--button--color--text)}.wporg-filter-bar .wporg-filter-bar__navigation{flex-grow:1;margin-bottom:var(--wporg--filter-bar--gap)}.wporg-filter-bar .wporg-filter-bar__navigation ul{display:inline-block;font-size:13px;line-height:1.538;list-style:none;margin:0;padding-right:0}.wporg-filter-bar .wporg-filter-bar__navigation ul li{display:inline-block}.wporg-filter-bar .wporg-filter-bar__navigation ul li+li{margin-right:8px}.wporg-filter-bar .wporg-filter-bar__navigation ul a{border-radius:2px;color:var(--wporg--filter-bar--color);display:block;padding:8px 12px;text-decoration:none}.wporg-filter-bar .wporg-filter-bar__navigation ul a:focus,.wporg-filter-bar .wporg-filter-bar__navigation ul a:hover{text-decoration:underline}.wporg-filter-bar .wporg-filter-bar__navigation ul a:focus-visible{box-shadow:none;outline:1.5px solid var(--wporg--filter-bar--focus--border-color);outline-offset:-.5px}.wporg-filter-bar .wporg-filter-bar__navigation ul a.is-active{background-color:var(--wporg--filter-bar--active--background-color);color:#fff}.wporg-filter-bar .wporg-filter-bar__navigation ul a.is-active:focus,.wporg-filter-bar .wporg-filter-bar__navigation ul a.is-active:hover{color:#fff}.wporg-filter-bar .wporg-filter-bar__navigation ul a.is-active:focus-visible{box-shadow:inset 0 0 0 1.5px #fff;outline:1.5px solid var(--wporg--filter-bar--focus--border-color);outline-offset:-.5px}@media screen and (min-width:737px){.wporg-filter-bar{align-items:center;display:flex;flex-wrap:wrap;gap:var(--wporg--filter-bar--gap);justify-content:space-between;width:100%}.wporg-filter-bar .wporg-filter-bar__navigation{margin-bottom:0}}.wp-block-search__inside-wrapper{background:var(--wp--preset--color--light-grey-2);border:none}.button-link{background:none;border:0;border-radius:0;box-shadow:none;cursor:pointer;margin:0;outline:none;padding:0}.button{background-color:var(--wp--custom--button--color--background);border:0;border-radius:var(--wp--custom--button--border--radius);color:var(--wp--custom--button--color--text);cursor:pointer;opacity:1;padding:calc(var(--wp--custom--button--small--spacing--padding--top) + var(--wp--custom--button--border--width)) calc(var(--wp--custom--button--small--spacing--padding--left) + var(--wp--custom--button--border--width)) calc(var(--wp--custom--button--small--spacing--padding--bottom) + var(--wp--custom--button--border--width)) calc(var(--wp--custom--button--small--spacing--padding--right) + var(--wp--custom--button--border--width));vertical-align:middle}.button.button-large{padding:calc(var(--wp--custom--button--spacing--padding--top) + var(--wp--custom--button--border--width)) calc(var(--wp--custom--button--spacing--padding--left) + var(--wp--custom--button--border--width)) calc(var(--wp--custom--button--spacing--padding--bottom) + var(--wp--custom--button--border--width)) calc(var(--wp--custom--button--spacing--padding--right) + var(--wp--custom--button--border--width))}input+button.button,select+button.button{margin-top:-3px}.button.disabled{cursor:not-allowed;opacity:.6}.wp-block-post-content a.button{text-decoration:none}.wp-block-button__link{width:auto}pre{background-color:#f7f7f7;border:1px solid var(--wp--preset--color--light-grey-1);overflow:scroll;padding:20px}code,pre{border-radius:2px}code{background:var(--wp--preset--color--light-grey-2);display:inline-block;line-height:var(--wp--custom--body--extra-small--typography--line-height);max-width:100%;padding-inline-end:3px;padding-inline-start:3px}dialog{border:0;box-shadow:-6px 6px 6px #0003;min-height:50%;min-width:30%}@media (min-width:1280px){dialog{max-width:55%}}dialog::backdrop{background:#000;opacity:.5}dialog .close{color:inherit;cursor:pointer;position:absolute;left:1em;text-decoration:none!important;top:1em}.plugin-card{display:flex;flex-direction:column;height:100%;justify-content:space-between}.plugin-card .entry{display:inline-block;vertical-align:top}.plugin-card .entry-title{display:block;display:-webkit-box;font-size:var(--wp--preset--font-size--heading-5);font-weight:500;line-height:1.3;margin-bottom:2px!important;max-height:2.6em;overflow:hidden;-webkit-line-clamp:2;-webkit-box-orient:vertical}.plugin-card .entry-title a{display:block;text-decoration:none}.plugin-card .entry-title a:focus{box-shadow:none}.plugin-card .entry-excerpt{clear:both;font-size:var(--wp--preset--font-size--small)}.plugin-card .entry-excerpt p{margin:0}.plugin-card footer{font-size:var(--wp--preset--font-size--small);margin-top:var(--wp--style--block-gap)}.plugin-card footer span{color:var(--wp--preset--color--charcoal-4);display:inline-block;line-height:var(--wp--preset--font-size--normal);overflow:hidden}.plugin-card footer span.plugin-author{width:100%}.plugin-card footer span.plugin-author span{color:var(--wp--preset--color--charcoal-1)}.plugin-card footer span.plugin-author path{fill:var(--wp--preset--color--charcoal-1)}.plugin-card footer span svg{height:24px;vertical-align:bottom;width:24px}.plugin-card footer span svg path{fill:var(--wp--preset--color--charcoal-4)}.plugin-card footer span.active-installs{min-width:48%}.plugin-cards{cursor:pointer}.plugin-cards .is-style-cards-grid li:hover{background-color:#fff!important;border:1px solid var(--wp--preset--color--charcoal-1)!important}.plugin-cards .is-style-cards-grid li:focus-within{border-color:#0000;border-radius:2px;box-shadow:0 0 0 1.5px var(--wp--custom--link--color--text)}@media screen and (max-width:737px){.plugin-cards .is-style-cards-grid{grid-template-columns:100%}}.entry-thumbnail{display:none;margin-bottom:var(--wp--style--block-gap);margin-left:var(--wp--style--block-gap);max-width:80px}.entry-thumbnail .plugin-icon{background-size:cover;border-radius:var(--wp--custom--button--border--radius);display:block;height:80px;width:80px}@media screen and (min-width:21em){.entry-thumbnail{display:inline-block;float:right;vertical-align:top}}.single .entry-thumbnail{display:none;float:right;height:96px;margin-bottom:0;max-width:96px}@media screen and (min-width:26em){.single .entry-thumbnail{display:block}}.single .entry-thumbnail .plugin-icon{background-size:contain!important;height:96px!important;width:96px!important}.plugin-rating{line-height:1;margin:0 0 8px 10px}.plugin-rating .wporg-ratings{display:inline-block;margin-left:5px}.plugin-rating .rating-count{color:var(--wp--preset--color--charcoal-4);font-size:var(--wp--preset--font-size--extra-small);vertical-align:text-bottom}.plugin-rating .rating-count a{color:inherit;cursor:hand;text-decoration:none}[class*=dashicons-star-]{color:var(--wp--preset--color--pomegrade-1)}.rtl .dashicons-star-half{transform:rotateY(-180deg)}#main .plugin-section{margin:0 auto var(--wp--preset--spacing--60)}#main .plugin-section:last-of-type{margin-bottom:0}#main .plugin-section .section-header{align-items:center;column-gap:10px;display:flex;justify-content:space-between;margin-bottom:var(--wp--style--block-gap)}#main .plugin-section .section-header>h2{margin-bottom:0}#main .plugin-section .section-link{align-self:center;flex:0 0 auto;text-decoration:underline}.pagination .nav-links{margin-top:var(--wp--style--block-gap);padding-top:var(--wp--style--block-gap);text-align:center}.pagination .nav-links a{text-decoration:none}.pagination .nav-links .page-numbers{cursor:pointer;display:inline-block;min-width:2em;padding:8px;text-align:center}.pagination .nav-links .page-numbers.dots,.pagination .nav-links .page-numbers.next,.pagination .nav-links .page-numbers.prev{background:none;font-size:.9em;width:auto}.pagination .nav-links .page-numbers.dots{cursor:inherit}@media screen and (max-width:737px){.pagination .nav-links .page-numbers.next,.pagination .nav-links .page-numbers.prev{font-size:0;min-width:auto;padding:0}.pagination .nav-links .page-numbers.next:after,.pagination .nav-links .page-numbers.prev:before{display:inline-block;font-size:medium;line-height:1.5;min-width:2em;padding:8px}.pagination .nav-links .page-numbers.prev:before{content:"‹"}.pagination .nav-links .page-numbers.next:after{content:"›"}}.pagination .nav-links span.page-numbers{font-weight:700}.pagination .nav-links span.page-numbers.current{text-decoration:underline}@keyframes favme-anime{0%{font-size:var(--wp--preset--font-size--large);opacity:1;-webkit-text-stroke-color:#0000}25%{color:#fff;font-size:var(--wp--preset--font-size--small);opacity:.6;-webkit-text-stroke-width:1px;-webkit-text-stroke-color:#dc3232}75%{color:#fff;font-size:var(--wp--preset--font-size--large);opacity:.6;-webkit-text-stroke-width:1px;-webkit-text-stroke-color:#dc3232}to{font-size:var(--wp--preset--font-size--normal);opacity:1;-webkit-text-stroke-color:#0000}}.plugin-favorite{height:calc(var(--wp--custom--button--spacing--padding--top)*2 + var(--wp--preset--font-size--normal)*2);text-align:center;vertical-align:top;width:36px}.plugin-favorite .plugin-favorite-heart{align-items:center;background:none;border:0;border-radius:0;box-shadow:none;color:#cbcdce;cursor:pointer;display:flex;font-size:var(--wp--preset--font-size--large);height:100%;justify-content:center;line-height:1;margin:0;outline:none;padding:0;text-decoration:none}.plugin-favorite .plugin-favorite-heart.favorited{color:#dc3232}.plugin-favorite .plugin-favorite-heart:focus,.plugin-favorite .plugin-favorite-heart:hover{color:var(----wp--preset--color--charcoal-2);text-decoration:none}.plugin-favorite .plugin-favorite-heart:after{content:"\f487";font-family:dashicons;vertical-align:top}.plugin-banner img{aspect-ratio:3.089;border-radius:var(--wp--custom--button--border--radius);display:block;margin:0 auto var(--wp--preset--spacing--30);width:100%}@keyframes hideAnimation{to{visibility:hidden}}.categorization .help{color:var(--wp--preset--color--charcoal-4);display:inline-block;font-size:.8rem;margin-top:0}.categorization label{display:block;font-weight:700}.categorization input{width:100%}.categorization .success-msg{background:#eff7ed;border:solid #64b450;border-width:0 5px 0 0;font-size:.8rem;margin-right:1rem;opacity:0;overflow:auto;padding:.1rem .6rem .2rem;position:relative;transition:visibility 0s,opacity .5s linear;-webkit-user-select:none;user-select:none;visibility:hidden}.categorization .success-msg.saved{animation:hideAnimation 0s ease-in 5s;animation-fill-mode:forwards;opacity:1;visibility:visible}.plugin-changelog code{font-size:var(--wp--preset--font-size--small)}.plugin-developers .contributors-list li{align-items:center;display:flex;padding-bottom:var(--wp--style--block-gap)}@media screen and (min-width:500px){.plugin-developers .contributors-list{display:flex;flex-wrap:wrap}.plugin-developers .contributors-list li{padding-bottom:unset;width:50%}}.plugin-faq dl{border-bottom:1px solid var(--wp--preset--color--light-grey-1)}.plugin-faq dt{border-top:1px solid var(--wp--preset--color--light-grey-1);cursor:pointer;padding:1rem 0}.plugin-faq dt:before{content:"\f347";float:left;font-family:dashicons;margin:0 1rem}.plugin-faq dt.open:before{content:"\f343"}.plugin-faq dt .button-link{display:inherit;text-align:inherit}.plugin-faq dt .button-link.no-focus{box-shadow:none;outline:none}.plugin-faq dt h3{color:var(--wp--custom--link--color--text);display:inline;font-size:var(--wp--preset--font-size--normal);font-weight:400;margin-bottom:0;margin-top:0!important;text-decoration:underline}.plugin-faq dt h3 button{all:inherit;max-width:calc(100% - 60px)}.plugin-faq dt h3 button:focus,.plugin-faq dt h3 button:hover{text-decoration:underline}.plugin-faq dd{display:none;margin:0 0 1rem}.no-js .plugin-faq dd{display:block}.plugin-faq dd p{margin:0}.plugin-faq dd p+p{margin-top:1rem}.image-gallery{-webkit-user-select:none;user-select:none}.image-gallery-content{position:relative}.image-gallery-content .image-gallery-left-nav,.image-gallery-content .image-gallery-right-nav{border-color:var(--wp--preset--color--light-grey-1);display:none;font-size:48px;height:100%;position:absolute;top:0;transition:background .1s ease,border .1s ease;z-index:4}@media (max-width:768px){.image-gallery-content .image-gallery-left-nav,.image-gallery-content .image-gallery-right-nav{font-size:3.4em}}@media (min-width:768px){.image-gallery-content .image-gallery-left-nav:hover,.image-gallery-content .image-gallery-right-nav:hover{background:#fff;border:1px solid var(--wp--preset--color--light-grey-1);opacity:.8}}.image-gallery-content .image-gallery-left-nav:before,.image-gallery-content .image-gallery-right-nav:before{font-family:dashicons;position:relative}.image-gallery-content .image-gallery-left-nav{right:0}.image-gallery-content .image-gallery-left-nav:before{content:"\f345"}.image-gallery-content .image-gallery-left-nav:hover{margin-right:-1px}.image-gallery-content .image-gallery-right-nav{left:0}.image-gallery-content .image-gallery-right-nav:before{content:"\f341"}.image-gallery-content .image-gallery-right-nav:hover{margin-left:-1px}.image-gallery-content:hover .image-gallery-left-nav,.image-gallery-content:hover .image-gallery-right-nav{display:block}.image-gallery-slides{border:1px solid #eee;line-height:0;overflow:hidden;position:relative;white-space:nowrap}.image-gallery-slide{right:0;position:absolute;top:0;width:100%}.image-gallery-slide.center{position:relative}.image-gallery-slide .image-gallery-image{margin:0}.image-gallery-slide img{display:block;margin:0 auto}.image-gallery-slide .image-gallery-description{background:var(--wp--preset--color--light-grey-2);color:var(--wp--preset--color--charcoal-1);font-size:var(--wp--preset--font-size--small);line-height:1.5;padding:10px 20px;white-space:normal}@media (max-width:768px){.image-gallery-slide .image-gallery-description{padding:8px 15px}}.image-gallery-thumbnails{background:#fff;margin-top:5px}.image-gallery-thumbnails .image-gallery-thumbnails-container{cursor:pointer;text-align:center;white-space:nowrap}.image-gallery-thumbnail{border:1px solid #eee;display:table-cell;margin-left:5px;max-height:100px;overflow:hidden}.image-gallery-thumbnail .image-gallery-image{margin:0}.image-gallery-thumbnail img{vertical-align:middle;width:100px}@media (max-width:768px){.image-gallery-thumbnail img{width:75px}}.image-gallery-thumbnail:hover{box-shadow:0 1px 8px #0000004d}.image-gallery-thumbnail.active{border:1px solid #337ab7}.image-gallery-thumbnail-label{color:#222;font-size:1em}@media (max-width:768px){.image-gallery-thumbnail-label{font-size:.8em}}.image-gallery-index{background:#0006;bottom:0;color:#fff;line-height:1;padding:10px 20px;position:absolute;left:0;z-index:4}.plugin-reviews{list-style-type:none;margin:0;padding:0}.plugin-reviews .plugin-review{border-bottom:1px solid var(--wp--preset--color--light-grey-1);margin:2rem 0 1rem;padding-bottom:1rem}.plugin-reviews .plugin-review a{text-decoration:none}.plugin-reviews .plugin-review:first-child{margin-top:0}.plugin-reviews .plugin-review .header-top{display:flex}.plugin-reviews .plugin-review .header-top .wporg-ratings{flex-shrink:0}.plugin-reviews .plugin-review .header-bottom{display:flex;margin-top:4px}.plugin-reviews .review-avatar{display:none}.plugin-reviews .review,.plugin-reviews .review-author,.plugin-reviews .wporg-ratings{display:inline-block;vertical-align:top}.plugin-reviews .review-header{margin:0 0 .5rem}.plugin-reviews .review-title{font-size:var(--wp--preset--font-size--normal);font-weight:500;margin:2px 12px 0 0!important;text-transform:inherit}.plugin-reviews .review-author,.plugin-reviews .review-date,.plugin-reviews .review-replies{font-size:var(--wp--preset--font-size--extra-small);line-height:1.25}.plugin-reviews .review-date,.plugin-reviews .review-replies{color:var(--wp--preset--color--charcoal-4);font-size:var(--wp--preset--font-size--extra-small);margin-right:12px}.plugin-reviews .review-replies:before{content:"•";margin-left:12px}.plugin-reviews .review-content{margin:1em 0}@media screen and (min-width:737px){.plugin-reviews .review-avatar{display:inline-block;vertical-align:top}.plugin-reviews .review-avatar .avatar{margin-left:1rem}.plugin-reviews .review{width:calc(100% - 60px - 1rem)}.plugin-reviews .review-header{margin:0}.plugin-reviews .review-author,.plugin-reviews .review-date,.plugin-reviews .review-replies{line-height:1}}.plugin-reviews .reviews-link{display:inline-block;font-size:var(--wp--preset--font-size--small);text-decoration:none}.plugin-reviews .reviews-link:after{content:"\f341";float:left;font-family:dashicons;padding-right:5px;position:relative;top:1px;vertical-align:text-top}.plugin-screenshots{list-style-type:none;margin:0;padding:0}.plugin-screenshots .image-gallery-content{display:table;width:100%}.plugin-screenshots .image-gallery-slides{display:table-cell;max-height:600px}.plugin-screenshots .image-gallery-image img{max-height:550px;max-width:100%}.plugin-screenshots .image-gallery-thumbnail{vertical-align:top}.plugin-screenshots .image-gallery-thumbnail img{max-height:100px}.plugin-screenshots .image-gallery-thumbnails{overflow:hidden}.download-history-stats td{text-align:left}.previous-versions{max-width:60%}@media screen and (min-width:737px){.previous-versions{height:32px;vertical-align:middle}}hr{margin:2.5rem auto}.section h1:nth-child(2),.section h2:nth-child(2),.section h3:nth-child(2),.section h4:nth-child(2),.section h5:nth-child(2),.section h6:nth-child(2){margin-top:0}.section-heading{font-family:var(--wp--preset--font-family--inter)!important;font-size:var(--wp--preset--font-size--heading-5)!important;font-style:normal;font-weight:600;line-height:var(--wp--custom--heading--level-5--typography--line-height)}.section-intro{color:var(--wp--preset--color--charcoal-4);font-size:var(--wp--preset--font-size--small);margin-bottom:var(--wp--preset--spacing--20);margin-top:var(--wp--preset--spacing--10)}.type-plugin .plugin-notice{margin-top:0}.type-plugin .plugin-header{border-bottom:0;padding-top:var(--wp--preset--spacing--40)}.type-plugin .plugin-header:after,.type-plugin .plugin-header:before{content:"";display:table;table-layout:fixed}.type-plugin .plugin-header:after{clear:both}.type-plugin .plugin-header .entry-heading-container{display:flex;flex-direction:column;justify-content:space-between}@media screen and (max-width:599px){.type-plugin .plugin-header .entry-heading-container{--wp--custom--button--spacing--padding--top:12px;--wp--custom--button--spacing--padding--bottom:12px;--wp--custom--button--spacing--padding--left:16px;--wp--custom--button--spacing--padding--right:16px}}@media screen and (min-width:700px){.type-plugin .plugin-header .entry-heading-container{flex-direction:row}}.type-plugin .plugin-header .entry-heading-container>:first-child{align-items:center;display:flex;flex:1}.type-plugin .plugin-header .plugin-actions{align-items:center;display:flex;gap:16px;margin-top:var(--wp--style--block-gap)}@media screen and (min-width:700px){.type-plugin .plugin-header .plugin-actions{margin-top:0;margin-inline-start:1rem}}.type-plugin .plugin-header .plugin-actions>.button,.type-plugin .plugin-header .plugin-actions>div{display:inline-block;text-align:center}@media screen and (max-width:34em){.type-plugin .plugin-header .plugin-actions>.button.download-button{display:none}}.type-plugin .plugin-header .plugin-title{clear:none;font-size:var(--wp--preset--font-size--heading-3);font-weight:400;line-height:var(--wp--custom--heading--level-3--typography--line-height);margin:0}.type-plugin .plugin-header .plugin-title a{color:inherit;text-decoration:none}.type-plugin .plugin-header .plugin-title a:hover{text-decoration:underline}.type-plugin .plugin-header .byline{color:var(--wp--preset--color--charcoal-4);display:block;margin-top:4px}.type-plugin .plugin-banner+.plugin-header{padding-top:0}.type-plugin .plugin-banner+.plugin-header>.notice:first-of-type{margin-top:0}.type-plugin .tabs{border-bottom:1px solid var(--wp--preset--color--light-grey-1);list-style:none;margin:0}.type-plugin .tabs li{border:1px solid #0000;display:inline-block;font-size:.9rem;margin-bottom:-1px;transition:background .2s ease}.type-plugin .tabs li a{background:#fff;border:0;color:var(--wp--preset--color--charcoal-1);display:block;font-size:var(--wp--preset--font-size--normal);padding:.64rem 1.25rem;text-decoration:none}.type-plugin .tabs li a.active,.type-plugin .tabs li a:hover{background:var(--wp--preset--color--light-grey-2)!important}.type-plugin .tabs li.active,.type-plugin .tabs li:hover{border:1px solid var(--wp--preset--color--light-grey-1)}@media screen and (max-width:38em){.type-plugin .tabs{border-top:1px solid var(--wp--preset--color--light-grey-1)}.type-plugin .tabs li{display:block;margin-bottom:1px}.type-plugin .tabs li,.type-plugin .tabs li.active,.type-plugin .tabs li:hover{border:none;border-bottom:1px solid var(--wp--preset--color--light-grey-1)}}@media screen and (min-width:737px){.type-plugin .entry-content{float:right;padding:0;width:65%}}.type-plugin .entry-content>div,.type-plugin .entry-content>div~button{border:0;display:none}.type-plugin .entry-content ol>li>p,.type-plugin .entry-content ul>li>p{margin:0}.type-plugin .entry-content #admin{display:block!important}.type-plugin .plugin-blocks-list{list-style:none;margin-right:0;padding-right:0}.type-plugin .plugin-blocks-list .plugin-blocks-list-item{display:grid;grid-template-columns:auto 1fr;margin-bottom:var(--wp--style--block-gap)}.type-plugin .plugin-blocks-list .block-icon{border:1px solid var(--wp--preset--color--light-grey-1);border-radius:2px;display:inline-block;height:3.5rem;line-height:16px;margin-left:var(--wp--style--block-gap);padding:var(--wp--style--block-gap);width:3.5rem}.type-plugin .plugin-blocks-list .block-icon.dashicons{color:inherit}.type-plugin .plugin-blocks-list .block-icon.dashicons:before{margin-right:-3px}.type-plugin .plugin-blocks-list .block-icon svg{height:16px;width:16px;fill:currentColor;margin-right:-1px}.type-plugin .plugin-blocks-list .block-title{align-self:center;font-weight:700}.type-plugin .plugin-blocks-list .has-description .block-icon{grid-row:1/span 2}.type-plugin .plugin-blocks-list .has-description .block-title{margin-bottom:.4em}.type-plugin span#description,.type-plugin span#developers,.type-plugin span#installation,.type-plugin span#reviews{position:fixed}.type-plugin span#advanced.displayed~#section-links .tabs li#tablink-advanced,.type-plugin span#developers:target~#section-links .tabs li#tablink-developers,.type-plugin span#installation:target~#section-links .tabs li#tablink-installation,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#advanced:not(.displayed)~#section-links .tabs li#tablink-description,.type-plugin span#reviews:target~#section-links .tabs li#tablink-reviews{background:#fff;border:1px solid var(--wp--preset--color--light-grey-1);border-bottom:0;padding-bottom:1px}@media screen and (max-width:38em){.type-plugin span#advanced.displayed~#section-links .tabs li#tablink-advanced.active,.type-plugin span#advanced.displayed~#section-links .tabs li#tablink-advanced:hover,.type-plugin span#developers:target~#section-links .tabs li#tablink-developers.active,.type-plugin span#developers:target~#section-links .tabs li#tablink-developers:hover,.type-plugin span#installation:target~#section-links .tabs li#tablink-installation.active,.type-plugin span#installation:target~#section-links .tabs li#tablink-installation:hover,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#advanced:not(.displayed)~#section-links .tabs li#tablink-description.active,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#advanced:not(.displayed)~#section-links .tabs li#tablink-description:hover,.type-plugin span#reviews:target~#section-links .tabs li#tablink-reviews.active,.type-plugin span#reviews:target~#section-links .tabs li#tablink-reviews:hover{padding-bottom:1px!important}}.type-plugin span#section-links{display:flex;flex-flow:row wrap;margin-top:var(--wp--preset--spacing--30)}.type-plugin span#section-links .tabs{flex:1 1 auto;padding-right:0}@media screen and (max-width:38em){.type-plugin span#section-links .tabs{border:1px solid var(--wp--preset--color--light-grey-1)!important}.type-plugin span#section-links .tabs li{border:none!important}.type-plugin span#section-links{display:block}}.type-plugin #link-support{align-self:flex-end;border-bottom:1px solid var(--wp--preset--color--light-grey-1);flex:0 0 auto;font-size:.9rem}.type-plugin #link-support a{display:inline-block;font-size:var(--wp--preset--font-size--normal);padding:.64rem 1.25rem .64rem 0}@media screen and (max-width:38em){.type-plugin #link-support{border-bottom:0;display:block;width:100%}.type-plugin #link-support a{padding-left:1.25rem}}.type-plugin span#developers:target~.entry-content #tab-changelog,.type-plugin span#developers:target~.entry-content #tab-developers,.type-plugin span#developers:target~.entry-content #tab-developers .plugin-development,.type-plugin span#developers:target~.entry-content #tab-developers~button,.type-plugin span#installation:target~.entry-content #tab-installation,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~.entry-content #blocks,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~.entry-content #faq,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~.entry-content #screenshots,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~.entry-content #tab-description,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~.entry-content #tab-developers,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~.entry-content #tab-developers~button,.type-plugin span#reviews:target~.entry-content #tab-reviews{display:block}.type-plugin span#developers:target~.entry-content #tab-developers .plugin-contributors,.type-plugin span#installation:target~.entry-meta .plugin-contributors,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~.entry-content #tab-developers .plugin-development,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~.entry-meta .plugin-contributors,.type-plugin span#reviews:target~.entry-meta .plugin-contributors,.type-plugin span#reviews:target~.entry-meta .plugin-donate,.type-plugin span#reviews:target~.entry-meta .plugin-meta,.type-plugin span#reviews:target~.entry-meta .plugin-support{display:none}@media screen and (min-width:737px){.type-plugin .entry-content,.type-plugin .entry-meta{padding-right:0;padding-left:0}.type-plugin .entry-meta{float:left;width:30%}}.type-plugin .plugin-danger-zone h4{margin-top:var(--wp--preset--spacing--60)}.plugin-releases-listing{border-collapse:collapse;width:100%}.plugin-releases-listing tbody td:nth-child(4) div{font-size:14px}.plugin-releases-listing-actions{display:flex;flex-direction:column;gap:8px}@media screen and (min-width:34em){.plugin-releases-listing-actions{flex-direction:row}}.plugin-adopt-me{background:#e6f4fa;margin-top:36px;padding:12px}.plugin-adopt-me .widget-title{margin-top:0}.plugin-adopt-me p{margin-bottom:0}.widget.plugin-categorization{margin-top:var(--wp--style--block-gap)}.widget.plugin-categorization .widget-head h2{font-size:var(--wp--preset--font-size--heading-4);margin-bottom:.2rem;margin-top:0}.widget.plugin-categorization .widget-head a{font-size:var(--wp--preset--font-size--small)}.widget.plugin-categorization .widget-head a[href=""]{display:none}.widget.plugin-categorization p{font-size:var(--wp--preset--font-size--small);margin-top:.5rem}.widget.plugin-categorization~.plugin-meta li:first-child{border-top:1px solid var(--wp--preset--color--light-grey-1)}.committer-list,.support-rep-list{list-style:none;margin:0;padding:0}.committer-list li,.support-rep-list li{padding-bottom:.5rem}.committer-list li .remove,.support-rep-list li .remove{color:red;visibility:hidden}.committer-list li:hover .remove,.support-rep-list li:hover .remove{visibility:visible}.committer-list .avatar,.support-rep-list .avatar{float:right;margin-left:10px}.committer-list .spinner,.support-rep-list .spinner{position:relative}.committer-list .spinner:after,.support-rep-list .spinner:after{background:url(/wp-admin/images/spinner.gif) no-repeat 50%;background-size:20px 20px;content:"";display:block;height:20px;margin:-10px 0 0 -10px;position:absolute;left:-50%;top:50%;transform:translateZ(0);width:20px}@media (min-resolution:120dpi),print{.committer-list .spinner:after,.support-rep-list .spinner:after{background-image:url(/wp-admin/images/spinner-2x.gif)}}.committer-list .new,.support-rep-list .new{margin-top:var(--wp--style--block-gap)}.plugin-contributors.read-more{border-bottom:1px solid var(--wp--preset--color--light-grey-1);max-height:200px;overflow:hidden;padding-bottom:1px}.plugin-contributors.read-more.toggled{max-height:none}.no-js .plugin-contributors.read-more{max-height:none;overflow:auto}.contributors-list{list-style-type:none;margin:0;padding:0}.contributors-list li{align-items:center;display:flex;margin-bottom:1rem}.contributors-list .avatar{float:right;margin-left:10px}.plugin-meta{font-size:var(--wp--preset--font-size--small);margin-top:var(--wp--style--block-gap)}.plugin-meta ul{list-style-type:none;margin:0;padding:0}.plugin-meta li{border-top:1px solid var(--wp--preset--color--light-grey-1);display:inline-block;padding:.5rem 0;position:relative;width:100%}.plugin-meta li strong{float:left;font-weight:500}.plugin-meta li .plugin-admin{font-size:var(--wp--preset--font-size--normal);font-weight:400}.plugin-meta li:first-child{border-top:0}.plugin-meta .languages,.plugin-meta .tags{float:left;text-align:left}.plugin-meta .tags{width:60%}.plugin-meta .languages button{font-size:var(--wp--preset--font-size--small);outline:revert}.plugin-meta .languages .popover{margin-top:8px}.plugin-meta .languages .popover-trigger{color:var(--wp--custom--link--color--text);text-decoration:underline}.plugin-meta .languages .popover-trigger:hover{text-decoration:underline}.plugin-meta [rel=tag]{background:var(--wp--preset--color--blueberry-4);border-radius:2px;color:var(--wp--preset--color--charcoal-1);display:inline-block;font-size:var(--wp--preset--font-size--extra-small);margin:2px;max-width:95%;overflow:hidden;padding:3px 6px;position:relative;text-decoration:none;text-overflow:ellipsis;white-space:nowrap;width:auto}.plugin-meta [rel=tag]:hover{text-decoration:underline}.popover{background-color:#fff;border:1px solid var(--wp--preset--color--light-grey-1);border-radius:2px;box-shadow:0 2px 10px #0000001a;display:none;right:0;margin-top:10px;max-width:300px;padding:1em 1em 2em;position:absolute;width:100%;z-index:100}.popover.is-top-right{right:auto;left:0}.popover.is-visible{display:block}.popover .popover-close{bottom:.5em;color:var(--wp--custom--link--color--text);font-size:small;position:absolute;left:.6em}.popover .popover-close:active,.popover .popover-close:focus,.popover .popover-close:hover{text-decoration:underline}.popover .popover-arrow{border:10px solid #0000;border-bottom:10px solid #ccc;border-top:none;height:0;position:absolute;left:20px;top:-10px;width:0;z-index:-1}.popover .popover-arrow:after{border:10px solid #0000;border-bottom:10px solid #fff;border-top:none;content:"";right:-10px;position:absolute;top:2px}.popover .popover-inner{text-align:right}.popover .popover-inner p:first-child{margin-top:0}.popover .popover-inner p:last-child{margin-bottom:0}.plugin-support .counter-container{margin-bottom:1rem;position:relative}.plugin-support .counter-back,.plugin-support .counter-bar{display:inline-block;height:30px;vertical-align:middle}.plugin-support .counter-back{background-color:var(--wp--preset--color--light-grey-2);width:100%}.plugin-support .counter-bar{background-color:var(--wp--preset--color--acid-green-2);display:block}.plugin-support .counter-count{font-size:var(--wp--preset--font-size--extra-small);right:8px;position:absolute;top:8px;width:100%;width:calc(100% - 8px)}@media screen and (min-width:737px){.plugin-support .counter-count{top:5px}}.home .widget,.widget-area.home .widget{display:inline-block;font-size:var(--wp--preset--font-size--small);margin:0;margin:var(--wp--style--block-gap);vertical-align:top;width:auto}@media screen and (min-width:737px){.home .widget,.widget-area.home .widget{margin:0;width:30%}.home .widget:first-child,.widget-area.home .widget:first-child{margin-left:5%}.home .widget:last-child,.widget-area.home .widget:last-child{margin-right:5%}}.home .widget select,.widget-area.home .widget select{max-width:100%}.entry-meta .widget-title{font-size:var(--wp--preset--font-size--heading-4)}body.single.single-plugin .entry-meta{font-size:var(--wp--preset--font-size--normal)}.widget-area{margin:0 auto;padding:var(--wp--preset--spacing--40) 0}.widget-area .widget-title{font-size:var(--wp--preset--font-size--heading-1);font-weight:var(--wp--custom--heading--typography--font-weight);margin-top:var(--wp--preset--spacing--50)}.widget-area .textwidget{text-wrap:pretty} -======= -@charset "UTF-8";.avatar{border-radius:50%;vertical-align:middle}.wp-block-wporg-language-suggest>p{margin:0}.block-validator>details summary{padding:var(--wp--style--block-gap) 0}.block-validator .block-validator__plugin-form label{display:block;margin-bottom:.8em}.block-validator .block-validator__plugin-input-container{display:flex;max-width:34rem}.block-validator .block-validator__plugin-input{flex:1}.block-validator .block-validator__plugin-submit{flex:0;margin-right:4px}@media (max-width:36rem){.block-validator .block-validator__plugin-submit{width:100%}.block-validator .block-validator__plugin-input-container{display:block}.block-validator .block-validator__plugin-input{width:100%}.block-validator .block-validator__plugin-submit{margin-right:0;margin-top:var(--wp--style--block-gap)}}.block-validator .notice details,.block-validator .notice p{font-size:var(--wp--preset--font-size--normal);margin:var(--wp--style--block-gap) 0}.block-validator .notice details p{font-size:var(--wp--preset--font-size--small);margin-right:1rem}.block-validator .notice summary{display:list-item}.block-validator figure{border:1px solid #aaa;display:inline-block;padding:1em}.block-validator .test-screenshot{text-align:center}.block-validator .plugin-upload-form-controls{align-items:center;display:flex;gap:4px}.block-validator .plugin-upload-form-controls>label{border:1px solid var(--wp--custom--form--border--color);border-radius:var(--wp--custom--form--border--radius);cursor:pointer;min-width:200px;padding:4px 8px}.notice{background:#fff;border-right:4px solid #fff;box-shadow:0 1px 1px 0 #0000001a;font-size:var(--wp--preset--font-size--small);margin:var(--wp--style--block-gap) 0;padding:1px 12px}.notice p,.notice ul{margin:.5em 0;padding:2px}.notice pre{white-space:pre-wrap}.notice ul{list-style:none;margin:.5em}.notice.notice-alt{box-shadow:none}.notice.notice-large{padding:10px 20px}.notice.notice-success{border-right-color:#46b450}.notice.notice-success.notice-alt{background-color:#ecf7ed}.notice.notice-warning{border-right-color:#ffb900}.notice.notice-warning.notice-alt{background-color:#fff8e5}.notice.notice-error{border-right-color:#dc3232}.notice.notice-error.notice-alt{background-color:#fbeaea}.notice.notice-info{border-right-color:#00a0d2}.notice.notice-info.notice-alt{background-color:#e5f5fa}.notice.hidden{display:none}.plugin-upload-form.hidden{display:none}.plugin-upload-form fieldset{border:none;margin:0;padding:0}.plugin-upload-form legend{margin:1rem 0}.plugin-upload-form .category-checklist{list-style-type:none;margin:0 0 2rem}.plugin-upload-form .category-checklist li{float:right;padding:.5rem 0;width:50%}@media screen and (min-width:48em){.plugin-upload-form .category-checklist li{padding:0}.plugin-upload-form .category-checklist label{font-size:var(--wp--preset--font-size--small)}.plugin-upload-form label.button{line-height:1.8}}.plugin-upload-form .plugin-file{height:.1px;opacity:0;overflow:hidden;position:absolute;width:.1px;z-index:-1}.plugin-queue-message code{font-size:1em}.plugin-queue-message dialog.slug-change input[type=text]{font-family:monospace;font-size:1.2em;width:20em}:where(main) a:where(:not(.wp-element-button,.wp-block-wporg-link-wrapper)):focus,:where(main) button:where(:not([class*=wp-block-button])):focus{border-radius:2px;box-shadow:0 0 0 1.5px currentColor;outline:none}.wporg-filter-bar{--wporg--filter-bar--gap:20px;--wporg--filter-bar--color:#40464d;--wporg--filter-bar--active--background-color:var(--wp--custom--button--color--background);--wporg--filter-bar--focus--border-color:var(--wp--custom--button--focus--border--color);margin:var(--wp--style--block-gap) 0}.wporg-filter-bar .wporg-query-filter__toggle.is-active,.wporg-filter-bar .wporg-query-filter__toggle:active,.wporg-filter-bar .wporg-query-filter__toggle:focus{background-color:var(--wporg--filter-bar--active--background-color);color:var(--wp--custom--button--color--text)}.wporg-filter-bar .wporg-filter-bar__navigation{flex-grow:1;margin-bottom:var(--wporg--filter-bar--gap)}.wporg-filter-bar .wporg-filter-bar__navigation ul{display:inline-block;font-size:13px;line-height:1.538;list-style:none;margin:0;padding-right:0}.wporg-filter-bar .wporg-filter-bar__navigation ul li{display:inline-block}.wporg-filter-bar .wporg-filter-bar__navigation ul li+li{margin-right:8px}.wporg-filter-bar .wporg-filter-bar__navigation ul a{border-radius:2px;color:var(--wporg--filter-bar--color);display:block;padding:8px 12px;text-decoration:none}.wporg-filter-bar .wporg-filter-bar__navigation ul a:focus,.wporg-filter-bar .wporg-filter-bar__navigation ul a:hover{text-decoration:underline}.wporg-filter-bar .wporg-filter-bar__navigation ul a:focus-visible{box-shadow:none;outline:1.5px solid var(--wporg--filter-bar--focus--border-color);outline-offset:-.5px}.wporg-filter-bar .wporg-filter-bar__navigation ul a.is-active{background-color:var(--wporg--filter-bar--active--background-color);color:#fff}.wporg-filter-bar .wporg-filter-bar__navigation ul a.is-active:focus,.wporg-filter-bar .wporg-filter-bar__navigation ul a.is-active:hover{color:#fff}.wporg-filter-bar .wporg-filter-bar__navigation ul a.is-active:focus-visible{box-shadow:inset 0 0 0 1.5px #fff;outline:1.5px solid var(--wporg--filter-bar--focus--border-color);outline-offset:-.5px}@media screen and (min-width:737px){.wporg-filter-bar{align-items:center;display:flex;flex-wrap:wrap;gap:var(--wporg--filter-bar--gap);justify-content:space-between;width:100%}.wporg-filter-bar .wporg-filter-bar__navigation{margin-bottom:0}}.wp-block-search__inside-wrapper{background:var(--wp--preset--color--light-grey-2);border:none}.button-link{background:none;border:0;border-radius:0;box-shadow:none;cursor:pointer;margin:0;outline:none;padding:0}.button{background-color:var(--wp--custom--button--color--background);border:0;border-radius:var(--wp--custom--button--border--radius);color:var(--wp--custom--button--color--text);cursor:pointer;opacity:1;padding:calc(var(--wp--custom--button--small--spacing--padding--top) + var(--wp--custom--button--border--width)) calc(var(--wp--custom--button--small--spacing--padding--left) + var(--wp--custom--button--border--width)) calc(var(--wp--custom--button--small--spacing--padding--bottom) + var(--wp--custom--button--border--width)) calc(var(--wp--custom--button--small--spacing--padding--right) + var(--wp--custom--button--border--width));vertical-align:middle}.button.button-large{padding:calc(var(--wp--custom--button--spacing--padding--top) + var(--wp--custom--button--border--width)) calc(var(--wp--custom--button--spacing--padding--left) + var(--wp--custom--button--border--width)) calc(var(--wp--custom--button--spacing--padding--bottom) + var(--wp--custom--button--border--width)) calc(var(--wp--custom--button--spacing--padding--right) + var(--wp--custom--button--border--width))}input+button.button,select+button.button{margin-top:-3px}.button.disabled{cursor:not-allowed;opacity:.6}.wp-block-post-content a.button{text-decoration:none}pre{background-color:#f7f7f7;border:1px solid var(--wp--preset--color--light-grey-1);overflow:scroll;padding:20px}code,pre{border-radius:2px}code{background:var(--wp--preset--color--light-grey-2);display:inline-block;line-height:var(--wp--custom--body--extra-small--typography--line-height);max-width:100%;padding-inline-end:3px;padding-inline-start:3px}dialog{border:0;box-shadow:-6px 6px 6px #0003;min-height:50%;min-width:30%}@media (min-width:1280px){dialog{max-width:55%}}dialog::backdrop{background:#000;opacity:.5}dialog .close{color:inherit;cursor:pointer;position:absolute;left:1em;text-decoration:none!important;top:1em}.plugin-card{display:flex;flex-direction:column;height:100%;justify-content:space-between}.plugin-card .entry{display:inline-block;vertical-align:top}.plugin-card .entry-title{display:block;display:-webkit-box;font-size:var(--wp--preset--font-size--heading-5);font-weight:500;line-height:1.3;margin-bottom:2px!important;max-height:2.6em;overflow:hidden;-webkit-line-clamp:2;-webkit-box-orient:vertical}.plugin-card .entry-title a{display:block;text-decoration:none}.plugin-card .entry-title a:focus{box-shadow:none}.plugin-card .entry-excerpt{clear:both;font-size:var(--wp--preset--font-size--small)}.plugin-card .entry-excerpt p{margin:0}.plugin-card footer{font-size:var(--wp--preset--font-size--small);margin-top:var(--wp--style--block-gap)}.plugin-card footer span{color:var(--wp--preset--color--charcoal-4);display:inline-block;line-height:var(--wp--preset--font-size--normal);overflow:hidden}.plugin-card footer span.plugin-author{width:100%}.plugin-card footer span.plugin-author span{color:var(--wp--preset--color--charcoal-1)}.plugin-card footer span.plugin-author path{fill:var(--wp--preset--color--charcoal-1)}.plugin-card footer span svg{height:24px;vertical-align:bottom;width:24px}.plugin-card footer span svg path{fill:var(--wp--preset--color--charcoal-4)}.plugin-card footer span.active-installs{min-width:48%}.plugin-cards{cursor:pointer}.plugin-cards .is-style-cards-grid li:hover{background-color:#fff!important;border:1px solid var(--wp--preset--color--charcoal-1)!important}.plugin-cards .is-style-cards-grid li:focus-within{border-color:#0000;border-radius:2px;box-shadow:0 0 0 1.5px var(--wp--custom--link--color--text)}@media screen and (max-width:737px){.plugin-cards .is-style-cards-grid{grid-template-columns:100%}}.entry-thumbnail{display:none;margin-bottom:var(--wp--style--block-gap);margin-left:var(--wp--style--block-gap);max-width:80px}.entry-thumbnail .plugin-icon{background-size:cover;border-radius:var(--wp--custom--button--border--radius);display:block;height:80px;width:80px}@media screen and (min-width:21em){.entry-thumbnail{display:inline-block;float:right;vertical-align:top}}.single .entry-thumbnail{display:none;float:right;height:96px;margin-bottom:0;max-width:96px}@media screen and (min-width:26em){.single .entry-thumbnail{display:block}}.single .entry-thumbnail .plugin-icon{background-size:contain!important;height:96px!important;width:96px!important}.plugin-rating{line-height:1;margin:0 0 8px 10px}.plugin-rating .wporg-ratings{display:inline-block;margin-left:5px}.plugin-rating .rating-count{color:var(--wp--preset--color--charcoal-4);font-size:var(--wp--preset--font-size--extra-small);vertical-align:text-bottom}.plugin-rating .rating-count a{color:inherit;cursor:hand;text-decoration:none}[class*=dashicons-star-]{color:var(--wp--preset--color--pomegrade-1)}.rtl .dashicons-star-half{transform:rotateY(-180deg)}#main .plugin-section{margin:0 auto var(--wp--preset--spacing--60)}#main .plugin-section:last-of-type{margin-bottom:0}#main .plugin-section .section-header{align-items:center;column-gap:10px;display:flex;justify-content:space-between;margin-bottom:var(--wp--style--block-gap)}#main .plugin-section .section-header>h2{margin-bottom:0}#main .plugin-section .section-link{align-self:center;flex:0 0 auto;text-decoration:underline}.pagination .nav-links{margin-top:var(--wp--style--block-gap);padding-top:var(--wp--style--block-gap);text-align:center}.pagination .nav-links a{text-decoration:none}.pagination .nav-links .page-numbers{cursor:pointer;display:inline-block;min-width:2em;padding:8px;text-align:center}.pagination .nav-links .page-numbers.dots,.pagination .nav-links .page-numbers.next,.pagination .nav-links .page-numbers.prev{background:none;font-size:.9em;width:auto}.pagination .nav-links .page-numbers.dots{cursor:inherit}@media screen and (max-width:737px){.pagination .nav-links .page-numbers.next,.pagination .nav-links .page-numbers.prev{font-size:0;min-width:auto;padding:0}.pagination .nav-links .page-numbers.next:after,.pagination .nav-links .page-numbers.prev:before{display:inline-block;font-size:medium;line-height:1.5;min-width:2em;padding:8px}.pagination .nav-links .page-numbers.prev:before{content:"‹"}.pagination .nav-links .page-numbers.next:after{content:"›"}}.pagination .nav-links span.page-numbers{font-weight:700}.pagination .nav-links span.page-numbers.current{text-decoration:underline}@keyframes favme-anime{0%{font-size:var(--wp--preset--font-size--large);opacity:1;-webkit-text-stroke-color:#0000}25%{color:#fff;font-size:var(--wp--preset--font-size--small);opacity:.6;-webkit-text-stroke-width:1px;-webkit-text-stroke-color:#dc3232}75%{color:#fff;font-size:var(--wp--preset--font-size--large);opacity:.6;-webkit-text-stroke-width:1px;-webkit-text-stroke-color:#dc3232}to{font-size:var(--wp--preset--font-size--normal);opacity:1;-webkit-text-stroke-color:#0000}}.plugin-favorite{height:calc(var(--wp--custom--button--spacing--padding--top)*2 + var(--wp--preset--font-size--normal)*2);text-align:center;vertical-align:top;width:36px}.plugin-favorite .plugin-favorite-heart{align-items:center;background:none;border:0;border-radius:0;box-shadow:none;color:#cbcdce;cursor:pointer;display:flex;font-size:var(--wp--preset--font-size--large);height:100%;justify-content:center;line-height:1;margin:0;outline:none;padding:0;text-decoration:none}.plugin-favorite .plugin-favorite-heart.favorited{color:#dc3232}.plugin-favorite .plugin-favorite-heart:focus,.plugin-favorite .plugin-favorite-heart:hover{color:var(----wp--preset--color--charcoal-2);text-decoration:none}.plugin-favorite .plugin-favorite-heart:after{content:"\f487";font-family:dashicons;vertical-align:top}.plugin-banner img{aspect-ratio:3.089;border-radius:var(--wp--custom--button--border--radius);display:block;margin:0 auto var(--wp--preset--spacing--30);width:100%}.plugin-releases{list-style-type:none;padding:0}.plugin-releases-item{border:1px solid var(--wp--preset--color--light-grey-1);border-radius:4px;margin-bottom:var(--wp--preset--spacing--30);padding:var(--wp--style--block-gap)}.plugin-releases-item-header{display:flex;justify-content:space-between}.plugin-releases-item-header h3{margin:0!important}@keyframes hideAnimation{to{visibility:hidden}}.categorization .help{color:var(--wp--preset--color--charcoal-4);display:inline-block;font-size:.8rem;margin-top:0}.categorization label{display:block;font-weight:700}.categorization input{width:100%}.categorization .success-msg{background:#eff7ed;border:solid #64b450;border-width:0 5px 0 0;font-size:.8rem;margin-right:1rem;opacity:0;overflow:auto;padding:.1rem .6rem .2rem;position:relative;transition:visibility 0s,opacity .5s linear;-webkit-user-select:none;user-select:none;visibility:hidden}.categorization .success-msg.saved{animation:hideAnimation 0s ease-in 5s;animation-fill-mode:forwards;opacity:1;visibility:visible}.plugin-changelog code{font-size:var(--wp--preset--font-size--small)}.plugin-developers .contributors-list li{align-items:center;display:flex;padding-bottom:var(--wp--style--block-gap)}@media screen and (min-width:500px){.plugin-developers .contributors-list{display:flex;flex-wrap:wrap}.plugin-developers .contributors-list li{padding-bottom:unset;width:50%}}.plugin-faq dl{border-bottom:1px solid var(--wp--preset--color--light-grey-1)}.plugin-faq dt{border-top:1px solid var(--wp--preset--color--light-grey-1);cursor:pointer;padding:1rem 0}.plugin-faq dt:before{content:"\f347";float:left;font-family:dashicons;margin:0 1rem}.plugin-faq dt.open:before{content:"\f343"}.plugin-faq dt .button-link{display:inherit;text-align:inherit}.plugin-faq dt .button-link.no-focus{box-shadow:none;outline:none}.plugin-faq dt h3{color:var(--wp--custom--link--color--text);display:inline;font-size:var(--wp--preset--font-size--normal);font-weight:400;margin-bottom:0;margin-top:0!important;text-decoration:underline}.plugin-faq dt h3 button{all:inherit;max-width:calc(100% - 60px)}.plugin-faq dt h3 button:focus,.plugin-faq dt h3 button:hover{text-decoration:underline}.plugin-faq dd{display:none;margin:0 0 1rem}.no-js .plugin-faq dd{display:block}.plugin-faq dd p{margin:0}.plugin-faq dd p+p{margin-top:1rem}.image-gallery{-webkit-user-select:none;user-select:none}.image-gallery-content{position:relative}.image-gallery-content .image-gallery-left-nav,.image-gallery-content .image-gallery-right-nav{border-color:var(--wp--preset--color--light-grey-1);display:none;font-size:48px;height:100%;position:absolute;top:0;transition:background .1s ease,border .1s ease;z-index:4}@media (max-width:768px){.image-gallery-content .image-gallery-left-nav,.image-gallery-content .image-gallery-right-nav{font-size:3.4em}}@media (min-width:768px){.image-gallery-content .image-gallery-left-nav:hover,.image-gallery-content .image-gallery-right-nav:hover{background:#fff;border:1px solid var(--wp--preset--color--light-grey-1);opacity:.8}}.image-gallery-content .image-gallery-left-nav:before,.image-gallery-content .image-gallery-right-nav:before{font-family:dashicons;position:relative}.image-gallery-content .image-gallery-left-nav{right:0}.image-gallery-content .image-gallery-left-nav:before{content:"\f345"}.image-gallery-content .image-gallery-left-nav:hover{margin-right:-1px}.image-gallery-content .image-gallery-right-nav{left:0}.image-gallery-content .image-gallery-right-nav:before{content:"\f341"}.image-gallery-content .image-gallery-right-nav:hover{margin-left:-1px}.image-gallery-content:hover .image-gallery-left-nav,.image-gallery-content:hover .image-gallery-right-nav{display:block}.image-gallery-slides{border:1px solid #eee;line-height:0;overflow:hidden;position:relative;white-space:nowrap}.image-gallery-slide{right:0;position:absolute;top:0;width:100%}.image-gallery-slide.center{position:relative}.image-gallery-slide .image-gallery-image{margin:0}.image-gallery-slide img{display:block;margin:0 auto}.image-gallery-slide .image-gallery-description{background:var(--wp--preset--color--light-grey-2);color:var(--wp--preset--color--charcoal-1);font-size:var(--wp--preset--font-size--small);line-height:1.5;padding:10px 20px;white-space:normal}@media (max-width:768px){.image-gallery-slide .image-gallery-description{padding:8px 15px}}.image-gallery-thumbnails{background:#fff;margin-top:5px}.image-gallery-thumbnails .image-gallery-thumbnails-container{cursor:pointer;text-align:center;white-space:nowrap}.image-gallery-thumbnail{border:1px solid #eee;display:table-cell;margin-left:5px;max-height:100px;overflow:hidden}.image-gallery-thumbnail .image-gallery-image{margin:0}.image-gallery-thumbnail img{vertical-align:middle;width:100px}@media (max-width:768px){.image-gallery-thumbnail img{width:75px}}.image-gallery-thumbnail:hover{box-shadow:0 1px 8px #0000004d}.image-gallery-thumbnail.active{border:1px solid #337ab7}.image-gallery-thumbnail-label{color:#222;font-size:1em}@media (max-width:768px){.image-gallery-thumbnail-label{font-size:.8em}}.image-gallery-index{background:#0006;bottom:0;color:#fff;line-height:1;padding:10px 20px;position:absolute;left:0;z-index:4}.plugin-reviews{list-style-type:none;margin:0;padding:0}.plugin-reviews .plugin-review{border-bottom:1px solid var(--wp--preset--color--light-grey-1);margin:2rem 0 1rem;padding-bottom:1rem}.plugin-reviews .plugin-review a{text-decoration:none}.plugin-reviews .plugin-review:first-child{margin-top:0}.plugin-reviews .plugin-review .header-top{display:flex}.plugin-reviews .plugin-review .header-top .wporg-ratings{flex-shrink:0}.plugin-reviews .plugin-review .header-bottom{display:flex;margin-top:4px}.plugin-reviews .review-avatar{display:none}.plugin-reviews .review,.plugin-reviews .review-author,.plugin-reviews .wporg-ratings{display:inline-block;vertical-align:top}.plugin-reviews .review-header{margin:0 0 .5rem}.plugin-reviews .review-title{font-size:var(--wp--preset--font-size--normal);font-weight:500;margin:2px 12px 0 0!important;text-transform:inherit}.plugin-reviews .review-author,.plugin-reviews .review-date,.plugin-reviews .review-replies{font-size:var(--wp--preset--font-size--extra-small);line-height:1.25}.plugin-reviews .review-date,.plugin-reviews .review-replies{color:var(--wp--preset--color--charcoal-4);font-size:var(--wp--preset--font-size--extra-small);margin-right:12px}.plugin-reviews .review-replies:before{content:"•";margin-left:12px}.plugin-reviews .review-content{margin:1em 0}@media screen and (min-width:737px){.plugin-reviews .review-avatar{display:inline-block;vertical-align:top}.plugin-reviews .review-avatar .avatar{margin-left:1rem}.plugin-reviews .review{width:calc(100% - 60px - 1rem)}.plugin-reviews .review-header{margin:0}.plugin-reviews .review-author,.plugin-reviews .review-date,.plugin-reviews .review-replies{line-height:1}}.plugin-reviews .reviews-link{display:inline-block;font-size:var(--wp--preset--font-size--small);text-decoration:none}.plugin-reviews .reviews-link:after{content:"\f341";float:left;font-family:dashicons;padding-right:5px;position:relative;top:1px;vertical-align:text-top}.plugin-screenshots{list-style-type:none;margin:0;padding:0}.plugin-screenshots .image-gallery-content{display:table;width:100%}.plugin-screenshots .image-gallery-slides{display:table-cell;max-height:600px}.plugin-screenshots .image-gallery-image img{max-height:550px;max-width:100%}.plugin-screenshots .image-gallery-thumbnail{vertical-align:top}.plugin-screenshots .image-gallery-thumbnail img{max-height:100px}.plugin-screenshots .image-gallery-thumbnails{overflow:hidden}.download-history-stats td{text-align:left}.previous-versions{max-width:60%}@media screen and (min-width:737px){.previous-versions{height:32px;vertical-align:middle}}hr{margin:2.5rem auto}.section h1:nth-child(2),.section h2:nth-child(2),.section h3:nth-child(2),.section h4:nth-child(2),.section h5:nth-child(2),.section h6:nth-child(2){margin-top:0}.section-heading{font-family:var(--wp--preset--font-family--inter)!important;font-size:var(--wp--preset--font-size--heading-5)!important;font-style:normal;font-weight:600;line-height:var(--wp--custom--heading--level-5--typography--line-height)}.section-intro{color:var(--wp--preset--color--charcoal-4);font-size:var(--wp--preset--font-size--small);margin-bottom:var(--wp--preset--spacing--20);margin-top:var(--wp--preset--spacing--10)}.type-plugin .plugin-notice{margin-top:0}.type-plugin .plugin-header{border-bottom:0;padding-top:var(--wp--preset--spacing--40)}.type-plugin .plugin-header:after,.type-plugin .plugin-header:before{content:"";display:table;table-layout:fixed}.type-plugin .plugin-header:after{clear:both}.type-plugin .plugin-header .entry-heading-container{display:flex;flex-direction:column;justify-content:space-between}@media screen and (max-width:599px){.type-plugin .plugin-header .entry-heading-container{--wp--custom--button--spacing--padding--top:12px;--wp--custom--button--spacing--padding--bottom:12px;--wp--custom--button--spacing--padding--left:16px;--wp--custom--button--spacing--padding--right:16px}}@media screen and (min-width:700px){.type-plugin .plugin-header .entry-heading-container{flex-direction:row}}.type-plugin .plugin-header .entry-heading-container>:first-child{align-items:center;display:flex;flex:1}.type-plugin .plugin-header .plugin-actions{align-items:center;display:flex;gap:16px;margin-top:var(--wp--style--block-gap)}@media screen and (min-width:700px){.type-plugin .plugin-header .plugin-actions{margin-top:0;margin-inline-start:1rem}}.type-plugin .plugin-header .plugin-actions>.button,.type-plugin .plugin-header .plugin-actions>div{display:inline-block;text-align:center}@media screen and (max-width:34em){.type-plugin .plugin-header .plugin-actions>.button.download-button{display:none}}.type-plugin .plugin-header .plugin-title{clear:none;font-size:var(--wp--preset--font-size--heading-3);font-weight:400;line-height:var(--wp--custom--heading--level-3--typography--line-height);margin:0}.type-plugin .plugin-header .plugin-title a{color:inherit;text-decoration:none}.type-plugin .plugin-header .plugin-title a:hover{text-decoration:underline}.type-plugin .plugin-header .byline{color:var(--wp--preset--color--charcoal-4);display:block;margin-top:4px}.type-plugin .plugin-banner+.plugin-header{padding-top:0}.type-plugin .plugin-banner+.plugin-header>.notice:first-of-type{margin-top:0}.type-plugin .tabs{border-bottom:1px solid var(--wp--preset--color--light-grey-1);list-style:none;margin:0}.type-plugin .tabs li{border:1px solid #0000;display:inline-block;font-size:.9rem;margin-bottom:-1px;transition:background .2s ease}.type-plugin .tabs li a{background:#fff;border:0;color:var(--wp--preset--color--charcoal-1);display:block;font-size:var(--wp--preset--font-size--normal);padding:.64rem 1.25rem;text-decoration:none}.type-plugin .tabs li a.active,.type-plugin .tabs li a:hover{background:var(--wp--preset--color--light-grey-2)!important}.type-plugin .tabs li.active,.type-plugin .tabs li:hover{border:1px solid var(--wp--preset--color--light-grey-1)}@media screen and (max-width:38em){.type-plugin .tabs{border-top:1px solid var(--wp--preset--color--light-grey-1)}.type-plugin .tabs li{display:block;margin-bottom:1px}.type-plugin .tabs li,.type-plugin .tabs li.active,.type-plugin .tabs li:hover{border:none;border-bottom:1px solid var(--wp--preset--color--light-grey-1)}}@media screen and (min-width:737px){.type-plugin .entry-content{float:right;padding:0;width:65%}}.type-plugin .entry-content>div,.type-plugin .entry-content>div~button{border:0;display:none}.type-plugin .entry-content ol>li>p,.type-plugin .entry-content ul>li>p{margin:0}.type-plugin .entry-content #admin{display:block!important}.type-plugin .plugin-blocks-list{list-style:none;margin-right:0;padding-right:0}.type-plugin .plugin-blocks-list .plugin-blocks-list-item{display:grid;grid-template-columns:auto 1fr;margin-bottom:var(--wp--style--block-gap)}.type-plugin .plugin-blocks-list .block-icon{border:1px solid var(--wp--preset--color--light-grey-1);border-radius:2px;display:inline-block;height:3.5rem;line-height:16px;margin-left:var(--wp--style--block-gap);padding:var(--wp--style--block-gap);width:3.5rem}.type-plugin .plugin-blocks-list .block-icon.dashicons{color:inherit}.type-plugin .plugin-blocks-list .block-icon.dashicons:before{margin-right:-3px}.type-plugin .plugin-blocks-list .block-icon svg{height:16px;width:16px;fill:currentColor;margin-right:-1px}.type-plugin .plugin-blocks-list .block-title{align-self:center;font-weight:700}.type-plugin .plugin-blocks-list .has-description .block-icon{grid-row:1/span 2}.type-plugin .plugin-blocks-list .has-description .block-title{margin-bottom:.4em}.type-plugin span#description,.type-plugin span#developers,.type-plugin span#installation,.type-plugin span#releases,.type-plugin span#reviews{position:fixed}.type-plugin span#advanced.displayed~#section-links .tabs li#tablink-advanced,.type-plugin span#developers:target~#section-links .tabs li#tablink-developers,.type-plugin span#installation:target~#section-links .tabs li#tablink-installation,.type-plugin span#releases:target~#section-links .tabs li#tablink-releases,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~span#advanced:not(.displayed)~#section-links .tabs li#tablink-description,.type-plugin span#reviews:target~#section-links .tabs li#tablink-reviews{background:#fff;border:1px solid var(--wp--preset--color--light-grey-1);border-bottom:0;padding-bottom:1px}@media screen and (max-width:38em){.type-plugin span#advanced.displayed~#section-links .tabs li#tablink-advanced.active,.type-plugin span#advanced.displayed~#section-links .tabs li#tablink-advanced:hover,.type-plugin span#developers:target~#section-links .tabs li#tablink-developers.active,.type-plugin span#developers:target~#section-links .tabs li#tablink-developers:hover,.type-plugin span#installation:target~#section-links .tabs li#tablink-installation.active,.type-plugin span#installation:target~#section-links .tabs li#tablink-installation:hover,.type-plugin span#releases:target~#section-links .tabs li#tablink-releases.active,.type-plugin span#releases:target~#section-links .tabs li#tablink-releases:hover,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~span#advanced:not(.displayed)~#section-links .tabs li#tablink-description.active,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~span#advanced:not(.displayed)~#section-links .tabs li#tablink-description:hover,.type-plugin span#reviews:target~#section-links .tabs li#tablink-reviews.active,.type-plugin span#reviews:target~#section-links .tabs li#tablink-reviews:hover{padding-bottom:1px!important}}.type-plugin span#section-links{display:flex;flex-flow:row wrap;margin-top:var(--wp--preset--spacing--30)}.type-plugin span#section-links .tabs{flex:1 1 auto;padding-right:0}@media screen and (max-width:38em){.type-plugin span#section-links .tabs{border:1px solid var(--wp--preset--color--light-grey-1)!important}.type-plugin span#section-links .tabs li{border:none!important}.type-plugin span#section-links{display:block}}.type-plugin #link-support{align-self:flex-end;border-bottom:1px solid var(--wp--preset--color--light-grey-1);flex:0 0 auto;font-size:.9rem}.type-plugin #link-support a{display:inline-block;font-size:var(--wp--preset--font-size--normal);padding:.64rem 1.25rem .64rem 0}@media screen and (max-width:38em){.type-plugin #link-support{border-bottom:0;display:block;width:100%}.type-plugin #link-support a{padding-left:1.25rem}}.type-plugin span#developers:target~.entry-content #tab-changelog,.type-plugin span#developers:target~.entry-content #tab-developers,.type-plugin span#developers:target~.entry-content #tab-developers .plugin-development,.type-plugin span#developers:target~.entry-content #tab-developers~button,.type-plugin span#installation:target~.entry-content #tab-installation,.type-plugin span#releases:target~.entry-content #tab-releases,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~.entry-content #blocks,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~.entry-content #faq,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~.entry-content #screenshots,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~.entry-content #tab-description,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~.entry-content #tab-developers,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~.entry-content #tab-developers~button,.type-plugin span#reviews:target~.entry-content #tab-reviews{display:block}.type-plugin span#developers:target~.entry-content #tab-developers .plugin-contributors,.type-plugin span#installation:target~.entry-meta .plugin-contributors,.type-plugin span#releases:target~.entry-meta,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~.entry-content #tab-developers .plugin-development,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~.entry-meta .plugin-contributors,.type-plugin span#reviews:target~.entry-meta .plugin-contributors,.type-plugin span#reviews:target~.entry-meta .plugin-donate,.type-plugin span#reviews:target~.entry-meta .plugin-meta,.type-plugin span#reviews:target~.entry-meta .plugin-support{display:none}.type-plugin span#releases:target~.entry-content{width:100%}@media screen and (min-width:737px){.type-plugin .entry-content,.type-plugin .entry-meta{padding-right:0;padding-left:0}.type-plugin .entry-meta{float:left;width:30%}}.type-plugin .plugin-danger-zone h4{margin-top:var(--wp--preset--spacing--60)}.plugin-releases-listing{border-collapse:collapse;width:100%}.plugin-releases-listing tbody td:nth-child(4) div{font-size:14px}.plugin-releases-listing-actions{display:flex;flex-direction:column;gap:8px}@media screen and (min-width:34em){.plugin-releases-listing-actions{flex-direction:row}}.plugin-adopt-me{background:#e6f4fa;margin-top:36px;padding:12px}.plugin-adopt-me .widget-title{margin-top:0}.plugin-adopt-me p{margin-bottom:0}.widget.plugin-categorization{margin-top:var(--wp--style--block-gap)}.widget.plugin-categorization .widget-head h2{font-size:var(--wp--preset--font-size--heading-4);margin-bottom:.2rem;margin-top:0}.widget.plugin-categorization .widget-head a{font-size:var(--wp--preset--font-size--small)}.widget.plugin-categorization .widget-head a[href=""]{display:none}.widget.plugin-categorization p{font-size:var(--wp--preset--font-size--small);margin-top:.5rem}.widget.plugin-categorization~.plugin-meta li:first-child{border-top:1px solid var(--wp--preset--color--light-grey-1)}.committer-list,.support-rep-list{list-style:none;margin:0;padding:0}.committer-list li,.support-rep-list li{padding-bottom:.5rem}.committer-list li .remove,.support-rep-list li .remove{color:red;visibility:hidden}.committer-list li:hover .remove,.support-rep-list li:hover .remove{visibility:visible}.committer-list .avatar,.support-rep-list .avatar{float:right;margin-left:10px}.committer-list .spinner,.support-rep-list .spinner{position:relative}.committer-list .spinner:after,.support-rep-list .spinner:after{background:url(/wp-admin/images/spinner.gif) no-repeat 50%;background-size:20px 20px;content:"";display:block;height:20px;margin:-10px 0 0 -10px;position:absolute;left:-50%;top:50%;transform:translateZ(0);width:20px}@media (min-resolution:120dpi),print{.committer-list .spinner:after,.support-rep-list .spinner:after{background-image:url(/wp-admin/images/spinner-2x.gif)}}.committer-list .new,.support-rep-list .new{margin-top:var(--wp--style--block-gap)}.plugin-contributors.read-more{border-bottom:1px solid var(--wp--preset--color--light-grey-1);max-height:200px;overflow:hidden;padding-bottom:1px}.plugin-contributors.read-more.toggled{max-height:none}.no-js .plugin-contributors.read-more{max-height:none;overflow:auto}.contributors-list{list-style-type:none;margin:0;padding:0}.contributors-list li{align-items:center;display:flex;margin-bottom:1rem}.contributors-list .avatar{float:right;margin-left:10px}.plugin-meta{font-size:var(--wp--preset--font-size--small);margin-top:var(--wp--style--block-gap)}.plugin-meta ul{list-style-type:none;margin:0;padding:0}.plugin-meta li{border-top:1px solid var(--wp--preset--color--light-grey-1);display:inline-block;padding:.5rem 0;position:relative;width:100%}.plugin-meta li strong{float:left;font-weight:500}.plugin-meta li .plugin-admin{font-size:var(--wp--preset--font-size--normal);font-weight:400}.plugin-meta li:first-child{border-top:0}.plugin-meta .languages,.plugin-meta .tags{float:left;text-align:left}.plugin-meta .tags{width:60%}.plugin-meta .languages button{font-size:var(--wp--preset--font-size--small);outline:revert}.plugin-meta .languages .popover{margin-top:8px}.plugin-meta .languages .popover-trigger{color:var(--wp--custom--link--color--text);text-decoration:underline}.plugin-meta .languages .popover-trigger:hover{text-decoration:underline}.plugin-meta [rel=tag]{background:var(--wp--preset--color--blueberry-4);border-radius:2px;color:var(--wp--preset--color--charcoal-1);display:inline-block;font-size:var(--wp--preset--font-size--extra-small);margin:2px;max-width:95%;overflow:hidden;padding:3px 6px;position:relative;text-decoration:none;text-overflow:ellipsis;white-space:nowrap;width:auto}.plugin-meta [rel=tag]:hover{text-decoration:underline}.popover{background-color:#fff;border:1px solid var(--wp--preset--color--light-grey-1);border-radius:2px;box-shadow:0 2px 10px #0000001a;display:none;right:0;margin-top:10px;max-width:300px;padding:1em 1em 2em;position:absolute;width:100%;z-index:100}.popover.is-top-right{right:auto;left:0}.popover.is-visible{display:block}.popover .popover-close{bottom:.5em;color:var(--wp--custom--link--color--text);font-size:small;position:absolute;left:.6em}.popover .popover-close:active,.popover .popover-close:focus,.popover .popover-close:hover{text-decoration:underline}.popover .popover-arrow{border:10px solid #0000;border-bottom:10px solid #ccc;border-top:none;height:0;position:absolute;left:20px;top:-10px;width:0;z-index:-1}.popover .popover-arrow:after{border:10px solid #0000;border-bottom:10px solid #fff;border-top:none;content:"";right:-10px;position:absolute;top:2px}.popover .popover-inner{text-align:right}.popover .popover-inner p:first-child{margin-top:0}.popover .popover-inner p:last-child{margin-bottom:0}.plugin-support .counter-container{margin-bottom:1rem;position:relative}.plugin-support .counter-back,.plugin-support .counter-bar{display:inline-block;height:30px;vertical-align:middle}.plugin-support .counter-back{background-color:var(--wp--preset--color--light-grey-2);width:100%}.plugin-support .counter-bar{background-color:var(--wp--preset--color--acid-green-2);display:block}.plugin-support .counter-count{font-size:var(--wp--preset--font-size--extra-small);right:8px;position:absolute;top:8px;width:100%;width:calc(100% - 8px)}@media screen and (min-width:737px){.plugin-support .counter-count{top:5px}}.home .widget,.widget-area.home .widget{display:inline-block;font-size:var(--wp--preset--font-size--small);margin:0;margin:var(--wp--style--block-gap);vertical-align:top;width:auto}@media screen and (min-width:737px){.home .widget,.widget-area.home .widget{margin:0;width:30%}.home .widget:first-child,.widget-area.home .widget:first-child{margin-left:5%}.home .widget:last-child,.widget-area.home .widget:last-child{margin-right:5%}}.home .widget select,.widget-area.home .widget select{max-width:100%}.entry-meta .widget-title{font-size:var(--wp--preset--font-size--heading-4)}body.single.single-plugin .entry-meta{font-size:var(--wp--preset--font-size--normal)}.widget-area{margin:0 auto;padding:var(--wp--preset--spacing--40) 0}.widget-area .widget-title{font-size:var(--wp--preset--font-size--heading-1);font-weight:var(--wp--custom--heading--typography--font-weight);margin-top:var(--wp--preset--spacing--50)}.widget-area .textwidget{text-wrap:pretty} ->>>>>>> try/release-page +@charset "UTF-8";.avatar{border-radius:50%;vertical-align:middle}.wp-block-wporg-language-suggest>p{margin:0}.block-validator>details summary{padding:var(--wp--style--block-gap) 0}.block-validator .block-validator__plugin-form label{display:block;margin-bottom:.8em}.block-validator .block-validator__plugin-input-container{display:flex;max-width:34rem}.block-validator .block-validator__plugin-input{flex:1}.block-validator .block-validator__plugin-submit{flex:0;margin-right:4px}@media (max-width:36rem){.block-validator .block-validator__plugin-submit{width:100%}.block-validator .block-validator__plugin-input-container{display:block}.block-validator .block-validator__plugin-input{width:100%}.block-validator .block-validator__plugin-submit{margin-right:0;margin-top:var(--wp--style--block-gap)}}.block-validator .notice details,.block-validator .notice p{font-size:var(--wp--preset--font-size--normal);margin:var(--wp--style--block-gap) 0}.block-validator .notice details p{font-size:var(--wp--preset--font-size--small);margin-right:1rem}.block-validator .notice summary{display:list-item}.block-validator figure{border:1px solid #aaa;display:inline-block;padding:1em}.block-validator .test-screenshot{text-align:center}.block-validator .plugin-upload-form-controls{align-items:center;display:flex;gap:4px}.block-validator .plugin-upload-form-controls>label{border:1px solid var(--wp--custom--form--border--color);border-radius:var(--wp--custom--form--border--radius);cursor:pointer;min-width:200px;padding:4px 8px}.notice{background:#fff;border-right:4px solid #fff;box-shadow:0 1px 1px 0 #0000001a;font-size:var(--wp--preset--font-size--small);margin:var(--wp--style--block-gap) 0;padding:1px 12px}.notice p,.notice ul{margin:.5em 0;padding:2px}.notice pre{white-space:pre-wrap}.notice ul{list-style:none;margin:.5em}.notice.notice-alt{box-shadow:none}.notice.notice-large{padding:10px 20px}.notice.notice-success{border-right-color:#46b450}.notice.notice-success.notice-alt{background-color:#ecf7ed}.notice.notice-warning{border-right-color:#ffb900}.notice.notice-warning.notice-alt{background-color:#fff8e5}.notice.notice-error{border-right-color:#dc3232}.notice.notice-error.notice-alt{background-color:#fbeaea}.notice.notice-info{border-right-color:#00a0d2}.notice.notice-info.notice-alt{background-color:#e5f5fa}.notice.hidden{display:none}.plugin-upload-form.hidden{display:none}.plugin-upload-form fieldset{border:none;margin:0;padding:0}.plugin-upload-form legend{margin:1rem 0}.plugin-upload-form .category-checklist{list-style-type:none;margin:0 0 2rem}.plugin-upload-form .category-checklist li{float:right;padding:.5rem 0;width:50%}@media screen and (min-width:48em){.plugin-upload-form .category-checklist li{padding:0}.plugin-upload-form .category-checklist label{font-size:var(--wp--preset--font-size--small)}.plugin-upload-form label.button{line-height:1.8}}.plugin-upload-form .plugin-file{height:.1px;opacity:0;overflow:hidden;position:absolute;width:.1px;z-index:-1}.plugin-queue-message code{font-size:1em}.plugin-queue-message dialog.slug-change input[type=text]{font-family:monospace;font-size:1.2em;width:20em}:where(main) a:where(:not(.wp-element-button,.wp-block-wporg-link-wrapper)):focus,:where(main) button:where(:not([class*=wp-block-button])):focus{border-radius:2px;box-shadow:0 0 0 1.5px currentColor;outline:none}.wporg-filter-bar{--wporg--filter-bar--gap:20px;--wporg--filter-bar--color:#40464d;--wporg--filter-bar--active--background-color:var(--wp--custom--button--color--background);--wporg--filter-bar--focus--border-color:var(--wp--custom--button--focus--border--color);margin:var(--wp--style--block-gap) 0}.wporg-filter-bar .wporg-query-filter__toggle.is-active,.wporg-filter-bar .wporg-query-filter__toggle:active,.wporg-filter-bar .wporg-query-filter__toggle:focus{background-color:var(--wporg--filter-bar--active--background-color);color:var(--wp--custom--button--color--text)}.wporg-filter-bar .wporg-filter-bar__navigation{flex-grow:1;margin-bottom:var(--wporg--filter-bar--gap)}.wporg-filter-bar .wporg-filter-bar__navigation ul{display:inline-block;font-size:13px;line-height:1.538;list-style:none;margin:0;padding-right:0}.wporg-filter-bar .wporg-filter-bar__navigation ul li{display:inline-block}.wporg-filter-bar .wporg-filter-bar__navigation ul li+li{margin-right:8px}.wporg-filter-bar .wporg-filter-bar__navigation ul a{border-radius:2px;color:var(--wporg--filter-bar--color);display:block;padding:8px 12px;text-decoration:none}.wporg-filter-bar .wporg-filter-bar__navigation ul a:focus,.wporg-filter-bar .wporg-filter-bar__navigation ul a:hover{text-decoration:underline}.wporg-filter-bar .wporg-filter-bar__navigation ul a:focus-visible{box-shadow:none;outline:1.5px solid var(--wporg--filter-bar--focus--border-color);outline-offset:-.5px}.wporg-filter-bar .wporg-filter-bar__navigation ul a.is-active{background-color:var(--wporg--filter-bar--active--background-color);color:#fff}.wporg-filter-bar .wporg-filter-bar__navigation ul a.is-active:focus,.wporg-filter-bar .wporg-filter-bar__navigation ul a.is-active:hover{color:#fff}.wporg-filter-bar .wporg-filter-bar__navigation ul a.is-active:focus-visible{box-shadow:inset 0 0 0 1.5px #fff;outline:1.5px solid var(--wporg--filter-bar--focus--border-color);outline-offset:-.5px}@media screen and (min-width:737px){.wporg-filter-bar{align-items:center;display:flex;flex-wrap:wrap;gap:var(--wporg--filter-bar--gap);justify-content:space-between;width:100%}.wporg-filter-bar .wporg-filter-bar__navigation{margin-bottom:0}}.wp-block-search__inside-wrapper{background:var(--wp--preset--color--light-grey-2);border:none}.button-link{background:none;border:0;border-radius:0;box-shadow:none;cursor:pointer;margin:0;outline:none;padding:0}.button{background-color:var(--wp--custom--button--color--background);border:0;border-radius:var(--wp--custom--button--border--radius);color:var(--wp--custom--button--color--text);cursor:pointer;opacity:1;padding:calc(var(--wp--custom--button--small--spacing--padding--top) + var(--wp--custom--button--border--width)) calc(var(--wp--custom--button--small--spacing--padding--left) + var(--wp--custom--button--border--width)) calc(var(--wp--custom--button--small--spacing--padding--bottom) + var(--wp--custom--button--border--width)) calc(var(--wp--custom--button--small--spacing--padding--right) + var(--wp--custom--button--border--width));vertical-align:middle}.button.button-large{padding:calc(var(--wp--custom--button--spacing--padding--top) + var(--wp--custom--button--border--width)) calc(var(--wp--custom--button--spacing--padding--left) + var(--wp--custom--button--border--width)) calc(var(--wp--custom--button--spacing--padding--bottom) + var(--wp--custom--button--border--width)) calc(var(--wp--custom--button--spacing--padding--right) + var(--wp--custom--button--border--width))}input+button.button,select+button.button{margin-top:-3px}.button.disabled{cursor:not-allowed;opacity:.6}.wp-block-post-content a.button{text-decoration:none}.wp-block-button__link{width:auto}pre{background-color:#f7f7f7;border:1px solid var(--wp--preset--color--light-grey-1);overflow:scroll;padding:20px}code,pre{border-radius:2px}code{background:var(--wp--preset--color--light-grey-2);display:inline-block;line-height:var(--wp--custom--body--extra-small--typography--line-height);max-width:100%;padding-inline-end:3px;padding-inline-start:3px}dialog{border:0;box-shadow:-6px 6px 6px #0003;min-height:50%;min-width:30%}@media (min-width:1280px){dialog{max-width:55%}}dialog::backdrop{background:#000;opacity:.5}dialog .close{color:inherit;cursor:pointer;position:absolute;left:1em;text-decoration:none!important;top:1em}.plugin-card{display:flex;flex-direction:column;height:100%;justify-content:space-between}.plugin-card .entry{display:inline-block;vertical-align:top}.plugin-card .entry-title{display:block;display:-webkit-box;font-size:var(--wp--preset--font-size--heading-5);font-weight:500;line-height:1.3;margin-bottom:2px!important;max-height:2.6em;overflow:hidden;-webkit-line-clamp:2;-webkit-box-orient:vertical}.plugin-card .entry-title a{display:block;text-decoration:none}.plugin-card .entry-title a:focus{box-shadow:none}.plugin-card .entry-excerpt{clear:both;font-size:var(--wp--preset--font-size--small)}.plugin-card .entry-excerpt p{margin:0}.plugin-card footer{font-size:var(--wp--preset--font-size--small);margin-top:var(--wp--style--block-gap)}.plugin-card footer span{color:var(--wp--preset--color--charcoal-4);display:inline-block;line-height:var(--wp--preset--font-size--normal);overflow:hidden}.plugin-card footer span.plugin-author{width:100%}.plugin-card footer span.plugin-author span{color:var(--wp--preset--color--charcoal-1)}.plugin-card footer span.plugin-author path{fill:var(--wp--preset--color--charcoal-1)}.plugin-card footer span svg{height:24px;vertical-align:bottom;width:24px}.plugin-card footer span svg path{fill:var(--wp--preset--color--charcoal-4)}.plugin-card footer span.active-installs{min-width:48%}.plugin-cards{cursor:pointer}.plugin-cards .is-style-cards-grid li:hover{background-color:#fff!important;border:1px solid var(--wp--preset--color--charcoal-1)!important}.plugin-cards .is-style-cards-grid li:focus-within{border-color:#0000;border-radius:2px;box-shadow:0 0 0 1.5px var(--wp--custom--link--color--text)}@media screen and (max-width:737px){.plugin-cards .is-style-cards-grid{grid-template-columns:100%}}.entry-thumbnail{display:none;margin-bottom:var(--wp--style--block-gap);margin-left:var(--wp--style--block-gap);max-width:80px}.entry-thumbnail .plugin-icon{background-size:cover;border-radius:var(--wp--custom--button--border--radius);display:block;height:80px;width:80px}@media screen and (min-width:21em){.entry-thumbnail{display:inline-block;float:right;vertical-align:top}}.single .entry-thumbnail{display:none;float:right;height:96px;margin-bottom:0;max-width:96px}@media screen and (min-width:26em){.single .entry-thumbnail{display:block}}.single .entry-thumbnail .plugin-icon{background-size:contain!important;height:96px!important;width:96px!important}.plugin-rating{line-height:1;margin:0 0 8px 10px}.plugin-rating .wporg-ratings{display:inline-block;margin-left:5px}.plugin-rating .rating-count{color:var(--wp--preset--color--charcoal-4);font-size:var(--wp--preset--font-size--extra-small);vertical-align:text-bottom}.plugin-rating .rating-count a{color:inherit;cursor:hand;text-decoration:none}[class*=dashicons-star-]{color:var(--wp--preset--color--pomegrade-1)}.rtl .dashicons-star-half{transform:rotateY(-180deg)}#main .plugin-section{margin:0 auto var(--wp--preset--spacing--60)}#main .plugin-section:last-of-type{margin-bottom:0}#main .plugin-section .section-header{align-items:center;column-gap:10px;display:flex;justify-content:space-between;margin-bottom:var(--wp--style--block-gap)}#main .plugin-section .section-header>h2{margin-bottom:0}#main .plugin-section .section-link{align-self:center;flex:0 0 auto;text-decoration:underline}.pagination .nav-links{margin-top:var(--wp--style--block-gap);padding-top:var(--wp--style--block-gap);text-align:center}.pagination .nav-links a{text-decoration:none}.pagination .nav-links .page-numbers{cursor:pointer;display:inline-block;min-width:2em;padding:8px;text-align:center}.pagination .nav-links .page-numbers.dots,.pagination .nav-links .page-numbers.next,.pagination .nav-links .page-numbers.prev{background:none;font-size:.9em;width:auto}.pagination .nav-links .page-numbers.dots{cursor:inherit}@media screen and (max-width:737px){.pagination .nav-links .page-numbers.next,.pagination .nav-links .page-numbers.prev{font-size:0;min-width:auto;padding:0}.pagination .nav-links .page-numbers.next:after,.pagination .nav-links .page-numbers.prev:before{display:inline-block;font-size:medium;line-height:1.5;min-width:2em;padding:8px}.pagination .nav-links .page-numbers.prev:before{content:"‹"}.pagination .nav-links .page-numbers.next:after{content:"›"}}.pagination .nav-links span.page-numbers{font-weight:700}.pagination .nav-links span.page-numbers.current{text-decoration:underline}@keyframes favme-anime{0%{font-size:var(--wp--preset--font-size--large);opacity:1;-webkit-text-stroke-color:#0000}25%{color:#fff;font-size:var(--wp--preset--font-size--small);opacity:.6;-webkit-text-stroke-width:1px;-webkit-text-stroke-color:#dc3232}75%{color:#fff;font-size:var(--wp--preset--font-size--large);opacity:.6;-webkit-text-stroke-width:1px;-webkit-text-stroke-color:#dc3232}to{font-size:var(--wp--preset--font-size--normal);opacity:1;-webkit-text-stroke-color:#0000}}.plugin-favorite{height:calc(var(--wp--custom--button--spacing--padding--top)*2 + var(--wp--preset--font-size--normal)*2);text-align:center;vertical-align:top;width:36px}.plugin-favorite .plugin-favorite-heart{align-items:center;background:none;border:0;border-radius:0;box-shadow:none;color:#cbcdce;cursor:pointer;display:flex;font-size:var(--wp--preset--font-size--large);height:100%;justify-content:center;line-height:1;margin:0;outline:none;padding:0;text-decoration:none}.plugin-favorite .plugin-favorite-heart.favorited{color:#dc3232}.plugin-favorite .plugin-favorite-heart:focus,.plugin-favorite .plugin-favorite-heart:hover{color:var(----wp--preset--color--charcoal-2);text-decoration:none}.plugin-favorite .plugin-favorite-heart:after{content:"\f487";font-family:dashicons;vertical-align:top}.plugin-banner img{aspect-ratio:3.089;border-radius:var(--wp--custom--button--border--radius);display:block;margin:0 auto var(--wp--preset--spacing--30);width:100%}.plugin-releases{list-style-type:none;padding:0}.plugin-releases-item{border:1px solid var(--wp--preset--color--light-grey-1);border-radius:4px;margin-bottom:var(--wp--preset--spacing--30);padding:var(--wp--style--block-gap)}.plugin-releases-item-header{display:flex;justify-content:space-between}.plugin-releases-item-header h3{margin:0!important}@keyframes hideAnimation{to{visibility:hidden}}.categorization .help{color:var(--wp--preset--color--charcoal-4);display:inline-block;font-size:.8rem;margin-top:0}.categorization label{display:block;font-weight:700}.categorization input{width:100%}.categorization .success-msg{background:#eff7ed;border:solid #64b450;border-width:0 5px 0 0;font-size:.8rem;margin-right:1rem;opacity:0;overflow:auto;padding:.1rem .6rem .2rem;position:relative;transition:visibility 0s,opacity .5s linear;-webkit-user-select:none;user-select:none;visibility:hidden}.categorization .success-msg.saved{animation:hideAnimation 0s ease-in 5s;animation-fill-mode:forwards;opacity:1;visibility:visible}.plugin-changelog code{font-size:var(--wp--preset--font-size--small)}.plugin-developers .contributors-list li{align-items:center;display:flex;padding-bottom:var(--wp--style--block-gap)}@media screen and (min-width:500px){.plugin-developers .contributors-list{display:flex;flex-wrap:wrap}.plugin-developers .contributors-list li{padding-bottom:unset;width:50%}}.plugin-faq dl{border-bottom:1px solid var(--wp--preset--color--light-grey-1)}.plugin-faq dt{border-top:1px solid var(--wp--preset--color--light-grey-1);cursor:pointer;padding:1rem 0}.plugin-faq dt:before{content:"\f347";float:left;font-family:dashicons;margin:0 1rem}.plugin-faq dt.open:before{content:"\f343"}.plugin-faq dt .button-link{display:inherit;text-align:inherit}.plugin-faq dt .button-link.no-focus{box-shadow:none;outline:none}.plugin-faq dt h3{color:var(--wp--custom--link--color--text);display:inline;font-size:var(--wp--preset--font-size--normal);font-weight:400;margin-bottom:0;margin-top:0!important;text-decoration:underline}.plugin-faq dt h3 button{all:inherit;max-width:calc(100% - 60px)}.plugin-faq dt h3 button:focus,.plugin-faq dt h3 button:hover{text-decoration:underline}.plugin-faq dd{display:none;margin:0 0 1rem}.no-js .plugin-faq dd{display:block}.plugin-faq dd p{margin:0}.plugin-faq dd p+p{margin-top:1rem}.image-gallery{-webkit-user-select:none;user-select:none}.image-gallery-content{position:relative}.image-gallery-content .image-gallery-left-nav,.image-gallery-content .image-gallery-right-nav{border-color:var(--wp--preset--color--light-grey-1);display:none;font-size:48px;height:100%;position:absolute;top:0;transition:background .1s ease,border .1s ease;z-index:4}@media (max-width:768px){.image-gallery-content .image-gallery-left-nav,.image-gallery-content .image-gallery-right-nav{font-size:3.4em}}@media (min-width:768px){.image-gallery-content .image-gallery-left-nav:hover,.image-gallery-content .image-gallery-right-nav:hover{background:#fff;border:1px solid var(--wp--preset--color--light-grey-1);opacity:.8}}.image-gallery-content .image-gallery-left-nav:before,.image-gallery-content .image-gallery-right-nav:before{font-family:dashicons;position:relative}.image-gallery-content .image-gallery-left-nav{right:0}.image-gallery-content .image-gallery-left-nav:before{content:"\f345"}.image-gallery-content .image-gallery-left-nav:hover{margin-right:-1px}.image-gallery-content .image-gallery-right-nav{left:0}.image-gallery-content .image-gallery-right-nav:before{content:"\f341"}.image-gallery-content .image-gallery-right-nav:hover{margin-left:-1px}.image-gallery-content:hover .image-gallery-left-nav,.image-gallery-content:hover .image-gallery-right-nav{display:block}.image-gallery-slides{border:1px solid #eee;line-height:0;overflow:hidden;position:relative;white-space:nowrap}.image-gallery-slide{right:0;position:absolute;top:0;width:100%}.image-gallery-slide.center{position:relative}.image-gallery-slide .image-gallery-image{margin:0}.image-gallery-slide img{display:block;margin:0 auto}.image-gallery-slide .image-gallery-description{background:var(--wp--preset--color--light-grey-2);color:var(--wp--preset--color--charcoal-1);font-size:var(--wp--preset--font-size--small);line-height:1.5;padding:10px 20px;white-space:normal}@media (max-width:768px){.image-gallery-slide .image-gallery-description{padding:8px 15px}}.image-gallery-thumbnails{background:#fff;margin-top:5px}.image-gallery-thumbnails .image-gallery-thumbnails-container{cursor:pointer;text-align:center;white-space:nowrap}.image-gallery-thumbnail{border:1px solid #eee;display:table-cell;margin-left:5px;max-height:100px;overflow:hidden}.image-gallery-thumbnail .image-gallery-image{margin:0}.image-gallery-thumbnail img{vertical-align:middle;width:100px}@media (max-width:768px){.image-gallery-thumbnail img{width:75px}}.image-gallery-thumbnail:hover{box-shadow:0 1px 8px #0000004d}.image-gallery-thumbnail.active{border:1px solid #337ab7}.image-gallery-thumbnail-label{color:#222;font-size:1em}@media (max-width:768px){.image-gallery-thumbnail-label{font-size:.8em}}.image-gallery-index{background:#0006;bottom:0;color:#fff;line-height:1;padding:10px 20px;position:absolute;left:0;z-index:4}.plugin-reviews{list-style-type:none;margin:0;padding:0}.plugin-reviews .plugin-review{border-bottom:1px solid var(--wp--preset--color--light-grey-1);margin:2rem 0 1rem;padding-bottom:1rem}.plugin-reviews .plugin-review a{text-decoration:none}.plugin-reviews .plugin-review:first-child{margin-top:0}.plugin-reviews .plugin-review .header-top{display:flex}.plugin-reviews .plugin-review .header-top .wporg-ratings{flex-shrink:0}.plugin-reviews .plugin-review .header-bottom{display:flex;margin-top:4px}.plugin-reviews .review-avatar{display:none}.plugin-reviews .review,.plugin-reviews .review-author,.plugin-reviews .wporg-ratings{display:inline-block;vertical-align:top}.plugin-reviews .review-header{margin:0 0 .5rem}.plugin-reviews .review-title{font-size:var(--wp--preset--font-size--normal);font-weight:500;margin:2px 12px 0 0!important;text-transform:inherit}.plugin-reviews .review-author,.plugin-reviews .review-date,.plugin-reviews .review-replies{font-size:var(--wp--preset--font-size--extra-small);line-height:1.25}.plugin-reviews .review-date,.plugin-reviews .review-replies{color:var(--wp--preset--color--charcoal-4);font-size:var(--wp--preset--font-size--extra-small);margin-right:12px}.plugin-reviews .review-replies:before{content:"•";margin-left:12px}.plugin-reviews .review-content{margin:1em 0}@media screen and (min-width:737px){.plugin-reviews .review-avatar{display:inline-block;vertical-align:top}.plugin-reviews .review-avatar .avatar{margin-left:1rem}.plugin-reviews .review{width:calc(100% - 60px - 1rem)}.plugin-reviews .review-header{margin:0}.plugin-reviews .review-author,.plugin-reviews .review-date,.plugin-reviews .review-replies{line-height:1}}.plugin-reviews .reviews-link{display:inline-block;font-size:var(--wp--preset--font-size--small);text-decoration:none}.plugin-reviews .reviews-link:after{content:"\f341";float:left;font-family:dashicons;padding-right:5px;position:relative;top:1px;vertical-align:text-top}.plugin-screenshots{list-style-type:none;margin:0;padding:0}.plugin-screenshots .image-gallery-content{display:table;width:100%}.plugin-screenshots .image-gallery-slides{display:table-cell;max-height:600px}.plugin-screenshots .image-gallery-image img{max-height:550px;max-width:100%}.plugin-screenshots .image-gallery-thumbnail{vertical-align:top}.plugin-screenshots .image-gallery-thumbnail img{max-height:100px}.plugin-screenshots .image-gallery-thumbnails{overflow:hidden}.download-history-stats td{text-align:left}.previous-versions{max-width:60%}@media screen and (min-width:737px){.previous-versions{height:32px;vertical-align:middle}}hr{margin:2.5rem auto}.section h1:nth-child(2),.section h2:nth-child(2),.section h3:nth-child(2),.section h4:nth-child(2),.section h5:nth-child(2),.section h6:nth-child(2){margin-top:0}.section-heading{font-family:var(--wp--preset--font-family--inter)!important;font-size:var(--wp--preset--font-size--heading-5)!important;font-style:normal;font-weight:600;line-height:var(--wp--custom--heading--level-5--typography--line-height)}.section-intro{color:var(--wp--preset--color--charcoal-4);font-size:var(--wp--preset--font-size--small);margin-bottom:var(--wp--preset--spacing--20);margin-top:var(--wp--preset--spacing--10)}.type-plugin .plugin-notice{margin-top:0}.type-plugin .plugin-header{border-bottom:0;padding-top:var(--wp--preset--spacing--40)}.type-plugin .plugin-header:after,.type-plugin .plugin-header:before{content:"";display:table;table-layout:fixed}.type-plugin .plugin-header:after{clear:both}.type-plugin .plugin-header .entry-heading-container{display:flex;flex-direction:column;justify-content:space-between}@media screen and (max-width:599px){.type-plugin .plugin-header .entry-heading-container{--wp--custom--button--spacing--padding--top:12px;--wp--custom--button--spacing--padding--bottom:12px;--wp--custom--button--spacing--padding--left:16px;--wp--custom--button--spacing--padding--right:16px}}@media screen and (min-width:700px){.type-plugin .plugin-header .entry-heading-container{flex-direction:row}}.type-plugin .plugin-header .entry-heading-container>:first-child{align-items:center;display:flex;flex:1}.type-plugin .plugin-header .plugin-actions{align-items:center;display:flex;gap:16px;margin-top:var(--wp--style--block-gap)}@media screen and (min-width:700px){.type-plugin .plugin-header .plugin-actions{margin-top:0;margin-inline-start:1rem}}.type-plugin .plugin-header .plugin-actions>.button,.type-plugin .plugin-header .plugin-actions>div{display:inline-block;text-align:center}@media screen and (max-width:34em){.type-plugin .plugin-header .plugin-actions>.button.download-button{display:none}}.type-plugin .plugin-header .plugin-title{clear:none;font-size:var(--wp--preset--font-size--heading-3);font-weight:400;line-height:var(--wp--custom--heading--level-3--typography--line-height);margin:0}.type-plugin .plugin-header .plugin-title a{color:inherit;text-decoration:none}.type-plugin .plugin-header .plugin-title a:hover{text-decoration:underline}.type-plugin .plugin-header .byline{color:var(--wp--preset--color--charcoal-4);display:block;margin-top:4px}.type-plugin .plugin-banner+.plugin-header{padding-top:0}.type-plugin .plugin-banner+.plugin-header>.notice:first-of-type{margin-top:0}.type-plugin .tabs{border-bottom:1px solid var(--wp--preset--color--light-grey-1);list-style:none;margin:0}.type-plugin .tabs li{border:1px solid #0000;display:inline-block;font-size:.9rem;margin-bottom:-1px;transition:background .2s ease}.type-plugin .tabs li a{background:#fff;border:0;color:var(--wp--preset--color--charcoal-1);display:block;font-size:var(--wp--preset--font-size--normal);padding:.64rem 1.25rem;text-decoration:none}.type-plugin .tabs li a.active,.type-plugin .tabs li a:hover{background:var(--wp--preset--color--light-grey-2)!important}.type-plugin .tabs li.active,.type-plugin .tabs li:hover{border:1px solid var(--wp--preset--color--light-grey-1)}@media screen and (max-width:38em){.type-plugin .tabs{border-top:1px solid var(--wp--preset--color--light-grey-1)}.type-plugin .tabs li{display:block;margin-bottom:1px}.type-plugin .tabs li,.type-plugin .tabs li.active,.type-plugin .tabs li:hover{border:none;border-bottom:1px solid var(--wp--preset--color--light-grey-1)}}@media screen and (min-width:737px){.type-plugin .entry-content{float:right;padding:0;width:65%}}.type-plugin .entry-content>div,.type-plugin .entry-content>div~button{border:0;display:none}.type-plugin .entry-content ol>li>p,.type-plugin .entry-content ul>li>p{margin:0}.type-plugin .entry-content #admin{display:block!important}.type-plugin .plugin-blocks-list{list-style:none;margin-right:0;padding-right:0}.type-plugin .plugin-blocks-list .plugin-blocks-list-item{display:grid;grid-template-columns:auto 1fr;margin-bottom:var(--wp--style--block-gap)}.type-plugin .plugin-blocks-list .block-icon{border:1px solid var(--wp--preset--color--light-grey-1);border-radius:2px;display:inline-block;height:3.5rem;line-height:16px;margin-left:var(--wp--style--block-gap);padding:var(--wp--style--block-gap);width:3.5rem}.type-plugin .plugin-blocks-list .block-icon.dashicons{color:inherit}.type-plugin .plugin-blocks-list .block-icon.dashicons:before{margin-right:-3px}.type-plugin .plugin-blocks-list .block-icon svg{height:16px;width:16px;fill:currentColor;margin-right:-1px}.type-plugin .plugin-blocks-list .block-title{align-self:center;font-weight:700}.type-plugin .plugin-blocks-list .has-description .block-icon{grid-row:1/span 2}.type-plugin .plugin-blocks-list .has-description .block-title{margin-bottom:.4em}.type-plugin span#description,.type-plugin span#developers,.type-plugin span#installation,.type-plugin span#releases,.type-plugin span#reviews{position:fixed}.type-plugin span#advanced.displayed~#section-links .tabs li#tablink-advanced,.type-plugin span#developers:target~#section-links .tabs li#tablink-developers,.type-plugin span#installation:target~#section-links .tabs li#tablink-installation,.type-plugin span#releases:target~#section-links .tabs li#tablink-releases,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~span#advanced:not(.displayed)~#section-links .tabs li#tablink-description,.type-plugin span#reviews:target~#section-links .tabs li#tablink-reviews{background:#fff;border:1px solid var(--wp--preset--color--light-grey-1);border-bottom:0;padding-bottom:1px}@media screen and (max-width:38em){.type-plugin span#advanced.displayed~#section-links .tabs li#tablink-advanced.active,.type-plugin span#advanced.displayed~#section-links .tabs li#tablink-advanced:hover,.type-plugin span#developers:target~#section-links .tabs li#tablink-developers.active,.type-plugin span#developers:target~#section-links .tabs li#tablink-developers:hover,.type-plugin span#installation:target~#section-links .tabs li#tablink-installation.active,.type-plugin span#installation:target~#section-links .tabs li#tablink-installation:hover,.type-plugin span#releases:target~#section-links .tabs li#tablink-releases.active,.type-plugin span#releases:target~#section-links .tabs li#tablink-releases:hover,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~span#advanced:not(.displayed)~#section-links .tabs li#tablink-description.active,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~span#advanced:not(.displayed)~#section-links .tabs li#tablink-description:hover,.type-plugin span#reviews:target~#section-links .tabs li#tablink-reviews.active,.type-plugin span#reviews:target~#section-links .tabs li#tablink-reviews:hover{padding-bottom:1px!important}}.type-plugin span#section-links{display:flex;flex-flow:row wrap;margin-top:var(--wp--preset--spacing--30)}.type-plugin span#section-links .tabs{flex:1 1 auto;padding-right:0}@media screen and (max-width:38em){.type-plugin span#section-links .tabs{border:1px solid var(--wp--preset--color--light-grey-1)!important}.type-plugin span#section-links .tabs li{border:none!important}.type-plugin span#section-links{display:block}}.type-plugin #link-support{align-self:flex-end;border-bottom:1px solid var(--wp--preset--color--light-grey-1);flex:0 0 auto;font-size:.9rem}.type-plugin #link-support a{display:inline-block;font-size:var(--wp--preset--font-size--normal);padding:.64rem 1.25rem .64rem 0}@media screen and (max-width:38em){.type-plugin #link-support{border-bottom:0;display:block;width:100%}.type-plugin #link-support a{padding-left:1.25rem}}.type-plugin span#developers:target~.entry-content #tab-changelog,.type-plugin span#developers:target~.entry-content #tab-developers,.type-plugin span#developers:target~.entry-content #tab-developers .plugin-development,.type-plugin span#developers:target~.entry-content #tab-developers~button,.type-plugin span#installation:target~.entry-content #tab-installation,.type-plugin span#releases:target~.entry-content #tab-releases,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~.entry-content #blocks,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~.entry-content #faq,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~.entry-content #screenshots,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~.entry-content #tab-description,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~.entry-content #tab-developers,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~.entry-content #tab-developers~button,.type-plugin span#reviews:target~.entry-content #tab-reviews{display:block}.type-plugin span#developers:target~.entry-content #tab-developers .plugin-contributors,.type-plugin span#installation:target~.entry-meta .plugin-contributors,.type-plugin span#releases:target~.entry-meta,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~.entry-content #tab-developers .plugin-development,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~.entry-meta .plugin-contributors,.type-plugin span#reviews:target~.entry-meta .plugin-contributors,.type-plugin span#reviews:target~.entry-meta .plugin-donate,.type-plugin span#reviews:target~.entry-meta .plugin-meta,.type-plugin span#reviews:target~.entry-meta .plugin-support{display:none}.type-plugin span#releases:target~.entry-content{width:100%}@media screen and (min-width:737px){.type-plugin .entry-content,.type-plugin .entry-meta{padding-right:0;padding-left:0}.type-plugin .entry-meta{float:left;width:30%}}.type-plugin .plugin-danger-zone h4{margin-top:var(--wp--preset--spacing--60)}.plugin-releases-listing{border-collapse:collapse;width:100%}.plugin-releases-listing tbody td:nth-child(4) div{font-size:14px}.plugin-releases-listing-actions{display:flex;flex-direction:column;gap:8px}@media screen and (min-width:34em){.plugin-releases-listing-actions{flex-direction:row}}.plugin-adopt-me{background:#e6f4fa;margin-top:36px;padding:12px}.plugin-adopt-me .widget-title{margin-top:0}.plugin-adopt-me p{margin-bottom:0}.widget.plugin-categorization{margin-top:var(--wp--style--block-gap)}.widget.plugin-categorization .widget-head h2{font-size:var(--wp--preset--font-size--heading-4);margin-bottom:.2rem;margin-top:0}.widget.plugin-categorization .widget-head a{font-size:var(--wp--preset--font-size--small)}.widget.plugin-categorization .widget-head a[href=""]{display:none}.widget.plugin-categorization p{font-size:var(--wp--preset--font-size--small);margin-top:.5rem}.widget.plugin-categorization~.plugin-meta li:first-child{border-top:1px solid var(--wp--preset--color--light-grey-1)}.committer-list,.support-rep-list{list-style:none;margin:0;padding:0}.committer-list li,.support-rep-list li{padding-bottom:.5rem}.committer-list li .remove,.support-rep-list li .remove{color:red;visibility:hidden}.committer-list li:hover .remove,.support-rep-list li:hover .remove{visibility:visible}.committer-list .avatar,.support-rep-list .avatar{float:right;margin-left:10px}.committer-list .spinner,.support-rep-list .spinner{position:relative}.committer-list .spinner:after,.support-rep-list .spinner:after{background:url(/wp-admin/images/spinner.gif) no-repeat 50%;background-size:20px 20px;content:"";display:block;height:20px;margin:-10px 0 0 -10px;position:absolute;left:-50%;top:50%;transform:translateZ(0);width:20px}@media (min-resolution:120dpi),print{.committer-list .spinner:after,.support-rep-list .spinner:after{background-image:url(/wp-admin/images/spinner-2x.gif)}}.committer-list .new,.support-rep-list .new{margin-top:var(--wp--style--block-gap)}.plugin-contributors.read-more{border-bottom:1px solid var(--wp--preset--color--light-grey-1);max-height:200px;overflow:hidden;padding-bottom:1px}.plugin-contributors.read-more.toggled{max-height:none}.no-js .plugin-contributors.read-more{max-height:none;overflow:auto}.contributors-list{list-style-type:none;margin:0;padding:0}.contributors-list li{align-items:center;display:flex;margin-bottom:1rem}.contributors-list .avatar{float:right;margin-left:10px}.plugin-meta{font-size:var(--wp--preset--font-size--small);margin-top:var(--wp--style--block-gap)}.plugin-meta ul{list-style-type:none;margin:0;padding:0}.plugin-meta li{border-top:1px solid var(--wp--preset--color--light-grey-1);display:inline-block;padding:.5rem 0;position:relative;width:100%}.plugin-meta li strong{float:left;font-weight:500}.plugin-meta li .plugin-admin{font-size:var(--wp--preset--font-size--normal);font-weight:400}.plugin-meta li:first-child{border-top:0}.plugin-meta .languages,.plugin-meta .tags{float:left;text-align:left}.plugin-meta .tags{width:60%}.plugin-meta .languages button{font-size:var(--wp--preset--font-size--small);outline:revert}.plugin-meta .languages .popover{margin-top:8px}.plugin-meta .languages .popover-trigger{color:var(--wp--custom--link--color--text);text-decoration:underline}.plugin-meta .languages .popover-trigger:hover{text-decoration:underline}.plugin-meta [rel=tag]{background:var(--wp--preset--color--blueberry-4);border-radius:2px;color:var(--wp--preset--color--charcoal-1);display:inline-block;font-size:var(--wp--preset--font-size--extra-small);margin:2px;max-width:95%;overflow:hidden;padding:3px 6px;position:relative;text-decoration:none;text-overflow:ellipsis;white-space:nowrap;width:auto}.plugin-meta [rel=tag]:hover{text-decoration:underline}.popover{background-color:#fff;border:1px solid var(--wp--preset--color--light-grey-1);border-radius:2px;box-shadow:0 2px 10px #0000001a;display:none;right:0;margin-top:10px;max-width:300px;padding:1em 1em 2em;position:absolute;width:100%;z-index:100}.popover.is-top-right{right:auto;left:0}.popover.is-visible{display:block}.popover .popover-close{bottom:.5em;color:var(--wp--custom--link--color--text);font-size:small;position:absolute;left:.6em}.popover .popover-close:active,.popover .popover-close:focus,.popover .popover-close:hover{text-decoration:underline}.popover .popover-arrow{border:10px solid #0000;border-bottom:10px solid #ccc;border-top:none;height:0;position:absolute;left:20px;top:-10px;width:0;z-index:-1}.popover .popover-arrow:after{border:10px solid #0000;border-bottom:10px solid #fff;border-top:none;content:"";right:-10px;position:absolute;top:2px}.popover .popover-inner{text-align:right}.popover .popover-inner p:first-child{margin-top:0}.popover .popover-inner p:last-child{margin-bottom:0}.plugin-support .counter-container{margin-bottom:1rem;position:relative}.plugin-support .counter-back,.plugin-support .counter-bar{display:inline-block;height:30px;vertical-align:middle}.plugin-support .counter-back{background-color:var(--wp--preset--color--light-grey-2);width:100%}.plugin-support .counter-bar{background-color:var(--wp--preset--color--acid-green-2);display:block}.plugin-support .counter-count{font-size:var(--wp--preset--font-size--extra-small);right:8px;position:absolute;top:8px;width:100%;width:calc(100% - 8px)}@media screen and (min-width:737px){.plugin-support .counter-count{top:5px}}.home .widget,.widget-area.home .widget{display:inline-block;font-size:var(--wp--preset--font-size--small);margin:0;margin:var(--wp--style--block-gap);vertical-align:top;width:auto}@media screen and (min-width:737px){.home .widget,.widget-area.home .widget{margin:0;width:30%}.home .widget:first-child,.widget-area.home .widget:first-child{margin-left:5%}.home .widget:last-child,.widget-area.home .widget:last-child{margin-right:5%}}.home .widget select,.widget-area.home .widget select{max-width:100%}.entry-meta .widget-title{font-size:var(--wp--preset--font-size--heading-4)}body.single.single-plugin .entry-meta{font-size:var(--wp--preset--font-size--normal)}.widget-area{margin:0 auto;padding:var(--wp--preset--spacing--40) 0}.widget-area .widget-title{font-size:var(--wp--preset--font-size--heading-1);font-weight:var(--wp--custom--heading--typography--font-weight);margin-top:var(--wp--preset--spacing--50)}.widget-area .textwidget{text-wrap:pretty} \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/css/style.css b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/css/style.css index 4fe01723b1..aa1a3e38af 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/css/style.css +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/css/style.css @@ -1,5 +1 @@ -<<<<<<< HEAD -@charset "UTF-8";.avatar{border-radius:50%;vertical-align:middle}.wp-block-wporg-language-suggest>p{margin:0}.block-validator>details summary{padding:var(--wp--style--block-gap) 0}.block-validator .block-validator__plugin-form label{display:block;margin-bottom:.8em}.block-validator .block-validator__plugin-input-container{display:flex;max-width:34rem}.block-validator .block-validator__plugin-input{flex:1}.block-validator .block-validator__plugin-submit{flex:0;margin-left:4px}@media (max-width:36rem){.block-validator .block-validator__plugin-submit{width:100%}.block-validator .block-validator__plugin-input-container{display:block}.block-validator .block-validator__plugin-input{width:100%}.block-validator .block-validator__plugin-submit{margin-left:0;margin-top:var(--wp--style--block-gap)}}.block-validator .notice details,.block-validator .notice p{font-size:var(--wp--preset--font-size--normal);margin:var(--wp--style--block-gap) 0}.block-validator .notice details p{font-size:var(--wp--preset--font-size--small);margin-left:1rem}.block-validator .notice summary{display:list-item}.block-validator figure{border:1px solid #aaa;display:inline-block;padding:1em}.block-validator .test-screenshot{text-align:center}.block-validator .plugin-upload-form-controls{align-items:center;display:flex;gap:4px}.block-validator .plugin-upload-form-controls>label{border:1px solid var(--wp--custom--form--border--color);border-radius:var(--wp--custom--form--border--radius);cursor:pointer;min-width:200px;padding:4px 8px}.notice{background:#fff;border-left:4px solid #fff;box-shadow:0 1px 1px 0 #0000001a;font-size:var(--wp--preset--font-size--small);margin:var(--wp--style--block-gap) 0;padding:1px 12px}.notice p,.notice ul{margin:.5em 0;padding:2px}.notice pre{white-space:pre-wrap}.notice ul{list-style:none;margin:.5em}.notice.notice-alt{box-shadow:none}.notice.notice-large{padding:10px 20px}.notice.notice-success{border-left-color:#46b450}.notice.notice-success.notice-alt{background-color:#ecf7ed}.notice.notice-warning{border-left-color:#ffb900}.notice.notice-warning.notice-alt{background-color:#fff8e5}.notice.notice-error{border-left-color:#dc3232}.notice.notice-error.notice-alt{background-color:#fbeaea}.notice.notice-info{border-left-color:#00a0d2}.notice.notice-info.notice-alt{background-color:#e5f5fa}.notice.hidden{display:none}.plugin-upload-form.hidden{display:none}.plugin-upload-form fieldset{border:none;margin:0;padding:0}.plugin-upload-form legend{margin:1rem 0}.plugin-upload-form .category-checklist{list-style-type:none;margin:0 0 2rem}.plugin-upload-form .category-checklist li{float:left;padding:.5rem 0;width:50%}@media screen and (min-width:48em){.plugin-upload-form .category-checklist li{padding:0}.plugin-upload-form .category-checklist label{font-size:var(--wp--preset--font-size--small)}.plugin-upload-form label.button{line-height:1.8}}.plugin-upload-form .plugin-file{height:.1px;opacity:0;overflow:hidden;position:absolute;width:.1px;z-index:-1}.plugin-queue-message code{font-size:1em}.plugin-queue-message dialog.slug-change input[type=text]{font-family:monospace;font-size:1.2em;width:20em}:where(main) a:where(:not(.wp-element-button,.wp-block-wporg-link-wrapper)):focus,:where(main) button:where(:not([class*=wp-block-button])):focus{border-radius:2px;box-shadow:0 0 0 1.5px currentColor;outline:none}.wporg-filter-bar{--wporg--filter-bar--gap:20px;--wporg--filter-bar--color:#40464d;--wporg--filter-bar--active--background-color:var(--wp--custom--button--color--background);--wporg--filter-bar--focus--border-color:var(--wp--custom--button--focus--border--color);margin:var(--wp--style--block-gap) 0}.wporg-filter-bar .wporg-query-filter__toggle.is-active,.wporg-filter-bar .wporg-query-filter__toggle:active,.wporg-filter-bar .wporg-query-filter__toggle:focus{background-color:var(--wporg--filter-bar--active--background-color);color:var(--wp--custom--button--color--text)}.wporg-filter-bar .wporg-filter-bar__navigation{flex-grow:1;margin-bottom:var(--wporg--filter-bar--gap)}.wporg-filter-bar .wporg-filter-bar__navigation ul{display:inline-block;font-size:13px;line-height:1.538;list-style:none;margin:0;padding-left:0}.wporg-filter-bar .wporg-filter-bar__navigation ul li{display:inline-block}.wporg-filter-bar .wporg-filter-bar__navigation ul li+li{margin-left:8px}.wporg-filter-bar .wporg-filter-bar__navigation ul a{border-radius:2px;color:var(--wporg--filter-bar--color);display:block;padding:8px 12px;text-decoration:none}.wporg-filter-bar .wporg-filter-bar__navigation ul a:focus,.wporg-filter-bar .wporg-filter-bar__navigation ul a:hover{text-decoration:underline}.wporg-filter-bar .wporg-filter-bar__navigation ul a:focus-visible{box-shadow:none;outline:1.5px solid var(--wporg--filter-bar--focus--border-color);outline-offset:-.5px}.wporg-filter-bar .wporg-filter-bar__navigation ul a.is-active{background-color:var(--wporg--filter-bar--active--background-color);color:#fff}.wporg-filter-bar .wporg-filter-bar__navigation ul a.is-active:focus,.wporg-filter-bar .wporg-filter-bar__navigation ul a.is-active:hover{color:#fff}.wporg-filter-bar .wporg-filter-bar__navigation ul a.is-active:focus-visible{box-shadow:inset 0 0 0 1.5px #fff;outline:1.5px solid var(--wporg--filter-bar--focus--border-color);outline-offset:-.5px}@media screen and (min-width:737px){.wporg-filter-bar{align-items:center;display:flex;flex-wrap:wrap;gap:var(--wporg--filter-bar--gap);justify-content:space-between;width:100%}.wporg-filter-bar .wporg-filter-bar__navigation{margin-bottom:0}}.wp-block-search__inside-wrapper{background:var(--wp--preset--color--light-grey-2);border:none}.button-link{background:none;border:0;border-radius:0;box-shadow:none;cursor:pointer;margin:0;outline:none;padding:0}.button{background-color:var(--wp--custom--button--color--background);border:0;border-radius:var(--wp--custom--button--border--radius);color:var(--wp--custom--button--color--text);cursor:pointer;opacity:1;padding:calc(var(--wp--custom--button--small--spacing--padding--top) + var(--wp--custom--button--border--width)) calc(var(--wp--custom--button--small--spacing--padding--right) + var(--wp--custom--button--border--width)) calc(var(--wp--custom--button--small--spacing--padding--bottom) + var(--wp--custom--button--border--width)) calc(var(--wp--custom--button--small--spacing--padding--left) + var(--wp--custom--button--border--width));vertical-align:middle}.button.button-large{padding:calc(var(--wp--custom--button--spacing--padding--top) + var(--wp--custom--button--border--width)) calc(var(--wp--custom--button--spacing--padding--right) + var(--wp--custom--button--border--width)) calc(var(--wp--custom--button--spacing--padding--bottom) + var(--wp--custom--button--border--width)) calc(var(--wp--custom--button--spacing--padding--left) + var(--wp--custom--button--border--width))}input+button.button,select+button.button{margin-top:-3px}.button.disabled{cursor:not-allowed;opacity:.6}.wp-block-post-content a.button{text-decoration:none}.wp-block-button__link{width:auto}pre{background-color:#f7f7f7;border:1px solid var(--wp--preset--color--light-grey-1);overflow:scroll;padding:20px}code,pre{border-radius:2px}code{background:var(--wp--preset--color--light-grey-2);display:inline-block;line-height:var(--wp--custom--body--extra-small--typography--line-height);max-width:100%;padding-inline-end:3px;padding-inline-start:3px}dialog{border:0;box-shadow:6px 6px 6px #0003;min-height:50%;min-width:30%}@media (min-width:1280px){dialog{max-width:55%}}dialog::backdrop{background:#000;opacity:.5}dialog .close{color:inherit;cursor:pointer;position:absolute;right:1em;text-decoration:none!important;top:1em}.plugin-card{display:flex;flex-direction:column;height:100%;justify-content:space-between}.plugin-card .entry{display:inline-block;vertical-align:top}.plugin-card .entry-title{display:block;display:-webkit-box;font-size:var(--wp--preset--font-size--heading-5);font-weight:500;line-height:1.3;margin-bottom:2px!important;max-height:2.6em;overflow:hidden;-webkit-line-clamp:2;-webkit-box-orient:vertical}.plugin-card .entry-title a{display:block;text-decoration:none}.plugin-card .entry-title a:focus{box-shadow:none}.plugin-card .entry-excerpt{clear:both;font-size:var(--wp--preset--font-size--small)}.plugin-card .entry-excerpt p{margin:0}.plugin-card footer{font-size:var(--wp--preset--font-size--small);margin-top:var(--wp--style--block-gap)}.plugin-card footer span{color:var(--wp--preset--color--charcoal-4);display:inline-block;line-height:var(--wp--preset--font-size--normal);overflow:hidden}.plugin-card footer span.plugin-author{width:100%}.plugin-card footer span.plugin-author span{color:var(--wp--preset--color--charcoal-1)}.plugin-card footer span.plugin-author path{fill:var(--wp--preset--color--charcoal-1)}.plugin-card footer span svg{height:24px;vertical-align:bottom;width:24px}.plugin-card footer span svg path{fill:var(--wp--preset--color--charcoal-4)}.plugin-card footer span.active-installs{min-width:48%}.plugin-cards{cursor:pointer}.plugin-cards .is-style-cards-grid li:hover{background-color:#fff!important;border:1px solid var(--wp--preset--color--charcoal-1)!important}.plugin-cards .is-style-cards-grid li:focus-within{border-color:#0000;border-radius:2px;box-shadow:0 0 0 1.5px var(--wp--custom--link--color--text)}@media screen and (max-width:737px){.plugin-cards .is-style-cards-grid{grid-template-columns:100%}}.entry-thumbnail{display:none;margin-bottom:var(--wp--style--block-gap);margin-right:var(--wp--style--block-gap);max-width:80px}.entry-thumbnail .plugin-icon{background-size:cover;border-radius:var(--wp--custom--button--border--radius);display:block;height:80px;width:80px}@media screen and (min-width:21em){.entry-thumbnail{display:inline-block;float:left;vertical-align:top}}.single .entry-thumbnail{display:none;float:left;height:96px;margin-bottom:0;max-width:96px}@media screen and (min-width:26em){.single .entry-thumbnail{display:block}}.single .entry-thumbnail .plugin-icon{background-size:contain!important;height:96px!important;width:96px!important}.plugin-rating{line-height:1;margin:0 10px 8px 0}.plugin-rating .wporg-ratings{display:inline-block;margin-right:5px}.plugin-rating .rating-count{color:var(--wp--preset--color--charcoal-4);font-size:var(--wp--preset--font-size--extra-small);vertical-align:text-bottom}.plugin-rating .rating-count a{color:inherit;cursor:hand;text-decoration:none}[class*=dashicons-star-]{color:var(--wp--preset--color--pomegrade-1)}.rtl .dashicons-star-half{transform:rotateY(180deg)}#main .plugin-section{margin:0 auto var(--wp--preset--spacing--60)}#main .plugin-section:last-of-type{margin-bottom:0}#main .plugin-section .section-header{align-items:center;column-gap:10px;display:flex;justify-content:space-between;margin-bottom:var(--wp--style--block-gap)}#main .plugin-section .section-header>h2{margin-bottom:0}#main .plugin-section .section-link{align-self:center;flex:0 0 auto;text-decoration:underline}.pagination .nav-links{margin-top:var(--wp--style--block-gap);padding-top:var(--wp--style--block-gap);text-align:center}.pagination .nav-links a{text-decoration:none}.pagination .nav-links .page-numbers{cursor:pointer;display:inline-block;min-width:2em;padding:8px;text-align:center}.pagination .nav-links .page-numbers.dots,.pagination .nav-links .page-numbers.next,.pagination .nav-links .page-numbers.prev{background:none;font-size:.9em;width:auto}.pagination .nav-links .page-numbers.dots{cursor:inherit}@media screen and (max-width:737px){.pagination .nav-links .page-numbers.next,.pagination .nav-links .page-numbers.prev{font-size:0;min-width:auto;padding:0}.pagination .nav-links .page-numbers.next:after,.pagination .nav-links .page-numbers.prev:before{display:inline-block;font-size:medium;line-height:1.5;min-width:2em;padding:8px}.pagination .nav-links .page-numbers.prev:before{content:"‹"}.pagination .nav-links .page-numbers.next:after{content:"›"}}.pagination .nav-links span.page-numbers{font-weight:700}.pagination .nav-links span.page-numbers.current{text-decoration:underline}@keyframes favme-anime{0%{font-size:var(--wp--preset--font-size--large);opacity:1;-webkit-text-stroke-color:#0000}25%{color:#fff;font-size:var(--wp--preset--font-size--small);opacity:.6;-webkit-text-stroke-width:1px;-webkit-text-stroke-color:#dc3232}75%{color:#fff;font-size:var(--wp--preset--font-size--large);opacity:.6;-webkit-text-stroke-width:1px;-webkit-text-stroke-color:#dc3232}to{font-size:var(--wp--preset--font-size--normal);opacity:1;-webkit-text-stroke-color:#0000}}.plugin-favorite{height:calc(var(--wp--custom--button--spacing--padding--top)*2 + var(--wp--preset--font-size--normal)*2);text-align:center;vertical-align:top;width:36px}.plugin-favorite .plugin-favorite-heart{align-items:center;background:none;border:0;border-radius:0;box-shadow:none;color:#cbcdce;cursor:pointer;display:flex;font-size:var(--wp--preset--font-size--large);height:100%;justify-content:center;line-height:1;margin:0;outline:none;padding:0;text-decoration:none}.plugin-favorite .plugin-favorite-heart.favorited{color:#dc3232}.plugin-favorite .plugin-favorite-heart:focus,.plugin-favorite .plugin-favorite-heart:hover{color:var(----wp--preset--color--charcoal-2);text-decoration:none}.plugin-favorite .plugin-favorite-heart:after{content:"\f487";font-family:dashicons;vertical-align:top}.plugin-banner img{aspect-ratio:3.089;border-radius:var(--wp--custom--button--border--radius);display:block;margin:0 auto var(--wp--preset--spacing--30);width:100%}@keyframes hideAnimation{to{visibility:hidden}}.categorization .help{color:var(--wp--preset--color--charcoal-4);display:inline-block;font-size:.8rem;margin-top:0}.categorization label{display:block;font-weight:700}.categorization input{width:100%}.categorization .success-msg{background:#eff7ed;border:solid #64b450;border-width:0 0 0 5px;font-size:.8rem;margin-left:1rem;opacity:0;overflow:auto;padding:.1rem .6rem .2rem;position:relative;transition:visibility 0s,opacity .5s linear;-webkit-user-select:none;user-select:none;visibility:hidden}.categorization .success-msg.saved{animation:hideAnimation 0s ease-in 5s;animation-fill-mode:forwards;opacity:1;visibility:visible}.plugin-changelog code{font-size:var(--wp--preset--font-size--small)}.plugin-developers .contributors-list li{align-items:center;display:flex;padding-bottom:var(--wp--style--block-gap)}@media screen and (min-width:500px){.plugin-developers .contributors-list{display:flex;flex-wrap:wrap}.plugin-developers .contributors-list li{padding-bottom:unset;width:50%}}.plugin-faq dl{border-bottom:1px solid var(--wp--preset--color--light-grey-1)}.plugin-faq dt{border-top:1px solid var(--wp--preset--color--light-grey-1);cursor:pointer;padding:1rem 0}.plugin-faq dt:before{content:"\f347";float:right;font-family:dashicons;margin:0 1rem}.plugin-faq dt.open:before{content:"\f343"}.plugin-faq dt .button-link{display:inherit;text-align:inherit}.plugin-faq dt .button-link.no-focus{box-shadow:none;outline:none}.plugin-faq dt h3{color:var(--wp--custom--link--color--text);display:inline;font-size:var(--wp--preset--font-size--normal);font-weight:400;margin-bottom:0;margin-top:0!important;text-decoration:underline}.plugin-faq dt h3 button{all:inherit;max-width:calc(100% - 60px)}.plugin-faq dt h3 button:focus,.plugin-faq dt h3 button:hover{text-decoration:underline}.plugin-faq dd{display:none;margin:0 0 1rem}.no-js .plugin-faq dd{display:block}.plugin-faq dd p{margin:0}.plugin-faq dd p+p{margin-top:1rem}.image-gallery{-webkit-user-select:none;user-select:none}.image-gallery-content{position:relative}.image-gallery-content .image-gallery-left-nav,.image-gallery-content .image-gallery-right-nav{border-color:var(--wp--preset--color--light-grey-1);display:none;font-size:48px;height:100%;position:absolute;top:0;transition:background .1s ease,border .1s ease;z-index:4}@media (max-width:768px){.image-gallery-content .image-gallery-left-nav,.image-gallery-content .image-gallery-right-nav{font-size:3.4em}}@media (min-width:768px){.image-gallery-content .image-gallery-left-nav:hover,.image-gallery-content .image-gallery-right-nav:hover{background:#fff;border:1px solid var(--wp--preset--color--light-grey-1);opacity:.8}}.image-gallery-content .image-gallery-left-nav:before,.image-gallery-content .image-gallery-right-nav:before{font-family:dashicons;position:relative}.image-gallery-content .image-gallery-left-nav{left:0}.image-gallery-content .image-gallery-left-nav:before{content:"\f341"}.image-gallery-content .image-gallery-left-nav:hover{margin-left:-1px}.image-gallery-content .image-gallery-right-nav{right:0}.image-gallery-content .image-gallery-right-nav:before{content:"\f345"}.image-gallery-content .image-gallery-right-nav:hover{margin-right:-1px}.image-gallery-content:hover .image-gallery-left-nav,.image-gallery-content:hover .image-gallery-right-nav{display:block}.image-gallery-slides{border:1px solid #eee;line-height:0;overflow:hidden;position:relative;white-space:nowrap}.image-gallery-slide{left:0;position:absolute;top:0;width:100%}.image-gallery-slide.center{position:relative}.image-gallery-slide .image-gallery-image{margin:0}.image-gallery-slide img{display:block;margin:0 auto}.image-gallery-slide .image-gallery-description{background:var(--wp--preset--color--light-grey-2);color:var(--wp--preset--color--charcoal-1);font-size:var(--wp--preset--font-size--small);line-height:1.5;padding:10px 20px;white-space:normal}@media (max-width:768px){.image-gallery-slide .image-gallery-description{padding:8px 15px}}.image-gallery-thumbnails{background:#fff;margin-top:5px}.image-gallery-thumbnails .image-gallery-thumbnails-container{cursor:pointer;text-align:center;white-space:nowrap}.image-gallery-thumbnail{border:1px solid #eee;display:table-cell;margin-right:5px;max-height:100px;overflow:hidden}.image-gallery-thumbnail .image-gallery-image{margin:0}.image-gallery-thumbnail img{vertical-align:middle;width:100px}@media (max-width:768px){.image-gallery-thumbnail img{width:75px}}.image-gallery-thumbnail:hover{box-shadow:0 1px 8px #0000004d}.image-gallery-thumbnail.active{border:1px solid #337ab7}.image-gallery-thumbnail-label{color:#222;font-size:1em}@media (max-width:768px){.image-gallery-thumbnail-label{font-size:.8em}}.image-gallery-index{background:#0006;bottom:0;color:#fff;line-height:1;padding:10px 20px;position:absolute;right:0;z-index:4}.plugin-reviews{list-style-type:none;margin:0;padding:0}.plugin-reviews .plugin-review{border-bottom:1px solid var(--wp--preset--color--light-grey-1);margin:2rem 0 1rem;padding-bottom:1rem}.plugin-reviews .plugin-review a{text-decoration:none}.plugin-reviews .plugin-review:first-child{margin-top:0}.plugin-reviews .plugin-review .header-top{display:flex}.plugin-reviews .plugin-review .header-top .wporg-ratings{flex-shrink:0}.plugin-reviews .plugin-review .header-bottom{display:flex;margin-top:4px}.plugin-reviews .review-avatar{display:none}.plugin-reviews .review,.plugin-reviews .review-author,.plugin-reviews .wporg-ratings{display:inline-block;vertical-align:top}.plugin-reviews .review-header{margin:0 0 .5rem}.plugin-reviews .review-title{font-size:var(--wp--preset--font-size--normal);font-weight:500;margin:2px 0 0 12px!important;text-transform:inherit}.plugin-reviews .review-author,.plugin-reviews .review-date,.plugin-reviews .review-replies{font-size:var(--wp--preset--font-size--extra-small);line-height:1.25}.plugin-reviews .review-date,.plugin-reviews .review-replies{color:var(--wp--preset--color--charcoal-4);font-size:var(--wp--preset--font-size--extra-small);margin-left:12px}.plugin-reviews .review-replies:before{content:"•";margin-right:12px}.plugin-reviews .review-content{margin:1em 0}@media screen and (min-width:737px){.plugin-reviews .review-avatar{display:inline-block;vertical-align:top}.plugin-reviews .review-avatar .avatar{margin-right:1rem}.plugin-reviews .review{width:calc(100% - 60px - 1rem)}.plugin-reviews .review-header{margin:0}.plugin-reviews .review-author,.plugin-reviews .review-date,.plugin-reviews .review-replies{line-height:1}}.plugin-reviews .reviews-link{display:inline-block;font-size:var(--wp--preset--font-size--small);text-decoration:none}.plugin-reviews .reviews-link:after{content:"\f345";float:right;font-family:dashicons;padding-left:5px;position:relative;top:1px;vertical-align:text-top}.plugin-screenshots{list-style-type:none;margin:0;padding:0}.plugin-screenshots .image-gallery-content{display:table;width:100%}.plugin-screenshots .image-gallery-slides{display:table-cell;max-height:600px}.plugin-screenshots .image-gallery-image img{max-height:550px;max-width:100%}.plugin-screenshots .image-gallery-thumbnail{vertical-align:top}.plugin-screenshots .image-gallery-thumbnail img{max-height:100px}.plugin-screenshots .image-gallery-thumbnails{overflow:hidden}.download-history-stats td{text-align:right}.previous-versions{max-width:60%}@media screen and (min-width:737px){.previous-versions{height:32px;vertical-align:middle}}hr{margin:2.5rem auto}.section h1:nth-child(2),.section h2:nth-child(2),.section h3:nth-child(2),.section h4:nth-child(2),.section h5:nth-child(2),.section h6:nth-child(2){margin-top:0}.section-heading{font-family:var(--wp--preset--font-family--inter)!important;font-size:var(--wp--preset--font-size--heading-5)!important;font-style:normal;font-weight:600;line-height:var(--wp--custom--heading--level-5--typography--line-height)}.section-intro{color:var(--wp--preset--color--charcoal-4);font-size:var(--wp--preset--font-size--small);margin-bottom:var(--wp--preset--spacing--20);margin-top:var(--wp--preset--spacing--10)}.type-plugin .plugin-notice{margin-top:0}.type-plugin .plugin-header{border-bottom:0;padding-top:var(--wp--preset--spacing--40)}.type-plugin .plugin-header:after,.type-plugin .plugin-header:before{content:"";display:table;table-layout:fixed}.type-plugin .plugin-header:after{clear:both}.type-plugin .plugin-header .entry-heading-container{display:flex;flex-direction:column;justify-content:space-between}@media screen and (max-width:599px){.type-plugin .plugin-header .entry-heading-container{--wp--custom--button--spacing--padding--top:12px;--wp--custom--button--spacing--padding--bottom:12px;--wp--custom--button--spacing--padding--left:16px;--wp--custom--button--spacing--padding--right:16px}}@media screen and (min-width:700px){.type-plugin .plugin-header .entry-heading-container{flex-direction:row}}.type-plugin .plugin-header .entry-heading-container>:first-child{align-items:center;display:flex;flex:1}.type-plugin .plugin-header .plugin-actions{align-items:center;display:flex;gap:16px;margin-top:var(--wp--style--block-gap)}@media screen and (min-width:700px){.type-plugin .plugin-header .plugin-actions{margin-top:0;margin-inline-start:1rem}}.type-plugin .plugin-header .plugin-actions>.button,.type-plugin .plugin-header .plugin-actions>div{display:inline-block;text-align:center}@media screen and (max-width:34em){.type-plugin .plugin-header .plugin-actions>.button.download-button{display:none}}.type-plugin .plugin-header .plugin-title{clear:none;font-size:var(--wp--preset--font-size--heading-3);font-weight:400;line-height:var(--wp--custom--heading--level-3--typography--line-height);margin:0}.type-plugin .plugin-header .plugin-title a{color:inherit;text-decoration:none}.type-plugin .plugin-header .plugin-title a:hover{text-decoration:underline}.type-plugin .plugin-header .byline{color:var(--wp--preset--color--charcoal-4);display:block;margin-top:4px}.type-plugin .plugin-banner+.plugin-header{padding-top:0}.type-plugin .plugin-banner+.plugin-header>.notice:first-of-type{margin-top:0}.type-plugin .tabs{border-bottom:1px solid var(--wp--preset--color--light-grey-1);list-style:none;margin:0}.type-plugin .tabs li{border:1px solid #0000;display:inline-block;font-size:.9rem;margin-bottom:-1px;transition:background .2s ease}.type-plugin .tabs li a{background:#fff;border:0;color:var(--wp--preset--color--charcoal-1);display:block;font-size:var(--wp--preset--font-size--normal);padding:.64rem 1.25rem;text-decoration:none}.type-plugin .tabs li a.active,.type-plugin .tabs li a:hover{background:var(--wp--preset--color--light-grey-2)!important}.type-plugin .tabs li.active,.type-plugin .tabs li:hover{border:1px solid var(--wp--preset--color--light-grey-1)}@media screen and (max-width:38em){.type-plugin .tabs{border-top:1px solid var(--wp--preset--color--light-grey-1)}.type-plugin .tabs li{display:block;margin-bottom:1px}.type-plugin .tabs li,.type-plugin .tabs li.active,.type-plugin .tabs li:hover{border:none;border-bottom:1px solid var(--wp--preset--color--light-grey-1)}}@media screen and (min-width:737px){.type-plugin .entry-content{float:left;padding:0;width:65%}}.type-plugin .entry-content>div,.type-plugin .entry-content>div~button{border:0;display:none}.type-plugin .entry-content ol>li>p,.type-plugin .entry-content ul>li>p{margin:0}.type-plugin .entry-content #admin{display:block!important}.type-plugin .plugin-blocks-list{list-style:none;margin-left:0;padding-left:0}.type-plugin .plugin-blocks-list .plugin-blocks-list-item{display:grid;grid-template-columns:auto 1fr;margin-bottom:var(--wp--style--block-gap)}.type-plugin .plugin-blocks-list .block-icon{border:1px solid var(--wp--preset--color--light-grey-1);border-radius:2px;display:inline-block;height:3.5rem;line-height:16px;margin-right:var(--wp--style--block-gap);padding:var(--wp--style--block-gap);width:3.5rem}.type-plugin .plugin-blocks-list .block-icon.dashicons{color:inherit}.type-plugin .plugin-blocks-list .block-icon.dashicons:before{margin-left:-3px}.type-plugin .plugin-blocks-list .block-icon svg{height:16px;width:16px;fill:currentColor;margin-left:-1px}.type-plugin .plugin-blocks-list .block-title{align-self:center;font-weight:700}.type-plugin .plugin-blocks-list .has-description .block-icon{grid-row:1/span 2}.type-plugin .plugin-blocks-list .has-description .block-title{margin-bottom:.4em}.type-plugin span#description,.type-plugin span#developers,.type-plugin span#installation,.type-plugin span#reviews{position:fixed}.type-plugin span#advanced.displayed~#section-links .tabs li#tablink-advanced,.type-plugin span#developers:target~#section-links .tabs li#tablink-developers,.type-plugin span#installation:target~#section-links .tabs li#tablink-installation,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#advanced:not(.displayed)~#section-links .tabs li#tablink-description,.type-plugin span#reviews:target~#section-links .tabs li#tablink-reviews{background:#fff;border:1px solid var(--wp--preset--color--light-grey-1);border-bottom:0;padding-bottom:1px}@media screen and (max-width:38em){.type-plugin span#advanced.displayed~#section-links .tabs li#tablink-advanced.active,.type-plugin span#advanced.displayed~#section-links .tabs li#tablink-advanced:hover,.type-plugin span#developers:target~#section-links .tabs li#tablink-developers.active,.type-plugin span#developers:target~#section-links .tabs li#tablink-developers:hover,.type-plugin span#installation:target~#section-links .tabs li#tablink-installation.active,.type-plugin span#installation:target~#section-links .tabs li#tablink-installation:hover,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#advanced:not(.displayed)~#section-links .tabs li#tablink-description.active,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#advanced:not(.displayed)~#section-links .tabs li#tablink-description:hover,.type-plugin span#reviews:target~#section-links .tabs li#tablink-reviews.active,.type-plugin span#reviews:target~#section-links .tabs li#tablink-reviews:hover{padding-bottom:1px!important}}.type-plugin span#section-links{display:flex;flex-flow:row wrap;margin-top:var(--wp--preset--spacing--30)}.type-plugin span#section-links .tabs{flex:1 1 auto;padding-left:0}@media screen and (max-width:38em){.type-plugin span#section-links .tabs{border:1px solid var(--wp--preset--color--light-grey-1)!important}.type-plugin span#section-links .tabs li{border:none!important}.type-plugin span#section-links{display:block}}.type-plugin #link-support{align-self:flex-end;border-bottom:1px solid var(--wp--preset--color--light-grey-1);flex:0 0 auto;font-size:.9rem}.type-plugin #link-support a{display:inline-block;font-size:var(--wp--preset--font-size--normal);padding:.64rem 0 .64rem 1.25rem}@media screen and (max-width:38em){.type-plugin #link-support{border-bottom:0;display:block;width:100%}.type-plugin #link-support a{padding-right:1.25rem}}.type-plugin span#developers:target~.entry-content #tab-changelog,.type-plugin span#developers:target~.entry-content #tab-developers,.type-plugin span#developers:target~.entry-content #tab-developers .plugin-development,.type-plugin span#developers:target~.entry-content #tab-developers~button,.type-plugin span#installation:target~.entry-content #tab-installation,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~.entry-content #blocks,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~.entry-content #faq,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~.entry-content #screenshots,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~.entry-content #tab-description,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~.entry-content #tab-developers,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~.entry-content #tab-developers~button,.type-plugin span#reviews:target~.entry-content #tab-reviews{display:block}.type-plugin span#developers:target~.entry-content #tab-developers .plugin-contributors,.type-plugin span#installation:target~.entry-meta .plugin-contributors,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~.entry-content #tab-developers .plugin-development,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~.entry-meta .plugin-contributors,.type-plugin span#reviews:target~.entry-meta .plugin-contributors,.type-plugin span#reviews:target~.entry-meta .plugin-donate,.type-plugin span#reviews:target~.entry-meta .plugin-meta,.type-plugin span#reviews:target~.entry-meta .plugin-support{display:none}@media screen and (min-width:737px){.type-plugin .entry-content,.type-plugin .entry-meta{padding-left:0;padding-right:0}.type-plugin .entry-meta{float:right;width:30%}}.type-plugin .plugin-danger-zone h4{margin-top:var(--wp--preset--spacing--60)}.plugin-releases-listing{border-collapse:collapse;width:100%}.plugin-releases-listing tbody td:nth-child(4) div{font-size:14px}.plugin-releases-listing-actions{display:flex;flex-direction:column;gap:8px}@media screen and (min-width:34em){.plugin-releases-listing-actions{flex-direction:row}}.plugin-adopt-me{background:#e6f4fa;margin-top:36px;padding:12px}.plugin-adopt-me .widget-title{margin-top:0}.plugin-adopt-me p{margin-bottom:0}.widget.plugin-categorization{margin-top:var(--wp--style--block-gap)}.widget.plugin-categorization .widget-head h2{font-size:var(--wp--preset--font-size--heading-4);margin-bottom:.2rem;margin-top:0}.widget.plugin-categorization .widget-head a{font-size:var(--wp--preset--font-size--small)}.widget.plugin-categorization .widget-head a[href=""]{display:none}.widget.plugin-categorization p{font-size:var(--wp--preset--font-size--small);margin-top:.5rem}.widget.plugin-categorization~.plugin-meta li:first-child{border-top:1px solid var(--wp--preset--color--light-grey-1)}.committer-list,.support-rep-list{list-style:none;margin:0;padding:0}.committer-list li,.support-rep-list li{padding-bottom:.5rem}.committer-list li .remove,.support-rep-list li .remove{color:red;visibility:hidden}.committer-list li:hover .remove,.support-rep-list li:hover .remove{visibility:visible}.committer-list .avatar,.support-rep-list .avatar{float:left;margin-right:10px}.committer-list .spinner,.support-rep-list .spinner{position:relative}.committer-list .spinner:after,.support-rep-list .spinner:after{background:url(/wp-admin/images/spinner.gif) no-repeat 50%;background-size:20px 20px;content:"";display:block;height:20px;margin:-10px -10px 0 0;position:absolute;right:-50%;top:50%;transform:translateZ(0);width:20px}@media (min-resolution:120dpi),print{.committer-list .spinner:after,.support-rep-list .spinner:after{background-image:url(/wp-admin/images/spinner-2x.gif)}}.committer-list .new,.support-rep-list .new{margin-top:var(--wp--style--block-gap)}.plugin-contributors.read-more{border-bottom:1px solid var(--wp--preset--color--light-grey-1);max-height:200px;overflow:hidden;padding-bottom:1px}.plugin-contributors.read-more.toggled{max-height:none}.no-js .plugin-contributors.read-more{max-height:none;overflow:auto}.contributors-list{list-style-type:none;margin:0;padding:0}.contributors-list li{align-items:center;display:flex;margin-bottom:1rem}.contributors-list .avatar{float:left;margin-right:10px}.plugin-meta{font-size:var(--wp--preset--font-size--small);margin-top:var(--wp--style--block-gap)}.plugin-meta ul{list-style-type:none;margin:0;padding:0}.plugin-meta li{border-top:1px solid var(--wp--preset--color--light-grey-1);display:inline-block;padding:.5rem 0;position:relative;width:100%}.plugin-meta li strong{float:right;font-weight:500}.plugin-meta li .plugin-admin{font-size:var(--wp--preset--font-size--normal);font-weight:400}.plugin-meta li:first-child{border-top:0}.plugin-meta .languages,.plugin-meta .tags{float:right;text-align:right}.plugin-meta .tags{width:60%}.plugin-meta .languages button{font-size:var(--wp--preset--font-size--small);outline:revert}.plugin-meta .languages .popover{margin-top:8px}.plugin-meta .languages .popover-trigger{color:var(--wp--custom--link--color--text);text-decoration:underline}.plugin-meta .languages .popover-trigger:hover{text-decoration:underline}.plugin-meta [rel=tag]{background:var(--wp--preset--color--blueberry-4);border-radius:2px;color:var(--wp--preset--color--charcoal-1);display:inline-block;font-size:var(--wp--preset--font-size--extra-small);margin:2px;max-width:95%;overflow:hidden;padding:3px 6px;position:relative;text-decoration:none;text-overflow:ellipsis;white-space:nowrap;width:auto}.plugin-meta [rel=tag]:hover{text-decoration:underline}.popover{background-color:#fff;border:1px solid var(--wp--preset--color--light-grey-1);border-radius:2px;box-shadow:0 2px 10px #0000001a;display:none;left:0;margin-top:10px;max-width:300px;padding:1em 1em 2em;position:absolute;width:100%;z-index:100}.popover.is-top-right{left:auto;right:0}.popover.is-visible{display:block}.popover .popover-close{bottom:.5em;color:var(--wp--custom--link--color--text);font-size:small;position:absolute;right:.6em}.popover .popover-close:active,.popover .popover-close:focus,.popover .popover-close:hover{text-decoration:underline}.popover .popover-arrow{border:10px solid #0000;border-bottom:10px solid #ccc;border-top:none;height:0;position:absolute;right:20px;top:-10px;width:0;z-index:-1}.popover .popover-arrow:after{border:10px solid #0000;border-bottom:10px solid #fff;border-top:none;content:"";left:-10px;position:absolute;top:2px}.popover .popover-inner{text-align:left}.popover .popover-inner p:first-child{margin-top:0}.popover .popover-inner p:last-child{margin-bottom:0}.plugin-support .counter-container{margin-bottom:1rem;position:relative}.plugin-support .counter-back,.plugin-support .counter-bar{display:inline-block;height:30px;vertical-align:middle}.plugin-support .counter-back{background-color:var(--wp--preset--color--light-grey-2);width:100%}.plugin-support .counter-bar{background-color:var(--wp--preset--color--acid-green-2);display:block}.plugin-support .counter-count{font-size:var(--wp--preset--font-size--extra-small);left:8px;position:absolute;top:8px;width:100%;width:calc(100% - 8px)}@media screen and (min-width:737px){.plugin-support .counter-count{top:5px}}.home .widget,.widget-area.home .widget{display:inline-block;font-size:var(--wp--preset--font-size--small);margin:0;margin:var(--wp--style--block-gap);vertical-align:top;width:auto}@media screen and (min-width:737px){.home .widget,.widget-area.home .widget{margin:0;width:30%}.home .widget:first-child,.widget-area.home .widget:first-child{margin-right:5%}.home .widget:last-child,.widget-area.home .widget:last-child{margin-left:5%}}.home .widget select,.widget-area.home .widget select{max-width:100%}.entry-meta .widget-title{font-size:var(--wp--preset--font-size--heading-4)}body.single.single-plugin .entry-meta{font-size:var(--wp--preset--font-size--normal)}.widget-area{margin:0 auto;padding:var(--wp--preset--spacing--40) 0}.widget-area .widget-title{font-size:var(--wp--preset--font-size--heading-1);font-weight:var(--wp--custom--heading--typography--font-weight);margin-top:var(--wp--preset--spacing--50)}.widget-area .textwidget{text-wrap:pretty} -======= -@charset "UTF-8";.avatar{border-radius:50%;vertical-align:middle}.wp-block-wporg-language-suggest>p{margin:0}.block-validator>details summary{padding:var(--wp--style--block-gap) 0}.block-validator .block-validator__plugin-form label{display:block;margin-bottom:.8em}.block-validator .block-validator__plugin-input-container{display:flex;max-width:34rem}.block-validator .block-validator__plugin-input{flex:1}.block-validator .block-validator__plugin-submit{flex:0;margin-left:4px}@media (max-width:36rem){.block-validator .block-validator__plugin-submit{width:100%}.block-validator .block-validator__plugin-input-container{display:block}.block-validator .block-validator__plugin-input{width:100%}.block-validator .block-validator__plugin-submit{margin-left:0;margin-top:var(--wp--style--block-gap)}}.block-validator .notice details,.block-validator .notice p{font-size:var(--wp--preset--font-size--normal);margin:var(--wp--style--block-gap) 0}.block-validator .notice details p{font-size:var(--wp--preset--font-size--small);margin-left:1rem}.block-validator .notice summary{display:list-item}.block-validator figure{border:1px solid #aaa;display:inline-block;padding:1em}.block-validator .test-screenshot{text-align:center}.block-validator .plugin-upload-form-controls{align-items:center;display:flex;gap:4px}.block-validator .plugin-upload-form-controls>label{border:1px solid var(--wp--custom--form--border--color);border-radius:var(--wp--custom--form--border--radius);cursor:pointer;min-width:200px;padding:4px 8px}.notice{background:#fff;border-left:4px solid #fff;box-shadow:0 1px 1px 0 #0000001a;font-size:var(--wp--preset--font-size--small);margin:var(--wp--style--block-gap) 0;padding:1px 12px}.notice p,.notice ul{margin:.5em 0;padding:2px}.notice pre{white-space:pre-wrap}.notice ul{list-style:none;margin:.5em}.notice.notice-alt{box-shadow:none}.notice.notice-large{padding:10px 20px}.notice.notice-success{border-left-color:#46b450}.notice.notice-success.notice-alt{background-color:#ecf7ed}.notice.notice-warning{border-left-color:#ffb900}.notice.notice-warning.notice-alt{background-color:#fff8e5}.notice.notice-error{border-left-color:#dc3232}.notice.notice-error.notice-alt{background-color:#fbeaea}.notice.notice-info{border-left-color:#00a0d2}.notice.notice-info.notice-alt{background-color:#e5f5fa}.notice.hidden{display:none}.plugin-upload-form.hidden{display:none}.plugin-upload-form fieldset{border:none;margin:0;padding:0}.plugin-upload-form legend{margin:1rem 0}.plugin-upload-form .category-checklist{list-style-type:none;margin:0 0 2rem}.plugin-upload-form .category-checklist li{float:left;padding:.5rem 0;width:50%}@media screen and (min-width:48em){.plugin-upload-form .category-checklist li{padding:0}.plugin-upload-form .category-checklist label{font-size:var(--wp--preset--font-size--small)}.plugin-upload-form label.button{line-height:1.8}}.plugin-upload-form .plugin-file{height:.1px;opacity:0;overflow:hidden;position:absolute;width:.1px;z-index:-1}.plugin-queue-message code{font-size:1em}.plugin-queue-message dialog.slug-change input[type=text]{font-family:monospace;font-size:1.2em;width:20em}:where(main) a:where(:not(.wp-element-button,.wp-block-wporg-link-wrapper)):focus,:where(main) button:where(:not([class*=wp-block-button])):focus{border-radius:2px;box-shadow:0 0 0 1.5px currentColor;outline:none}.wporg-filter-bar{--wporg--filter-bar--gap:20px;--wporg--filter-bar--color:#40464d;--wporg--filter-bar--active--background-color:var(--wp--custom--button--color--background);--wporg--filter-bar--focus--border-color:var(--wp--custom--button--focus--border--color);margin:var(--wp--style--block-gap) 0}.wporg-filter-bar .wporg-query-filter__toggle.is-active,.wporg-filter-bar .wporg-query-filter__toggle:active,.wporg-filter-bar .wporg-query-filter__toggle:focus{background-color:var(--wporg--filter-bar--active--background-color);color:var(--wp--custom--button--color--text)}.wporg-filter-bar .wporg-filter-bar__navigation{flex-grow:1;margin-bottom:var(--wporg--filter-bar--gap)}.wporg-filter-bar .wporg-filter-bar__navigation ul{display:inline-block;font-size:13px;line-height:1.538;list-style:none;margin:0;padding-left:0}.wporg-filter-bar .wporg-filter-bar__navigation ul li{display:inline-block}.wporg-filter-bar .wporg-filter-bar__navigation ul li+li{margin-left:8px}.wporg-filter-bar .wporg-filter-bar__navigation ul a{border-radius:2px;color:var(--wporg--filter-bar--color);display:block;padding:8px 12px;text-decoration:none}.wporg-filter-bar .wporg-filter-bar__navigation ul a:focus,.wporg-filter-bar .wporg-filter-bar__navigation ul a:hover{text-decoration:underline}.wporg-filter-bar .wporg-filter-bar__navigation ul a:focus-visible{box-shadow:none;outline:1.5px solid var(--wporg--filter-bar--focus--border-color);outline-offset:-.5px}.wporg-filter-bar .wporg-filter-bar__navigation ul a.is-active{background-color:var(--wporg--filter-bar--active--background-color);color:#fff}.wporg-filter-bar .wporg-filter-bar__navigation ul a.is-active:focus,.wporg-filter-bar .wporg-filter-bar__navigation ul a.is-active:hover{color:#fff}.wporg-filter-bar .wporg-filter-bar__navigation ul a.is-active:focus-visible{box-shadow:inset 0 0 0 1.5px #fff;outline:1.5px solid var(--wporg--filter-bar--focus--border-color);outline-offset:-.5px}@media screen and (min-width:737px){.wporg-filter-bar{align-items:center;display:flex;flex-wrap:wrap;gap:var(--wporg--filter-bar--gap);justify-content:space-between;width:100%}.wporg-filter-bar .wporg-filter-bar__navigation{margin-bottom:0}}.wp-block-search__inside-wrapper{background:var(--wp--preset--color--light-grey-2);border:none}.button-link{background:none;border:0;border-radius:0;box-shadow:none;cursor:pointer;margin:0;outline:none;padding:0}.button{background-color:var(--wp--custom--button--color--background);border:0;border-radius:var(--wp--custom--button--border--radius);color:var(--wp--custom--button--color--text);cursor:pointer;opacity:1;padding:calc(var(--wp--custom--button--small--spacing--padding--top) + var(--wp--custom--button--border--width)) calc(var(--wp--custom--button--small--spacing--padding--right) + var(--wp--custom--button--border--width)) calc(var(--wp--custom--button--small--spacing--padding--bottom) + var(--wp--custom--button--border--width)) calc(var(--wp--custom--button--small--spacing--padding--left) + var(--wp--custom--button--border--width));vertical-align:middle}.button.button-large{padding:calc(var(--wp--custom--button--spacing--padding--top) + var(--wp--custom--button--border--width)) calc(var(--wp--custom--button--spacing--padding--right) + var(--wp--custom--button--border--width)) calc(var(--wp--custom--button--spacing--padding--bottom) + var(--wp--custom--button--border--width)) calc(var(--wp--custom--button--spacing--padding--left) + var(--wp--custom--button--border--width))}input+button.button,select+button.button{margin-top:-3px}.button.disabled{cursor:not-allowed;opacity:.6}.wp-block-post-content a.button{text-decoration:none}pre{background-color:#f7f7f7;border:1px solid var(--wp--preset--color--light-grey-1);overflow:scroll;padding:20px}code,pre{border-radius:2px}code{background:var(--wp--preset--color--light-grey-2);display:inline-block;line-height:var(--wp--custom--body--extra-small--typography--line-height);max-width:100%;padding-inline-end:3px;padding-inline-start:3px}dialog{border:0;box-shadow:6px 6px 6px #0003;min-height:50%;min-width:30%}@media (min-width:1280px){dialog{max-width:55%}}dialog::backdrop{background:#000;opacity:.5}dialog .close{color:inherit;cursor:pointer;position:absolute;right:1em;text-decoration:none!important;top:1em}.plugin-card{display:flex;flex-direction:column;height:100%;justify-content:space-between}.plugin-card .entry{display:inline-block;vertical-align:top}.plugin-card .entry-title{display:block;display:-webkit-box;font-size:var(--wp--preset--font-size--heading-5);font-weight:500;line-height:1.3;margin-bottom:2px!important;max-height:2.6em;overflow:hidden;-webkit-line-clamp:2;-webkit-box-orient:vertical}.plugin-card .entry-title a{display:block;text-decoration:none}.plugin-card .entry-title a:focus{box-shadow:none}.plugin-card .entry-excerpt{clear:both;font-size:var(--wp--preset--font-size--small)}.plugin-card .entry-excerpt p{margin:0}.plugin-card footer{font-size:var(--wp--preset--font-size--small);margin-top:var(--wp--style--block-gap)}.plugin-card footer span{color:var(--wp--preset--color--charcoal-4);display:inline-block;line-height:var(--wp--preset--font-size--normal);overflow:hidden}.plugin-card footer span.plugin-author{width:100%}.plugin-card footer span.plugin-author span{color:var(--wp--preset--color--charcoal-1)}.plugin-card footer span.plugin-author path{fill:var(--wp--preset--color--charcoal-1)}.plugin-card footer span svg{height:24px;vertical-align:bottom;width:24px}.plugin-card footer span svg path{fill:var(--wp--preset--color--charcoal-4)}.plugin-card footer span.active-installs{min-width:48%}.plugin-cards{cursor:pointer}.plugin-cards .is-style-cards-grid li:hover{background-color:#fff!important;border:1px solid var(--wp--preset--color--charcoal-1)!important}.plugin-cards .is-style-cards-grid li:focus-within{border-color:#0000;border-radius:2px;box-shadow:0 0 0 1.5px var(--wp--custom--link--color--text)}@media screen and (max-width:737px){.plugin-cards .is-style-cards-grid{grid-template-columns:100%}}.entry-thumbnail{display:none;margin-bottom:var(--wp--style--block-gap);margin-right:var(--wp--style--block-gap);max-width:80px}.entry-thumbnail .plugin-icon{background-size:cover;border-radius:var(--wp--custom--button--border--radius);display:block;height:80px;width:80px}@media screen and (min-width:21em){.entry-thumbnail{display:inline-block;float:left;vertical-align:top}}.single .entry-thumbnail{display:none;float:left;height:96px;margin-bottom:0;max-width:96px}@media screen and (min-width:26em){.single .entry-thumbnail{display:block}}.single .entry-thumbnail .plugin-icon{background-size:contain!important;height:96px!important;width:96px!important}.plugin-rating{line-height:1;margin:0 10px 8px 0}.plugin-rating .wporg-ratings{display:inline-block;margin-right:5px}.plugin-rating .rating-count{color:var(--wp--preset--color--charcoal-4);font-size:var(--wp--preset--font-size--extra-small);vertical-align:text-bottom}.plugin-rating .rating-count a{color:inherit;cursor:hand;text-decoration:none}[class*=dashicons-star-]{color:var(--wp--preset--color--pomegrade-1)}.rtl .dashicons-star-half{transform:rotateY(180deg)}#main .plugin-section{margin:0 auto var(--wp--preset--spacing--60)}#main .plugin-section:last-of-type{margin-bottom:0}#main .plugin-section .section-header{align-items:center;column-gap:10px;display:flex;justify-content:space-between;margin-bottom:var(--wp--style--block-gap)}#main .plugin-section .section-header>h2{margin-bottom:0}#main .plugin-section .section-link{align-self:center;flex:0 0 auto;text-decoration:underline}.pagination .nav-links{margin-top:var(--wp--style--block-gap);padding-top:var(--wp--style--block-gap);text-align:center}.pagination .nav-links a{text-decoration:none}.pagination .nav-links .page-numbers{cursor:pointer;display:inline-block;min-width:2em;padding:8px;text-align:center}.pagination .nav-links .page-numbers.dots,.pagination .nav-links .page-numbers.next,.pagination .nav-links .page-numbers.prev{background:none;font-size:.9em;width:auto}.pagination .nav-links .page-numbers.dots{cursor:inherit}@media screen and (max-width:737px){.pagination .nav-links .page-numbers.next,.pagination .nav-links .page-numbers.prev{font-size:0;min-width:auto;padding:0}.pagination .nav-links .page-numbers.next:after,.pagination .nav-links .page-numbers.prev:before{display:inline-block;font-size:medium;line-height:1.5;min-width:2em;padding:8px}.pagination .nav-links .page-numbers.prev:before{content:"‹"}.pagination .nav-links .page-numbers.next:after{content:"›"}}.pagination .nav-links span.page-numbers{font-weight:700}.pagination .nav-links span.page-numbers.current{text-decoration:underline}@keyframes favme-anime{0%{font-size:var(--wp--preset--font-size--large);opacity:1;-webkit-text-stroke-color:#0000}25%{color:#fff;font-size:var(--wp--preset--font-size--small);opacity:.6;-webkit-text-stroke-width:1px;-webkit-text-stroke-color:#dc3232}75%{color:#fff;font-size:var(--wp--preset--font-size--large);opacity:.6;-webkit-text-stroke-width:1px;-webkit-text-stroke-color:#dc3232}to{font-size:var(--wp--preset--font-size--normal);opacity:1;-webkit-text-stroke-color:#0000}}.plugin-favorite{height:calc(var(--wp--custom--button--spacing--padding--top)*2 + var(--wp--preset--font-size--normal)*2);text-align:center;vertical-align:top;width:36px}.plugin-favorite .plugin-favorite-heart{align-items:center;background:none;border:0;border-radius:0;box-shadow:none;color:#cbcdce;cursor:pointer;display:flex;font-size:var(--wp--preset--font-size--large);height:100%;justify-content:center;line-height:1;margin:0;outline:none;padding:0;text-decoration:none}.plugin-favorite .plugin-favorite-heart.favorited{color:#dc3232}.plugin-favorite .plugin-favorite-heart:focus,.plugin-favorite .plugin-favorite-heart:hover{color:var(----wp--preset--color--charcoal-2);text-decoration:none}.plugin-favorite .plugin-favorite-heart:after{content:"\f487";font-family:dashicons;vertical-align:top}.plugin-banner img{aspect-ratio:3.089;border-radius:var(--wp--custom--button--border--radius);display:block;margin:0 auto var(--wp--preset--spacing--30);width:100%}.plugin-releases{list-style-type:none;padding:0}.plugin-releases-item{border:1px solid var(--wp--preset--color--light-grey-1);border-radius:4px;margin-bottom:var(--wp--preset--spacing--30);padding:var(--wp--style--block-gap)}.plugin-releases-item-header{display:flex;justify-content:space-between}.plugin-releases-item-header h3{margin:0!important}@keyframes hideAnimation{to{visibility:hidden}}.categorization .help{color:var(--wp--preset--color--charcoal-4);display:inline-block;font-size:.8rem;margin-top:0}.categorization label{display:block;font-weight:700}.categorization input{width:100%}.categorization .success-msg{background:#eff7ed;border:solid #64b450;border-width:0 0 0 5px;font-size:.8rem;margin-left:1rem;opacity:0;overflow:auto;padding:.1rem .6rem .2rem;position:relative;transition:visibility 0s,opacity .5s linear;-webkit-user-select:none;user-select:none;visibility:hidden}.categorization .success-msg.saved{animation:hideAnimation 0s ease-in 5s;animation-fill-mode:forwards;opacity:1;visibility:visible}.plugin-changelog code{font-size:var(--wp--preset--font-size--small)}.plugin-developers .contributors-list li{align-items:center;display:flex;padding-bottom:var(--wp--style--block-gap)}@media screen and (min-width:500px){.plugin-developers .contributors-list{display:flex;flex-wrap:wrap}.plugin-developers .contributors-list li{padding-bottom:unset;width:50%}}.plugin-faq dl{border-bottom:1px solid var(--wp--preset--color--light-grey-1)}.plugin-faq dt{border-top:1px solid var(--wp--preset--color--light-grey-1);cursor:pointer;padding:1rem 0}.plugin-faq dt:before{content:"\f347";float:right;font-family:dashicons;margin:0 1rem}.plugin-faq dt.open:before{content:"\f343"}.plugin-faq dt .button-link{display:inherit;text-align:inherit}.plugin-faq dt .button-link.no-focus{box-shadow:none;outline:none}.plugin-faq dt h3{color:var(--wp--custom--link--color--text);display:inline;font-size:var(--wp--preset--font-size--normal);font-weight:400;margin-bottom:0;margin-top:0!important;text-decoration:underline}.plugin-faq dt h3 button{all:inherit;max-width:calc(100% - 60px)}.plugin-faq dt h3 button:focus,.plugin-faq dt h3 button:hover{text-decoration:underline}.plugin-faq dd{display:none;margin:0 0 1rem}.no-js .plugin-faq dd{display:block}.plugin-faq dd p{margin:0}.plugin-faq dd p+p{margin-top:1rem}.image-gallery{-webkit-user-select:none;user-select:none}.image-gallery-content{position:relative}.image-gallery-content .image-gallery-left-nav,.image-gallery-content .image-gallery-right-nav{border-color:var(--wp--preset--color--light-grey-1);display:none;font-size:48px;height:100%;position:absolute;top:0;transition:background .1s ease,border .1s ease;z-index:4}@media (max-width:768px){.image-gallery-content .image-gallery-left-nav,.image-gallery-content .image-gallery-right-nav{font-size:3.4em}}@media (min-width:768px){.image-gallery-content .image-gallery-left-nav:hover,.image-gallery-content .image-gallery-right-nav:hover{background:#fff;border:1px solid var(--wp--preset--color--light-grey-1);opacity:.8}}.image-gallery-content .image-gallery-left-nav:before,.image-gallery-content .image-gallery-right-nav:before{font-family:dashicons;position:relative}.image-gallery-content .image-gallery-left-nav{left:0}.image-gallery-content .image-gallery-left-nav:before{content:"\f341"}.image-gallery-content .image-gallery-left-nav:hover{margin-left:-1px}.image-gallery-content .image-gallery-right-nav{right:0}.image-gallery-content .image-gallery-right-nav:before{content:"\f345"}.image-gallery-content .image-gallery-right-nav:hover{margin-right:-1px}.image-gallery-content:hover .image-gallery-left-nav,.image-gallery-content:hover .image-gallery-right-nav{display:block}.image-gallery-slides{border:1px solid #eee;line-height:0;overflow:hidden;position:relative;white-space:nowrap}.image-gallery-slide{left:0;position:absolute;top:0;width:100%}.image-gallery-slide.center{position:relative}.image-gallery-slide .image-gallery-image{margin:0}.image-gallery-slide img{display:block;margin:0 auto}.image-gallery-slide .image-gallery-description{background:var(--wp--preset--color--light-grey-2);color:var(--wp--preset--color--charcoal-1);font-size:var(--wp--preset--font-size--small);line-height:1.5;padding:10px 20px;white-space:normal}@media (max-width:768px){.image-gallery-slide .image-gallery-description{padding:8px 15px}}.image-gallery-thumbnails{background:#fff;margin-top:5px}.image-gallery-thumbnails .image-gallery-thumbnails-container{cursor:pointer;text-align:center;white-space:nowrap}.image-gallery-thumbnail{border:1px solid #eee;display:table-cell;margin-right:5px;max-height:100px;overflow:hidden}.image-gallery-thumbnail .image-gallery-image{margin:0}.image-gallery-thumbnail img{vertical-align:middle;width:100px}@media (max-width:768px){.image-gallery-thumbnail img{width:75px}}.image-gallery-thumbnail:hover{box-shadow:0 1px 8px #0000004d}.image-gallery-thumbnail.active{border:1px solid #337ab7}.image-gallery-thumbnail-label{color:#222;font-size:1em}@media (max-width:768px){.image-gallery-thumbnail-label{font-size:.8em}}.image-gallery-index{background:#0006;bottom:0;color:#fff;line-height:1;padding:10px 20px;position:absolute;right:0;z-index:4}.plugin-reviews{list-style-type:none;margin:0;padding:0}.plugin-reviews .plugin-review{border-bottom:1px solid var(--wp--preset--color--light-grey-1);margin:2rem 0 1rem;padding-bottom:1rem}.plugin-reviews .plugin-review a{text-decoration:none}.plugin-reviews .plugin-review:first-child{margin-top:0}.plugin-reviews .plugin-review .header-top{display:flex}.plugin-reviews .plugin-review .header-top .wporg-ratings{flex-shrink:0}.plugin-reviews .plugin-review .header-bottom{display:flex;margin-top:4px}.plugin-reviews .review-avatar{display:none}.plugin-reviews .review,.plugin-reviews .review-author,.plugin-reviews .wporg-ratings{display:inline-block;vertical-align:top}.plugin-reviews .review-header{margin:0 0 .5rem}.plugin-reviews .review-title{font-size:var(--wp--preset--font-size--normal);font-weight:500;margin:2px 0 0 12px!important;text-transform:inherit}.plugin-reviews .review-author,.plugin-reviews .review-date,.plugin-reviews .review-replies{font-size:var(--wp--preset--font-size--extra-small);line-height:1.25}.plugin-reviews .review-date,.plugin-reviews .review-replies{color:var(--wp--preset--color--charcoal-4);font-size:var(--wp--preset--font-size--extra-small);margin-left:12px}.plugin-reviews .review-replies:before{content:"•";margin-right:12px}.plugin-reviews .review-content{margin:1em 0}@media screen and (min-width:737px){.plugin-reviews .review-avatar{display:inline-block;vertical-align:top}.plugin-reviews .review-avatar .avatar{margin-right:1rem}.plugin-reviews .review{width:calc(100% - 60px - 1rem)}.plugin-reviews .review-header{margin:0}.plugin-reviews .review-author,.plugin-reviews .review-date,.plugin-reviews .review-replies{line-height:1}}.plugin-reviews .reviews-link{display:inline-block;font-size:var(--wp--preset--font-size--small);text-decoration:none}.plugin-reviews .reviews-link:after{content:"\f345";float:right;font-family:dashicons;padding-left:5px;position:relative;top:1px;vertical-align:text-top}.plugin-screenshots{list-style-type:none;margin:0;padding:0}.plugin-screenshots .image-gallery-content{display:table;width:100%}.plugin-screenshots .image-gallery-slides{display:table-cell;max-height:600px}.plugin-screenshots .image-gallery-image img{max-height:550px;max-width:100%}.plugin-screenshots .image-gallery-thumbnail{vertical-align:top}.plugin-screenshots .image-gallery-thumbnail img{max-height:100px}.plugin-screenshots .image-gallery-thumbnails{overflow:hidden}.download-history-stats td{text-align:right}.previous-versions{max-width:60%}@media screen and (min-width:737px){.previous-versions{height:32px;vertical-align:middle}}hr{margin:2.5rem auto}.section h1:nth-child(2),.section h2:nth-child(2),.section h3:nth-child(2),.section h4:nth-child(2),.section h5:nth-child(2),.section h6:nth-child(2){margin-top:0}.section-heading{font-family:var(--wp--preset--font-family--inter)!important;font-size:var(--wp--preset--font-size--heading-5)!important;font-style:normal;font-weight:600;line-height:var(--wp--custom--heading--level-5--typography--line-height)}.section-intro{color:var(--wp--preset--color--charcoal-4);font-size:var(--wp--preset--font-size--small);margin-bottom:var(--wp--preset--spacing--20);margin-top:var(--wp--preset--spacing--10)}.type-plugin .plugin-notice{margin-top:0}.type-plugin .plugin-header{border-bottom:0;padding-top:var(--wp--preset--spacing--40)}.type-plugin .plugin-header:after,.type-plugin .plugin-header:before{content:"";display:table;table-layout:fixed}.type-plugin .plugin-header:after{clear:both}.type-plugin .plugin-header .entry-heading-container{display:flex;flex-direction:column;justify-content:space-between}@media screen and (max-width:599px){.type-plugin .plugin-header .entry-heading-container{--wp--custom--button--spacing--padding--top:12px;--wp--custom--button--spacing--padding--bottom:12px;--wp--custom--button--spacing--padding--left:16px;--wp--custom--button--spacing--padding--right:16px}}@media screen and (min-width:700px){.type-plugin .plugin-header .entry-heading-container{flex-direction:row}}.type-plugin .plugin-header .entry-heading-container>:first-child{align-items:center;display:flex;flex:1}.type-plugin .plugin-header .plugin-actions{align-items:center;display:flex;gap:16px;margin-top:var(--wp--style--block-gap)}@media screen and (min-width:700px){.type-plugin .plugin-header .plugin-actions{margin-top:0;margin-inline-start:1rem}}.type-plugin .plugin-header .plugin-actions>.button,.type-plugin .plugin-header .plugin-actions>div{display:inline-block;text-align:center}@media screen and (max-width:34em){.type-plugin .plugin-header .plugin-actions>.button.download-button{display:none}}.type-plugin .plugin-header .plugin-title{clear:none;font-size:var(--wp--preset--font-size--heading-3);font-weight:400;line-height:var(--wp--custom--heading--level-3--typography--line-height);margin:0}.type-plugin .plugin-header .plugin-title a{color:inherit;text-decoration:none}.type-plugin .plugin-header .plugin-title a:hover{text-decoration:underline}.type-plugin .plugin-header .byline{color:var(--wp--preset--color--charcoal-4);display:block;margin-top:4px}.type-plugin .plugin-banner+.plugin-header{padding-top:0}.type-plugin .plugin-banner+.plugin-header>.notice:first-of-type{margin-top:0}.type-plugin .tabs{border-bottom:1px solid var(--wp--preset--color--light-grey-1);list-style:none;margin:0}.type-plugin .tabs li{border:1px solid #0000;display:inline-block;font-size:.9rem;margin-bottom:-1px;transition:background .2s ease}.type-plugin .tabs li a{background:#fff;border:0;color:var(--wp--preset--color--charcoal-1);display:block;font-size:var(--wp--preset--font-size--normal);padding:.64rem 1.25rem;text-decoration:none}.type-plugin .tabs li a.active,.type-plugin .tabs li a:hover{background:var(--wp--preset--color--light-grey-2)!important}.type-plugin .tabs li.active,.type-plugin .tabs li:hover{border:1px solid var(--wp--preset--color--light-grey-1)}@media screen and (max-width:38em){.type-plugin .tabs{border-top:1px solid var(--wp--preset--color--light-grey-1)}.type-plugin .tabs li{display:block;margin-bottom:1px}.type-plugin .tabs li,.type-plugin .tabs li.active,.type-plugin .tabs li:hover{border:none;border-bottom:1px solid var(--wp--preset--color--light-grey-1)}}@media screen and (min-width:737px){.type-plugin .entry-content{float:left;padding:0;width:65%}}.type-plugin .entry-content>div,.type-plugin .entry-content>div~button{border:0;display:none}.type-plugin .entry-content ol>li>p,.type-plugin .entry-content ul>li>p{margin:0}.type-plugin .entry-content #admin{display:block!important}.type-plugin .plugin-blocks-list{list-style:none;margin-left:0;padding-left:0}.type-plugin .plugin-blocks-list .plugin-blocks-list-item{display:grid;grid-template-columns:auto 1fr;margin-bottom:var(--wp--style--block-gap)}.type-plugin .plugin-blocks-list .block-icon{border:1px solid var(--wp--preset--color--light-grey-1);border-radius:2px;display:inline-block;height:3.5rem;line-height:16px;margin-right:var(--wp--style--block-gap);padding:var(--wp--style--block-gap);width:3.5rem}.type-plugin .plugin-blocks-list .block-icon.dashicons{color:inherit}.type-plugin .plugin-blocks-list .block-icon.dashicons:before{margin-left:-3px}.type-plugin .plugin-blocks-list .block-icon svg{height:16px;width:16px;fill:currentColor;margin-left:-1px}.type-plugin .plugin-blocks-list .block-title{align-self:center;font-weight:700}.type-plugin .plugin-blocks-list .has-description .block-icon{grid-row:1/span 2}.type-plugin .plugin-blocks-list .has-description .block-title{margin-bottom:.4em}.type-plugin span#description,.type-plugin span#developers,.type-plugin span#installation,.type-plugin span#releases,.type-plugin span#reviews{position:fixed}.type-plugin span#advanced.displayed~#section-links .tabs li#tablink-advanced,.type-plugin span#developers:target~#section-links .tabs li#tablink-developers,.type-plugin span#installation:target~#section-links .tabs li#tablink-installation,.type-plugin span#releases:target~#section-links .tabs li#tablink-releases,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~span#advanced:not(.displayed)~#section-links .tabs li#tablink-description,.type-plugin span#reviews:target~#section-links .tabs li#tablink-reviews{background:#fff;border:1px solid var(--wp--preset--color--light-grey-1);border-bottom:0;padding-bottom:1px}@media screen and (max-width:38em){.type-plugin span#advanced.displayed~#section-links .tabs li#tablink-advanced.active,.type-plugin span#advanced.displayed~#section-links .tabs li#tablink-advanced:hover,.type-plugin span#developers:target~#section-links .tabs li#tablink-developers.active,.type-plugin span#developers:target~#section-links .tabs li#tablink-developers:hover,.type-plugin span#installation:target~#section-links .tabs li#tablink-installation.active,.type-plugin span#installation:target~#section-links .tabs li#tablink-installation:hover,.type-plugin span#releases:target~#section-links .tabs li#tablink-releases.active,.type-plugin span#releases:target~#section-links .tabs li#tablink-releases:hover,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~span#advanced:not(.displayed)~#section-links .tabs li#tablink-description.active,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~span#advanced:not(.displayed)~#section-links .tabs li#tablink-description:hover,.type-plugin span#reviews:target~#section-links .tabs li#tablink-reviews.active,.type-plugin span#reviews:target~#section-links .tabs li#tablink-reviews:hover{padding-bottom:1px!important}}.type-plugin span#section-links{display:flex;flex-flow:row wrap;margin-top:var(--wp--preset--spacing--30)}.type-plugin span#section-links .tabs{flex:1 1 auto;padding-left:0}@media screen and (max-width:38em){.type-plugin span#section-links .tabs{border:1px solid var(--wp--preset--color--light-grey-1)!important}.type-plugin span#section-links .tabs li{border:none!important}.type-plugin span#section-links{display:block}}.type-plugin #link-support{align-self:flex-end;border-bottom:1px solid var(--wp--preset--color--light-grey-1);flex:0 0 auto;font-size:.9rem}.type-plugin #link-support a{display:inline-block;font-size:var(--wp--preset--font-size--normal);padding:.64rem 0 .64rem 1.25rem}@media screen and (max-width:38em){.type-plugin #link-support{border-bottom:0;display:block;width:100%}.type-plugin #link-support a{padding-right:1.25rem}}.type-plugin span#developers:target~.entry-content #tab-changelog,.type-plugin span#developers:target~.entry-content #tab-developers,.type-plugin span#developers:target~.entry-content #tab-developers .plugin-development,.type-plugin span#developers:target~.entry-content #tab-developers~button,.type-plugin span#installation:target~.entry-content #tab-installation,.type-plugin span#releases:target~.entry-content #tab-releases,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~.entry-content #blocks,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~.entry-content #faq,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~.entry-content #screenshots,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~.entry-content #tab-description,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~.entry-content #tab-developers,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~.entry-content #tab-developers~button,.type-plugin span#reviews:target~.entry-content #tab-reviews{display:block}.type-plugin span#developers:target~.entry-content #tab-developers .plugin-contributors,.type-plugin span#installation:target~.entry-meta .plugin-contributors,.type-plugin span#releases:target~.entry-meta,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~.entry-content #tab-developers .plugin-development,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~.entry-meta .plugin-contributors,.type-plugin span#reviews:target~.entry-meta .plugin-contributors,.type-plugin span#reviews:target~.entry-meta .plugin-donate,.type-plugin span#reviews:target~.entry-meta .plugin-meta,.type-plugin span#reviews:target~.entry-meta .plugin-support{display:none}.type-plugin span#releases:target~.entry-content{width:100%}@media screen and (min-width:737px){.type-plugin .entry-content,.type-plugin .entry-meta{padding-left:0;padding-right:0}.type-plugin .entry-meta{float:right;width:30%}}.type-plugin .plugin-danger-zone h4{margin-top:var(--wp--preset--spacing--60)}.plugin-releases-listing{border-collapse:collapse;width:100%}.plugin-releases-listing tbody td:nth-child(4) div{font-size:14px}.plugin-releases-listing-actions{display:flex;flex-direction:column;gap:8px}@media screen and (min-width:34em){.plugin-releases-listing-actions{flex-direction:row}}.plugin-adopt-me{background:#e6f4fa;margin-top:36px;padding:12px}.plugin-adopt-me .widget-title{margin-top:0}.plugin-adopt-me p{margin-bottom:0}.widget.plugin-categorization{margin-top:var(--wp--style--block-gap)}.widget.plugin-categorization .widget-head h2{font-size:var(--wp--preset--font-size--heading-4);margin-bottom:.2rem;margin-top:0}.widget.plugin-categorization .widget-head a{font-size:var(--wp--preset--font-size--small)}.widget.plugin-categorization .widget-head a[href=""]{display:none}.widget.plugin-categorization p{font-size:var(--wp--preset--font-size--small);margin-top:.5rem}.widget.plugin-categorization~.plugin-meta li:first-child{border-top:1px solid var(--wp--preset--color--light-grey-1)}.committer-list,.support-rep-list{list-style:none;margin:0;padding:0}.committer-list li,.support-rep-list li{padding-bottom:.5rem}.committer-list li .remove,.support-rep-list li .remove{color:red;visibility:hidden}.committer-list li:hover .remove,.support-rep-list li:hover .remove{visibility:visible}.committer-list .avatar,.support-rep-list .avatar{float:left;margin-right:10px}.committer-list .spinner,.support-rep-list .spinner{position:relative}.committer-list .spinner:after,.support-rep-list .spinner:after{background:url(/wp-admin/images/spinner.gif) no-repeat 50%;background-size:20px 20px;content:"";display:block;height:20px;margin:-10px -10px 0 0;position:absolute;right:-50%;top:50%;transform:translateZ(0);width:20px}@media (min-resolution:120dpi),print{.committer-list .spinner:after,.support-rep-list .spinner:after{background-image:url(/wp-admin/images/spinner-2x.gif)}}.committer-list .new,.support-rep-list .new{margin-top:var(--wp--style--block-gap)}.plugin-contributors.read-more{border-bottom:1px solid var(--wp--preset--color--light-grey-1);max-height:200px;overflow:hidden;padding-bottom:1px}.plugin-contributors.read-more.toggled{max-height:none}.no-js .plugin-contributors.read-more{max-height:none;overflow:auto}.contributors-list{list-style-type:none;margin:0;padding:0}.contributors-list li{align-items:center;display:flex;margin-bottom:1rem}.contributors-list .avatar{float:left;margin-right:10px}.plugin-meta{font-size:var(--wp--preset--font-size--small);margin-top:var(--wp--style--block-gap)}.plugin-meta ul{list-style-type:none;margin:0;padding:0}.plugin-meta li{border-top:1px solid var(--wp--preset--color--light-grey-1);display:inline-block;padding:.5rem 0;position:relative;width:100%}.plugin-meta li strong{float:right;font-weight:500}.plugin-meta li .plugin-admin{font-size:var(--wp--preset--font-size--normal);font-weight:400}.plugin-meta li:first-child{border-top:0}.plugin-meta .languages,.plugin-meta .tags{float:right;text-align:right}.plugin-meta .tags{width:60%}.plugin-meta .languages button{font-size:var(--wp--preset--font-size--small);outline:revert}.plugin-meta .languages .popover{margin-top:8px}.plugin-meta .languages .popover-trigger{color:var(--wp--custom--link--color--text);text-decoration:underline}.plugin-meta .languages .popover-trigger:hover{text-decoration:underline}.plugin-meta [rel=tag]{background:var(--wp--preset--color--blueberry-4);border-radius:2px;color:var(--wp--preset--color--charcoal-1);display:inline-block;font-size:var(--wp--preset--font-size--extra-small);margin:2px;max-width:95%;overflow:hidden;padding:3px 6px;position:relative;text-decoration:none;text-overflow:ellipsis;white-space:nowrap;width:auto}.plugin-meta [rel=tag]:hover{text-decoration:underline}.popover{background-color:#fff;border:1px solid var(--wp--preset--color--light-grey-1);border-radius:2px;box-shadow:0 2px 10px #0000001a;display:none;left:0;margin-top:10px;max-width:300px;padding:1em 1em 2em;position:absolute;width:100%;z-index:100}.popover.is-top-right{left:auto;right:0}.popover.is-visible{display:block}.popover .popover-close{bottom:.5em;color:var(--wp--custom--link--color--text);font-size:small;position:absolute;right:.6em}.popover .popover-close:active,.popover .popover-close:focus,.popover .popover-close:hover{text-decoration:underline}.popover .popover-arrow{border:10px solid #0000;border-bottom:10px solid #ccc;border-top:none;height:0;position:absolute;right:20px;top:-10px;width:0;z-index:-1}.popover .popover-arrow:after{border:10px solid #0000;border-bottom:10px solid #fff;border-top:none;content:"";left:-10px;position:absolute;top:2px}.popover .popover-inner{text-align:left}.popover .popover-inner p:first-child{margin-top:0}.popover .popover-inner p:last-child{margin-bottom:0}.plugin-support .counter-container{margin-bottom:1rem;position:relative}.plugin-support .counter-back,.plugin-support .counter-bar{display:inline-block;height:30px;vertical-align:middle}.plugin-support .counter-back{background-color:var(--wp--preset--color--light-grey-2);width:100%}.plugin-support .counter-bar{background-color:var(--wp--preset--color--acid-green-2);display:block}.plugin-support .counter-count{font-size:var(--wp--preset--font-size--extra-small);left:8px;position:absolute;top:8px;width:100%;width:calc(100% - 8px)}@media screen and (min-width:737px){.plugin-support .counter-count{top:5px}}.home .widget,.widget-area.home .widget{display:inline-block;font-size:var(--wp--preset--font-size--small);margin:0;margin:var(--wp--style--block-gap);vertical-align:top;width:auto}@media screen and (min-width:737px){.home .widget,.widget-area.home .widget{margin:0;width:30%}.home .widget:first-child,.widget-area.home .widget:first-child{margin-right:5%}.home .widget:last-child,.widget-area.home .widget:last-child{margin-left:5%}}.home .widget select,.widget-area.home .widget select{max-width:100%}.entry-meta .widget-title{font-size:var(--wp--preset--font-size--heading-4)}body.single.single-plugin .entry-meta{font-size:var(--wp--preset--font-size--normal)}.widget-area{margin:0 auto;padding:var(--wp--preset--spacing--40) 0}.widget-area .widget-title{font-size:var(--wp--preset--font-size--heading-1);font-weight:var(--wp--custom--heading--typography--font-weight);margin-top:var(--wp--preset--spacing--50)}.widget-area .textwidget{text-wrap:pretty} ->>>>>>> try/release-page +@charset "UTF-8";.avatar{border-radius:50%;vertical-align:middle}.wp-block-wporg-language-suggest>p{margin:0}.block-validator>details summary{padding:var(--wp--style--block-gap) 0}.block-validator .block-validator__plugin-form label{display:block;margin-bottom:.8em}.block-validator .block-validator__plugin-input-container{display:flex;max-width:34rem}.block-validator .block-validator__plugin-input{flex:1}.block-validator .block-validator__plugin-submit{flex:0;margin-left:4px}@media (max-width:36rem){.block-validator .block-validator__plugin-submit{width:100%}.block-validator .block-validator__plugin-input-container{display:block}.block-validator .block-validator__plugin-input{width:100%}.block-validator .block-validator__plugin-submit{margin-left:0;margin-top:var(--wp--style--block-gap)}}.block-validator .notice details,.block-validator .notice p{font-size:var(--wp--preset--font-size--normal);margin:var(--wp--style--block-gap) 0}.block-validator .notice details p{font-size:var(--wp--preset--font-size--small);margin-left:1rem}.block-validator .notice summary{display:list-item}.block-validator figure{border:1px solid #aaa;display:inline-block;padding:1em}.block-validator .test-screenshot{text-align:center}.block-validator .plugin-upload-form-controls{align-items:center;display:flex;gap:4px}.block-validator .plugin-upload-form-controls>label{border:1px solid var(--wp--custom--form--border--color);border-radius:var(--wp--custom--form--border--radius);cursor:pointer;min-width:200px;padding:4px 8px}.notice{background:#fff;border-left:4px solid #fff;box-shadow:0 1px 1px 0 #0000001a;font-size:var(--wp--preset--font-size--small);margin:var(--wp--style--block-gap) 0;padding:1px 12px}.notice p,.notice ul{margin:.5em 0;padding:2px}.notice pre{white-space:pre-wrap}.notice ul{list-style:none;margin:.5em}.notice.notice-alt{box-shadow:none}.notice.notice-large{padding:10px 20px}.notice.notice-success{border-left-color:#46b450}.notice.notice-success.notice-alt{background-color:#ecf7ed}.notice.notice-warning{border-left-color:#ffb900}.notice.notice-warning.notice-alt{background-color:#fff8e5}.notice.notice-error{border-left-color:#dc3232}.notice.notice-error.notice-alt{background-color:#fbeaea}.notice.notice-info{border-left-color:#00a0d2}.notice.notice-info.notice-alt{background-color:#e5f5fa}.notice.hidden{display:none}.plugin-upload-form.hidden{display:none}.plugin-upload-form fieldset{border:none;margin:0;padding:0}.plugin-upload-form legend{margin:1rem 0}.plugin-upload-form .category-checklist{list-style-type:none;margin:0 0 2rem}.plugin-upload-form .category-checklist li{float:left;padding:.5rem 0;width:50%}@media screen and (min-width:48em){.plugin-upload-form .category-checklist li{padding:0}.plugin-upload-form .category-checklist label{font-size:var(--wp--preset--font-size--small)}.plugin-upload-form label.button{line-height:1.8}}.plugin-upload-form .plugin-file{height:.1px;opacity:0;overflow:hidden;position:absolute;width:.1px;z-index:-1}.plugin-queue-message code{font-size:1em}.plugin-queue-message dialog.slug-change input[type=text]{font-family:monospace;font-size:1.2em;width:20em}:where(main) a:where(:not(.wp-element-button,.wp-block-wporg-link-wrapper)):focus,:where(main) button:where(:not([class*=wp-block-button])):focus{border-radius:2px;box-shadow:0 0 0 1.5px currentColor;outline:none}.wporg-filter-bar{--wporg--filter-bar--gap:20px;--wporg--filter-bar--color:#40464d;--wporg--filter-bar--active--background-color:var(--wp--custom--button--color--background);--wporg--filter-bar--focus--border-color:var(--wp--custom--button--focus--border--color);margin:var(--wp--style--block-gap) 0}.wporg-filter-bar .wporg-query-filter__toggle.is-active,.wporg-filter-bar .wporg-query-filter__toggle:active,.wporg-filter-bar .wporg-query-filter__toggle:focus{background-color:var(--wporg--filter-bar--active--background-color);color:var(--wp--custom--button--color--text)}.wporg-filter-bar .wporg-filter-bar__navigation{flex-grow:1;margin-bottom:var(--wporg--filter-bar--gap)}.wporg-filter-bar .wporg-filter-bar__navigation ul{display:inline-block;font-size:13px;line-height:1.538;list-style:none;margin:0;padding-left:0}.wporg-filter-bar .wporg-filter-bar__navigation ul li{display:inline-block}.wporg-filter-bar .wporg-filter-bar__navigation ul li+li{margin-left:8px}.wporg-filter-bar .wporg-filter-bar__navigation ul a{border-radius:2px;color:var(--wporg--filter-bar--color);display:block;padding:8px 12px;text-decoration:none}.wporg-filter-bar .wporg-filter-bar__navigation ul a:focus,.wporg-filter-bar .wporg-filter-bar__navigation ul a:hover{text-decoration:underline}.wporg-filter-bar .wporg-filter-bar__navigation ul a:focus-visible{box-shadow:none;outline:1.5px solid var(--wporg--filter-bar--focus--border-color);outline-offset:-.5px}.wporg-filter-bar .wporg-filter-bar__navigation ul a.is-active{background-color:var(--wporg--filter-bar--active--background-color);color:#fff}.wporg-filter-bar .wporg-filter-bar__navigation ul a.is-active:focus,.wporg-filter-bar .wporg-filter-bar__navigation ul a.is-active:hover{color:#fff}.wporg-filter-bar .wporg-filter-bar__navigation ul a.is-active:focus-visible{box-shadow:inset 0 0 0 1.5px #fff;outline:1.5px solid var(--wporg--filter-bar--focus--border-color);outline-offset:-.5px}@media screen and (min-width:737px){.wporg-filter-bar{align-items:center;display:flex;flex-wrap:wrap;gap:var(--wporg--filter-bar--gap);justify-content:space-between;width:100%}.wporg-filter-bar .wporg-filter-bar__navigation{margin-bottom:0}}.wp-block-search__inside-wrapper{background:var(--wp--preset--color--light-grey-2);border:none}.button-link{background:none;border:0;border-radius:0;box-shadow:none;cursor:pointer;margin:0;outline:none;padding:0}.button{background-color:var(--wp--custom--button--color--background);border:0;border-radius:var(--wp--custom--button--border--radius);color:var(--wp--custom--button--color--text);cursor:pointer;opacity:1;padding:calc(var(--wp--custom--button--small--spacing--padding--top) + var(--wp--custom--button--border--width)) calc(var(--wp--custom--button--small--spacing--padding--right) + var(--wp--custom--button--border--width)) calc(var(--wp--custom--button--small--spacing--padding--bottom) + var(--wp--custom--button--border--width)) calc(var(--wp--custom--button--small--spacing--padding--left) + var(--wp--custom--button--border--width));vertical-align:middle}.button.button-large{padding:calc(var(--wp--custom--button--spacing--padding--top) + var(--wp--custom--button--border--width)) calc(var(--wp--custom--button--spacing--padding--right) + var(--wp--custom--button--border--width)) calc(var(--wp--custom--button--spacing--padding--bottom) + var(--wp--custom--button--border--width)) calc(var(--wp--custom--button--spacing--padding--left) + var(--wp--custom--button--border--width))}input+button.button,select+button.button{margin-top:-3px}.button.disabled{cursor:not-allowed;opacity:.6}.wp-block-post-content a.button{text-decoration:none}.wp-block-button__link{width:auto}pre{background-color:#f7f7f7;border:1px solid var(--wp--preset--color--light-grey-1);overflow:scroll;padding:20px}code,pre{border-radius:2px}code{background:var(--wp--preset--color--light-grey-2);display:inline-block;line-height:var(--wp--custom--body--extra-small--typography--line-height);max-width:100%;padding-inline-end:3px;padding-inline-start:3px}dialog{border:0;box-shadow:6px 6px 6px #0003;min-height:50%;min-width:30%}@media (min-width:1280px){dialog{max-width:55%}}dialog::backdrop{background:#000;opacity:.5}dialog .close{color:inherit;cursor:pointer;position:absolute;right:1em;text-decoration:none!important;top:1em}.plugin-card{display:flex;flex-direction:column;height:100%;justify-content:space-between}.plugin-card .entry{display:inline-block;vertical-align:top}.plugin-card .entry-title{display:block;display:-webkit-box;font-size:var(--wp--preset--font-size--heading-5);font-weight:500;line-height:1.3;margin-bottom:2px!important;max-height:2.6em;overflow:hidden;-webkit-line-clamp:2;-webkit-box-orient:vertical}.plugin-card .entry-title a{display:block;text-decoration:none}.plugin-card .entry-title a:focus{box-shadow:none}.plugin-card .entry-excerpt{clear:both;font-size:var(--wp--preset--font-size--small)}.plugin-card .entry-excerpt p{margin:0}.plugin-card footer{font-size:var(--wp--preset--font-size--small);margin-top:var(--wp--style--block-gap)}.plugin-card footer span{color:var(--wp--preset--color--charcoal-4);display:inline-block;line-height:var(--wp--preset--font-size--normal);overflow:hidden}.plugin-card footer span.plugin-author{width:100%}.plugin-card footer span.plugin-author span{color:var(--wp--preset--color--charcoal-1)}.plugin-card footer span.plugin-author path{fill:var(--wp--preset--color--charcoal-1)}.plugin-card footer span svg{height:24px;vertical-align:bottom;width:24px}.plugin-card footer span svg path{fill:var(--wp--preset--color--charcoal-4)}.plugin-card footer span.active-installs{min-width:48%}.plugin-cards{cursor:pointer}.plugin-cards .is-style-cards-grid li:hover{background-color:#fff!important;border:1px solid var(--wp--preset--color--charcoal-1)!important}.plugin-cards .is-style-cards-grid li:focus-within{border-color:#0000;border-radius:2px;box-shadow:0 0 0 1.5px var(--wp--custom--link--color--text)}@media screen and (max-width:737px){.plugin-cards .is-style-cards-grid{grid-template-columns:100%}}.entry-thumbnail{display:none;margin-bottom:var(--wp--style--block-gap);margin-right:var(--wp--style--block-gap);max-width:80px}.entry-thumbnail .plugin-icon{background-size:cover;border-radius:var(--wp--custom--button--border--radius);display:block;height:80px;width:80px}@media screen and (min-width:21em){.entry-thumbnail{display:inline-block;float:left;vertical-align:top}}.single .entry-thumbnail{display:none;float:left;height:96px;margin-bottom:0;max-width:96px}@media screen and (min-width:26em){.single .entry-thumbnail{display:block}}.single .entry-thumbnail .plugin-icon{background-size:contain!important;height:96px!important;width:96px!important}.plugin-rating{line-height:1;margin:0 10px 8px 0}.plugin-rating .wporg-ratings{display:inline-block;margin-right:5px}.plugin-rating .rating-count{color:var(--wp--preset--color--charcoal-4);font-size:var(--wp--preset--font-size--extra-small);vertical-align:text-bottom}.plugin-rating .rating-count a{color:inherit;cursor:hand;text-decoration:none}[class*=dashicons-star-]{color:var(--wp--preset--color--pomegrade-1)}.rtl .dashicons-star-half{transform:rotateY(180deg)}#main .plugin-section{margin:0 auto var(--wp--preset--spacing--60)}#main .plugin-section:last-of-type{margin-bottom:0}#main .plugin-section .section-header{align-items:center;column-gap:10px;display:flex;justify-content:space-between;margin-bottom:var(--wp--style--block-gap)}#main .plugin-section .section-header>h2{margin-bottom:0}#main .plugin-section .section-link{align-self:center;flex:0 0 auto;text-decoration:underline}.pagination .nav-links{margin-top:var(--wp--style--block-gap);padding-top:var(--wp--style--block-gap);text-align:center}.pagination .nav-links a{text-decoration:none}.pagination .nav-links .page-numbers{cursor:pointer;display:inline-block;min-width:2em;padding:8px;text-align:center}.pagination .nav-links .page-numbers.dots,.pagination .nav-links .page-numbers.next,.pagination .nav-links .page-numbers.prev{background:none;font-size:.9em;width:auto}.pagination .nav-links .page-numbers.dots{cursor:inherit}@media screen and (max-width:737px){.pagination .nav-links .page-numbers.next,.pagination .nav-links .page-numbers.prev{font-size:0;min-width:auto;padding:0}.pagination .nav-links .page-numbers.next:after,.pagination .nav-links .page-numbers.prev:before{display:inline-block;font-size:medium;line-height:1.5;min-width:2em;padding:8px}.pagination .nav-links .page-numbers.prev:before{content:"‹"}.pagination .nav-links .page-numbers.next:after{content:"›"}}.pagination .nav-links span.page-numbers{font-weight:700}.pagination .nav-links span.page-numbers.current{text-decoration:underline}@keyframes favme-anime{0%{font-size:var(--wp--preset--font-size--large);opacity:1;-webkit-text-stroke-color:#0000}25%{color:#fff;font-size:var(--wp--preset--font-size--small);opacity:.6;-webkit-text-stroke-width:1px;-webkit-text-stroke-color:#dc3232}75%{color:#fff;font-size:var(--wp--preset--font-size--large);opacity:.6;-webkit-text-stroke-width:1px;-webkit-text-stroke-color:#dc3232}to{font-size:var(--wp--preset--font-size--normal);opacity:1;-webkit-text-stroke-color:#0000}}.plugin-favorite{height:calc(var(--wp--custom--button--spacing--padding--top)*2 + var(--wp--preset--font-size--normal)*2);text-align:center;vertical-align:top;width:36px}.plugin-favorite .plugin-favorite-heart{align-items:center;background:none;border:0;border-radius:0;box-shadow:none;color:#cbcdce;cursor:pointer;display:flex;font-size:var(--wp--preset--font-size--large);height:100%;justify-content:center;line-height:1;margin:0;outline:none;padding:0;text-decoration:none}.plugin-favorite .plugin-favorite-heart.favorited{color:#dc3232}.plugin-favorite .plugin-favorite-heart:focus,.plugin-favorite .plugin-favorite-heart:hover{color:var(----wp--preset--color--charcoal-2);text-decoration:none}.plugin-favorite .plugin-favorite-heart:after{content:"\f487";font-family:dashicons;vertical-align:top}.plugin-banner img{aspect-ratio:3.089;border-radius:var(--wp--custom--button--border--radius);display:block;margin:0 auto var(--wp--preset--spacing--30);width:100%}.plugin-releases{list-style-type:none;padding:0}.plugin-releases-item{border:1px solid var(--wp--preset--color--light-grey-1);border-radius:4px;margin-bottom:var(--wp--preset--spacing--30);padding:var(--wp--style--block-gap)}.plugin-releases-item-header{display:flex;justify-content:space-between}.plugin-releases-item-header h3{margin:0!important}@keyframes hideAnimation{to{visibility:hidden}}.categorization .help{color:var(--wp--preset--color--charcoal-4);display:inline-block;font-size:.8rem;margin-top:0}.categorization label{display:block;font-weight:700}.categorization input{width:100%}.categorization .success-msg{background:#eff7ed;border:solid #64b450;border-width:0 0 0 5px;font-size:.8rem;margin-left:1rem;opacity:0;overflow:auto;padding:.1rem .6rem .2rem;position:relative;transition:visibility 0s,opacity .5s linear;-webkit-user-select:none;user-select:none;visibility:hidden}.categorization .success-msg.saved{animation:hideAnimation 0s ease-in 5s;animation-fill-mode:forwards;opacity:1;visibility:visible}.plugin-changelog code{font-size:var(--wp--preset--font-size--small)}.plugin-developers .contributors-list li{align-items:center;display:flex;padding-bottom:var(--wp--style--block-gap)}@media screen and (min-width:500px){.plugin-developers .contributors-list{display:flex;flex-wrap:wrap}.plugin-developers .contributors-list li{padding-bottom:unset;width:50%}}.plugin-faq dl{border-bottom:1px solid var(--wp--preset--color--light-grey-1)}.plugin-faq dt{border-top:1px solid var(--wp--preset--color--light-grey-1);cursor:pointer;padding:1rem 0}.plugin-faq dt:before{content:"\f347";float:right;font-family:dashicons;margin:0 1rem}.plugin-faq dt.open:before{content:"\f343"}.plugin-faq dt .button-link{display:inherit;text-align:inherit}.plugin-faq dt .button-link.no-focus{box-shadow:none;outline:none}.plugin-faq dt h3{color:var(--wp--custom--link--color--text);display:inline;font-size:var(--wp--preset--font-size--normal);font-weight:400;margin-bottom:0;margin-top:0!important;text-decoration:underline}.plugin-faq dt h3 button{all:inherit;max-width:calc(100% - 60px)}.plugin-faq dt h3 button:focus,.plugin-faq dt h3 button:hover{text-decoration:underline}.plugin-faq dd{display:none;margin:0 0 1rem}.no-js .plugin-faq dd{display:block}.plugin-faq dd p{margin:0}.plugin-faq dd p+p{margin-top:1rem}.image-gallery{-webkit-user-select:none;user-select:none}.image-gallery-content{position:relative}.image-gallery-content .image-gallery-left-nav,.image-gallery-content .image-gallery-right-nav{border-color:var(--wp--preset--color--light-grey-1);display:none;font-size:48px;height:100%;position:absolute;top:0;transition:background .1s ease,border .1s ease;z-index:4}@media (max-width:768px){.image-gallery-content .image-gallery-left-nav,.image-gallery-content .image-gallery-right-nav{font-size:3.4em}}@media (min-width:768px){.image-gallery-content .image-gallery-left-nav:hover,.image-gallery-content .image-gallery-right-nav:hover{background:#fff;border:1px solid var(--wp--preset--color--light-grey-1);opacity:.8}}.image-gallery-content .image-gallery-left-nav:before,.image-gallery-content .image-gallery-right-nav:before{font-family:dashicons;position:relative}.image-gallery-content .image-gallery-left-nav{left:0}.image-gallery-content .image-gallery-left-nav:before{content:"\f341"}.image-gallery-content .image-gallery-left-nav:hover{margin-left:-1px}.image-gallery-content .image-gallery-right-nav{right:0}.image-gallery-content .image-gallery-right-nav:before{content:"\f345"}.image-gallery-content .image-gallery-right-nav:hover{margin-right:-1px}.image-gallery-content:hover .image-gallery-left-nav,.image-gallery-content:hover .image-gallery-right-nav{display:block}.image-gallery-slides{border:1px solid #eee;line-height:0;overflow:hidden;position:relative;white-space:nowrap}.image-gallery-slide{left:0;position:absolute;top:0;width:100%}.image-gallery-slide.center{position:relative}.image-gallery-slide .image-gallery-image{margin:0}.image-gallery-slide img{display:block;margin:0 auto}.image-gallery-slide .image-gallery-description{background:var(--wp--preset--color--light-grey-2);color:var(--wp--preset--color--charcoal-1);font-size:var(--wp--preset--font-size--small);line-height:1.5;padding:10px 20px;white-space:normal}@media (max-width:768px){.image-gallery-slide .image-gallery-description{padding:8px 15px}}.image-gallery-thumbnails{background:#fff;margin-top:5px}.image-gallery-thumbnails .image-gallery-thumbnails-container{cursor:pointer;text-align:center;white-space:nowrap}.image-gallery-thumbnail{border:1px solid #eee;display:table-cell;margin-right:5px;max-height:100px;overflow:hidden}.image-gallery-thumbnail .image-gallery-image{margin:0}.image-gallery-thumbnail img{vertical-align:middle;width:100px}@media (max-width:768px){.image-gallery-thumbnail img{width:75px}}.image-gallery-thumbnail:hover{box-shadow:0 1px 8px #0000004d}.image-gallery-thumbnail.active{border:1px solid #337ab7}.image-gallery-thumbnail-label{color:#222;font-size:1em}@media (max-width:768px){.image-gallery-thumbnail-label{font-size:.8em}}.image-gallery-index{background:#0006;bottom:0;color:#fff;line-height:1;padding:10px 20px;position:absolute;right:0;z-index:4}.plugin-reviews{list-style-type:none;margin:0;padding:0}.plugin-reviews .plugin-review{border-bottom:1px solid var(--wp--preset--color--light-grey-1);margin:2rem 0 1rem;padding-bottom:1rem}.plugin-reviews .plugin-review a{text-decoration:none}.plugin-reviews .plugin-review:first-child{margin-top:0}.plugin-reviews .plugin-review .header-top{display:flex}.plugin-reviews .plugin-review .header-top .wporg-ratings{flex-shrink:0}.plugin-reviews .plugin-review .header-bottom{display:flex;margin-top:4px}.plugin-reviews .review-avatar{display:none}.plugin-reviews .review,.plugin-reviews .review-author,.plugin-reviews .wporg-ratings{display:inline-block;vertical-align:top}.plugin-reviews .review-header{margin:0 0 .5rem}.plugin-reviews .review-title{font-size:var(--wp--preset--font-size--normal);font-weight:500;margin:2px 0 0 12px!important;text-transform:inherit}.plugin-reviews .review-author,.plugin-reviews .review-date,.plugin-reviews .review-replies{font-size:var(--wp--preset--font-size--extra-small);line-height:1.25}.plugin-reviews .review-date,.plugin-reviews .review-replies{color:var(--wp--preset--color--charcoal-4);font-size:var(--wp--preset--font-size--extra-small);margin-left:12px}.plugin-reviews .review-replies:before{content:"•";margin-right:12px}.plugin-reviews .review-content{margin:1em 0}@media screen and (min-width:737px){.plugin-reviews .review-avatar{display:inline-block;vertical-align:top}.plugin-reviews .review-avatar .avatar{margin-right:1rem}.plugin-reviews .review{width:calc(100% - 60px - 1rem)}.plugin-reviews .review-header{margin:0}.plugin-reviews .review-author,.plugin-reviews .review-date,.plugin-reviews .review-replies{line-height:1}}.plugin-reviews .reviews-link{display:inline-block;font-size:var(--wp--preset--font-size--small);text-decoration:none}.plugin-reviews .reviews-link:after{content:"\f345";float:right;font-family:dashicons;padding-left:5px;position:relative;top:1px;vertical-align:text-top}.plugin-screenshots{list-style-type:none;margin:0;padding:0}.plugin-screenshots .image-gallery-content{display:table;width:100%}.plugin-screenshots .image-gallery-slides{display:table-cell;max-height:600px}.plugin-screenshots .image-gallery-image img{max-height:550px;max-width:100%}.plugin-screenshots .image-gallery-thumbnail{vertical-align:top}.plugin-screenshots .image-gallery-thumbnail img{max-height:100px}.plugin-screenshots .image-gallery-thumbnails{overflow:hidden}.download-history-stats td{text-align:right}.previous-versions{max-width:60%}@media screen and (min-width:737px){.previous-versions{height:32px;vertical-align:middle}}hr{margin:2.5rem auto}.section h1:nth-child(2),.section h2:nth-child(2),.section h3:nth-child(2),.section h4:nth-child(2),.section h5:nth-child(2),.section h6:nth-child(2){margin-top:0}.section-heading{font-family:var(--wp--preset--font-family--inter)!important;font-size:var(--wp--preset--font-size--heading-5)!important;font-style:normal;font-weight:600;line-height:var(--wp--custom--heading--level-5--typography--line-height)}.section-intro{color:var(--wp--preset--color--charcoal-4);font-size:var(--wp--preset--font-size--small);margin-bottom:var(--wp--preset--spacing--20);margin-top:var(--wp--preset--spacing--10)}.type-plugin .plugin-notice{margin-top:0}.type-plugin .plugin-header{border-bottom:0;padding-top:var(--wp--preset--spacing--40)}.type-plugin .plugin-header:after,.type-plugin .plugin-header:before{content:"";display:table;table-layout:fixed}.type-plugin .plugin-header:after{clear:both}.type-plugin .plugin-header .entry-heading-container{display:flex;flex-direction:column;justify-content:space-between}@media screen and (max-width:599px){.type-plugin .plugin-header .entry-heading-container{--wp--custom--button--spacing--padding--top:12px;--wp--custom--button--spacing--padding--bottom:12px;--wp--custom--button--spacing--padding--left:16px;--wp--custom--button--spacing--padding--right:16px}}@media screen and (min-width:700px){.type-plugin .plugin-header .entry-heading-container{flex-direction:row}}.type-plugin .plugin-header .entry-heading-container>:first-child{align-items:center;display:flex;flex:1}.type-plugin .plugin-header .plugin-actions{align-items:center;display:flex;gap:16px;margin-top:var(--wp--style--block-gap)}@media screen and (min-width:700px){.type-plugin .plugin-header .plugin-actions{margin-top:0;margin-inline-start:1rem}}.type-plugin .plugin-header .plugin-actions>.button,.type-plugin .plugin-header .plugin-actions>div{display:inline-block;text-align:center}@media screen and (max-width:34em){.type-plugin .plugin-header .plugin-actions>.button.download-button{display:none}}.type-plugin .plugin-header .plugin-title{clear:none;font-size:var(--wp--preset--font-size--heading-3);font-weight:400;line-height:var(--wp--custom--heading--level-3--typography--line-height);margin:0}.type-plugin .plugin-header .plugin-title a{color:inherit;text-decoration:none}.type-plugin .plugin-header .plugin-title a:hover{text-decoration:underline}.type-plugin .plugin-header .byline{color:var(--wp--preset--color--charcoal-4);display:block;margin-top:4px}.type-plugin .plugin-banner+.plugin-header{padding-top:0}.type-plugin .plugin-banner+.plugin-header>.notice:first-of-type{margin-top:0}.type-plugin .tabs{border-bottom:1px solid var(--wp--preset--color--light-grey-1);list-style:none;margin:0}.type-plugin .tabs li{border:1px solid #0000;display:inline-block;font-size:.9rem;margin-bottom:-1px;transition:background .2s ease}.type-plugin .tabs li a{background:#fff;border:0;color:var(--wp--preset--color--charcoal-1);display:block;font-size:var(--wp--preset--font-size--normal);padding:.64rem 1.25rem;text-decoration:none}.type-plugin .tabs li a.active,.type-plugin .tabs li a:hover{background:var(--wp--preset--color--light-grey-2)!important}.type-plugin .tabs li.active,.type-plugin .tabs li:hover{border:1px solid var(--wp--preset--color--light-grey-1)}@media screen and (max-width:38em){.type-plugin .tabs{border-top:1px solid var(--wp--preset--color--light-grey-1)}.type-plugin .tabs li{display:block;margin-bottom:1px}.type-plugin .tabs li,.type-plugin .tabs li.active,.type-plugin .tabs li:hover{border:none;border-bottom:1px solid var(--wp--preset--color--light-grey-1)}}@media screen and (min-width:737px){.type-plugin .entry-content{float:left;padding:0;width:65%}}.type-plugin .entry-content>div,.type-plugin .entry-content>div~button{border:0;display:none}.type-plugin .entry-content ol>li>p,.type-plugin .entry-content ul>li>p{margin:0}.type-plugin .entry-content #admin{display:block!important}.type-plugin .plugin-blocks-list{list-style:none;margin-left:0;padding-left:0}.type-plugin .plugin-blocks-list .plugin-blocks-list-item{display:grid;grid-template-columns:auto 1fr;margin-bottom:var(--wp--style--block-gap)}.type-plugin .plugin-blocks-list .block-icon{border:1px solid var(--wp--preset--color--light-grey-1);border-radius:2px;display:inline-block;height:3.5rem;line-height:16px;margin-right:var(--wp--style--block-gap);padding:var(--wp--style--block-gap);width:3.5rem}.type-plugin .plugin-blocks-list .block-icon.dashicons{color:inherit}.type-plugin .plugin-blocks-list .block-icon.dashicons:before{margin-left:-3px}.type-plugin .plugin-blocks-list .block-icon svg{height:16px;width:16px;fill:currentColor;margin-left:-1px}.type-plugin .plugin-blocks-list .block-title{align-self:center;font-weight:700}.type-plugin .plugin-blocks-list .has-description .block-icon{grid-row:1/span 2}.type-plugin .plugin-blocks-list .has-description .block-title{margin-bottom:.4em}.type-plugin span#description,.type-plugin span#developers,.type-plugin span#installation,.type-plugin span#releases,.type-plugin span#reviews{position:fixed}.type-plugin span#advanced.displayed~#section-links .tabs li#tablink-advanced,.type-plugin span#developers:target~#section-links .tabs li#tablink-developers,.type-plugin span#installation:target~#section-links .tabs li#tablink-installation,.type-plugin span#releases:target~#section-links .tabs li#tablink-releases,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~span#advanced:not(.displayed)~#section-links .tabs li#tablink-description,.type-plugin span#reviews:target~#section-links .tabs li#tablink-reviews{background:#fff;border:1px solid var(--wp--preset--color--light-grey-1);border-bottom:0;padding-bottom:1px}@media screen and (max-width:38em){.type-plugin span#advanced.displayed~#section-links .tabs li#tablink-advanced.active,.type-plugin span#advanced.displayed~#section-links .tabs li#tablink-advanced:hover,.type-plugin span#developers:target~#section-links .tabs li#tablink-developers.active,.type-plugin span#developers:target~#section-links .tabs li#tablink-developers:hover,.type-plugin span#installation:target~#section-links .tabs li#tablink-installation.active,.type-plugin span#installation:target~#section-links .tabs li#tablink-installation:hover,.type-plugin span#releases:target~#section-links .tabs li#tablink-releases.active,.type-plugin span#releases:target~#section-links .tabs li#tablink-releases:hover,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~span#advanced:not(.displayed)~#section-links .tabs li#tablink-description.active,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~span#advanced:not(.displayed)~#section-links .tabs li#tablink-description:hover,.type-plugin span#reviews:target~#section-links .tabs li#tablink-reviews.active,.type-plugin span#reviews:target~#section-links .tabs li#tablink-reviews:hover{padding-bottom:1px!important}}.type-plugin span#section-links{display:flex;flex-flow:row wrap;margin-top:var(--wp--preset--spacing--30)}.type-plugin span#section-links .tabs{flex:1 1 auto;padding-left:0}@media screen and (max-width:38em){.type-plugin span#section-links .tabs{border:1px solid var(--wp--preset--color--light-grey-1)!important}.type-plugin span#section-links .tabs li{border:none!important}.type-plugin span#section-links{display:block}}.type-plugin #link-support{align-self:flex-end;border-bottom:1px solid var(--wp--preset--color--light-grey-1);flex:0 0 auto;font-size:.9rem}.type-plugin #link-support a{display:inline-block;font-size:var(--wp--preset--font-size--normal);padding:.64rem 0 .64rem 1.25rem}@media screen and (max-width:38em){.type-plugin #link-support{border-bottom:0;display:block;width:100%}.type-plugin #link-support a{padding-right:1.25rem}}.type-plugin span#developers:target~.entry-content #tab-changelog,.type-plugin span#developers:target~.entry-content #tab-developers,.type-plugin span#developers:target~.entry-content #tab-developers .plugin-development,.type-plugin span#developers:target~.entry-content #tab-developers~button,.type-plugin span#installation:target~.entry-content #tab-installation,.type-plugin span#releases:target~.entry-content #tab-releases,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~.entry-content #blocks,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~.entry-content #faq,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~.entry-content #screenshots,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~.entry-content #tab-description,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~.entry-content #tab-developers,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~.entry-content #tab-developers~button,.type-plugin span#reviews:target~.entry-content #tab-reviews{display:block}.type-plugin span#developers:target~.entry-content #tab-developers .plugin-contributors,.type-plugin span#installation:target~.entry-meta .plugin-contributors,.type-plugin span#releases:target~.entry-meta,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~.entry-content #tab-developers .plugin-development,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~.entry-meta .plugin-contributors,.type-plugin span#reviews:target~.entry-meta .plugin-contributors,.type-plugin span#reviews:target~.entry-meta .plugin-donate,.type-plugin span#reviews:target~.entry-meta .plugin-meta,.type-plugin span#reviews:target~.entry-meta .plugin-support{display:none}.type-plugin span#releases:target~.entry-content{width:100%}@media screen and (min-width:737px){.type-plugin .entry-content,.type-plugin .entry-meta{padding-left:0;padding-right:0}.type-plugin .entry-meta{float:right;width:30%}}.type-plugin .plugin-danger-zone h4{margin-top:var(--wp--preset--spacing--60)}.plugin-releases-listing{border-collapse:collapse;width:100%}.plugin-releases-listing tbody td:nth-child(4) div{font-size:14px}.plugin-releases-listing-actions{display:flex;flex-direction:column;gap:8px}@media screen and (min-width:34em){.plugin-releases-listing-actions{flex-direction:row}}.plugin-adopt-me{background:#e6f4fa;margin-top:36px;padding:12px}.plugin-adopt-me .widget-title{margin-top:0}.plugin-adopt-me p{margin-bottom:0}.widget.plugin-categorization{margin-top:var(--wp--style--block-gap)}.widget.plugin-categorization .widget-head h2{font-size:var(--wp--preset--font-size--heading-4);margin-bottom:.2rem;margin-top:0}.widget.plugin-categorization .widget-head a{font-size:var(--wp--preset--font-size--small)}.widget.plugin-categorization .widget-head a[href=""]{display:none}.widget.plugin-categorization p{font-size:var(--wp--preset--font-size--small);margin-top:.5rem}.widget.plugin-categorization~.plugin-meta li:first-child{border-top:1px solid var(--wp--preset--color--light-grey-1)}.committer-list,.support-rep-list{list-style:none;margin:0;padding:0}.committer-list li,.support-rep-list li{padding-bottom:.5rem}.committer-list li .remove,.support-rep-list li .remove{color:red;visibility:hidden}.committer-list li:hover .remove,.support-rep-list li:hover .remove{visibility:visible}.committer-list .avatar,.support-rep-list .avatar{float:left;margin-right:10px}.committer-list .spinner,.support-rep-list .spinner{position:relative}.committer-list .spinner:after,.support-rep-list .spinner:after{background:url(/wp-admin/images/spinner.gif) no-repeat 50%;background-size:20px 20px;content:"";display:block;height:20px;margin:-10px -10px 0 0;position:absolute;right:-50%;top:50%;transform:translateZ(0);width:20px}@media (min-resolution:120dpi),print{.committer-list .spinner:after,.support-rep-list .spinner:after{background-image:url(/wp-admin/images/spinner-2x.gif)}}.committer-list .new,.support-rep-list .new{margin-top:var(--wp--style--block-gap)}.plugin-contributors.read-more{border-bottom:1px solid var(--wp--preset--color--light-grey-1);max-height:200px;overflow:hidden;padding-bottom:1px}.plugin-contributors.read-more.toggled{max-height:none}.no-js .plugin-contributors.read-more{max-height:none;overflow:auto}.contributors-list{list-style-type:none;margin:0;padding:0}.contributors-list li{align-items:center;display:flex;margin-bottom:1rem}.contributors-list .avatar{float:left;margin-right:10px}.plugin-meta{font-size:var(--wp--preset--font-size--small);margin-top:var(--wp--style--block-gap)}.plugin-meta ul{list-style-type:none;margin:0;padding:0}.plugin-meta li{border-top:1px solid var(--wp--preset--color--light-grey-1);display:inline-block;padding:.5rem 0;position:relative;width:100%}.plugin-meta li strong{float:right;font-weight:500}.plugin-meta li .plugin-admin{font-size:var(--wp--preset--font-size--normal);font-weight:400}.plugin-meta li:first-child{border-top:0}.plugin-meta .languages,.plugin-meta .tags{float:right;text-align:right}.plugin-meta .tags{width:60%}.plugin-meta .languages button{font-size:var(--wp--preset--font-size--small);outline:revert}.plugin-meta .languages .popover{margin-top:8px}.plugin-meta .languages .popover-trigger{color:var(--wp--custom--link--color--text);text-decoration:underline}.plugin-meta .languages .popover-trigger:hover{text-decoration:underline}.plugin-meta [rel=tag]{background:var(--wp--preset--color--blueberry-4);border-radius:2px;color:var(--wp--preset--color--charcoal-1);display:inline-block;font-size:var(--wp--preset--font-size--extra-small);margin:2px;max-width:95%;overflow:hidden;padding:3px 6px;position:relative;text-decoration:none;text-overflow:ellipsis;white-space:nowrap;width:auto}.plugin-meta [rel=tag]:hover{text-decoration:underline}.popover{background-color:#fff;border:1px solid var(--wp--preset--color--light-grey-1);border-radius:2px;box-shadow:0 2px 10px #0000001a;display:none;left:0;margin-top:10px;max-width:300px;padding:1em 1em 2em;position:absolute;width:100%;z-index:100}.popover.is-top-right{left:auto;right:0}.popover.is-visible{display:block}.popover .popover-close{bottom:.5em;color:var(--wp--custom--link--color--text);font-size:small;position:absolute;right:.6em}.popover .popover-close:active,.popover .popover-close:focus,.popover .popover-close:hover{text-decoration:underline}.popover .popover-arrow{border:10px solid #0000;border-bottom:10px solid #ccc;border-top:none;height:0;position:absolute;right:20px;top:-10px;width:0;z-index:-1}.popover .popover-arrow:after{border:10px solid #0000;border-bottom:10px solid #fff;border-top:none;content:"";left:-10px;position:absolute;top:2px}.popover .popover-inner{text-align:left}.popover .popover-inner p:first-child{margin-top:0}.popover .popover-inner p:last-child{margin-bottom:0}.plugin-support .counter-container{margin-bottom:1rem;position:relative}.plugin-support .counter-back,.plugin-support .counter-bar{display:inline-block;height:30px;vertical-align:middle}.plugin-support .counter-back{background-color:var(--wp--preset--color--light-grey-2);width:100%}.plugin-support .counter-bar{background-color:var(--wp--preset--color--acid-green-2);display:block}.plugin-support .counter-count{font-size:var(--wp--preset--font-size--extra-small);left:8px;position:absolute;top:8px;width:100%;width:calc(100% - 8px)}@media screen and (min-width:737px){.plugin-support .counter-count{top:5px}}.home .widget,.widget-area.home .widget{display:inline-block;font-size:var(--wp--preset--font-size--small);margin:0;margin:var(--wp--style--block-gap);vertical-align:top;width:auto}@media screen and (min-width:737px){.home .widget,.widget-area.home .widget{margin:0;width:30%}.home .widget:first-child,.widget-area.home .widget:first-child{margin-right:5%}.home .widget:last-child,.widget-area.home .widget:last-child{margin-left:5%}}.home .widget select,.widget-area.home .widget select{max-width:100%}.entry-meta .widget-title{font-size:var(--wp--preset--font-size--heading-4)}body.single.single-plugin .entry-meta{font-size:var(--wp--preset--font-size--normal)}.widget-area{margin:0 auto;padding:var(--wp--preset--spacing--40) 0}.widget-area .widget-title{font-size:var(--wp--preset--font-size--heading-1);font-weight:var(--wp--custom--heading--typography--font-weight);margin-top:var(--wp--preset--spacing--50)}.widget-area .textwidget{text-wrap:pretty} \ No newline at end of file From 1cfb49dfdf74073f10b5946a3338d6041dd4dc16 Mon Sep 17 00:00:00 2001 From: StevenDufresne Date: Mon, 18 Nov 2024 05:46:51 +0000 Subject: [PATCH 07/84] Cleanup, finish subnav. --- .../build/blocks/archive-page/index.asset.php | 2 +- .../build/blocks/archive-page/index.js | 184 ++++++++++- .../category-navigation/index.asset.php | 2 +- .../build/blocks/category-navigation/index.js | 184 ++++++++++- .../build/blocks/filter-bar/index.asset.php | 2 +- .../build/blocks/filter-bar/index.js | 184 ++++++++++- .../build/blocks/front-page/index.asset.php | 2 +- .../build/blocks/front-page/index.js | 184 ++++++++++- .../build/blocks/plugin-card/index.asset.php | 2 +- .../build/blocks/plugin-card/index.js | 184 ++++++++++- .../build/blocks/plugin-card/view.asset.php | 2 +- .../build/blocks/plugin-card/view.js | 37 ++- .../blocks/release-checks/index.asset.php | 2 +- .../build/blocks/release-checks/index.js | 299 +++++++++++++++++- .../blocks/release-checks/style-index.css | 3 + .../release-confirmation/index.asset.php | 2 +- .../blocks/release-confirmation/index.js | 299 +++++++++++++++++- .../blocks/release-confirmation/render.php | 77 +++-- .../release-confirmation/style-index.css | 10 +- .../{releases => release-date}/block.json | 9 +- .../index.asset.php | 2 +- .../build/blocks/release-date/index.js | 183 +++++++++++ .../build/blocks/release-date/render.php | 18 ++ .../blocks/release-menu-options/block.json | 19 ++ .../release-menu-options/index.asset.php | 1 + .../blocks/release-menu-options/index.js | 298 +++++++++++++++++ .../blocks/release-menu-options/render.php | 37 +++ .../release-menu-options/style-index.css | 61 ++++ .../release-menu-options/view.asset.php | 1 + .../build/blocks/release-menu-options/view.js | 88 ++++++ .../build/blocks/release-status/block.json | 2 +- .../blocks/release-status/index.asset.php | 2 +- .../build/blocks/release-status/index.js | 299 +++++++++++++++++- .../build/blocks/release-status/render.php | 12 +- .../blocks/release-status/style-index.css | 12 +- .../build/blocks/releases/index.js | 1 - .../build/blocks/releases/render.php | 50 --- .../build/blocks/releases/style-index.css | 1 - .../build/blocks/search-page/index.asset.php | 2 +- .../build/blocks/search-page/index.js | 184 ++++++++++- .../blocks/single-plugin/index.asset.php | 2 +- .../build/blocks/single-plugin/index.js | 184 ++++++++++- .../pub/wporg-plugins-2024/functions.php | 2 + .../wporg-plugins-2024/inc/block-config.php | 14 + .../pub/wporg-plugins-2024/package.json | 4 +- .../wporg-plugins-2024/parts/releases.html | 76 +++-- .../patterns/releases-no-results.php | 3 +- .../blocks/release-confirmation/render.php | 77 +++-- .../blocks/release-confirmation/style.scss | 5 +- .../{releases => release-date}/block.json | 7 +- .../src/blocks/release-date/index.js | 27 ++ .../{releases => release-date}/index.php | 4 +- .../src/blocks/release-date/render.php | 18 ++ .../blocks/release-menu-options/block.json | 17 + .../index.js | 0 .../src/blocks/release-menu-options/index.php | 22 ++ .../blocks/release-menu-options/render.php | 37 +++ .../blocks/release-menu-options/style.scss | 64 ++++ .../src/blocks/release-menu-options/view.js | 27 ++ .../src/blocks/release-status/block.json | 2 +- .../src/blocks/release-status/render.php | 12 +- .../src/blocks/release-status/style.scss | 8 +- .../src/blocks/releases/render.php | 50 --- .../src/blocks/releases/style.scss | 4 - 64 files changed, 3331 insertions(+), 278 deletions(-) rename wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/{releases => release-date}/block.json (68%) rename wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/{releases => release-date}/index.asset.php (77%) create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-date/index.js create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-date/render.php create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-menu-options/block.json create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-menu-options/index.asset.php create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-menu-options/index.js create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-menu-options/render.php create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-menu-options/style-index.css create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-menu-options/view.asset.php create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-menu-options/view.js delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/releases/index.js delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/releases/render.php delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/releases/style-index.css rename wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/{releases => release-date}/block.json (69%) create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-date/index.js rename wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/{releases => release-date}/index.php (78%) create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-date/render.php create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-menu-options/block.json rename wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/{releases => release-menu-options}/index.js (100%) create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-menu-options/index.php create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-menu-options/render.php create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-menu-options/style.scss create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-menu-options/view.js delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/releases/render.php delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/releases/style.scss diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/archive-page/index.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/archive-page/index.asset.php index d7b228686a..9202f58eda 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/archive-page/index.asset.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/archive-page/index.asset.php @@ -1 +1 @@ - array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => '8627e1da9b24373a1f90'); + array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => '7f26875761f01d13f9dd'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/archive-page/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/archive-page/index.js index 1b86a728bd..772b3d2c7e 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/archive-page/index.js +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/archive-page/index.js @@ -1 +1,183 @@ -(()=>{"use strict";var e={n:t=>{var r=t&&t.__esModule?()=>t.default:()=>t;return e.d(r,{a:r}),r},d:(t,r)=>{for(var o in r)e.o(r,o)&&!e.o(t,o)&&Object.defineProperty(t,o,{enumerable:!0,get:r[o]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t)};const t=window.React,r=window.wp.components,o=window.wp.blocks,n=window.wp.serverSideRender;var a=e.n(n);const c=window.wp.blockEditor,i=JSON.parse('{"u2":"wporg/archive-page"}');(0,o.registerBlockType)(i.u2,{edit:function({attributes:e,name:o}){return(0,t.createElement)("div",{...(0,c.useBlockProps)()},(0,t.createElement)(r.Disabled,null,(0,t.createElement)(a(),{block:o,attributes:e})))},save:()=>null})})(); \ No newline at end of file +/******/ (() => { // webpackBootstrap +/******/ "use strict"; +/******/ var __webpack_modules__ = ({ + +/***/ "react": +/*!************************!*\ + !*** external "React" ***! + \************************/ +/***/ ((module) => { + +module.exports = window["React"]; + +/***/ }), + +/***/ "@wordpress/block-editor": +/*!*************************************!*\ + !*** external ["wp","blockEditor"] ***! + \*************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["blockEditor"]; + +/***/ }), + +/***/ "@wordpress/blocks": +/*!********************************!*\ + !*** external ["wp","blocks"] ***! + \********************************/ +/***/ ((module) => { + +module.exports = window["wp"]["blocks"]; + +/***/ }), + +/***/ "@wordpress/components": +/*!************************************!*\ + !*** external ["wp","components"] ***! + \************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["components"]; + +/***/ }), + +/***/ "@wordpress/server-side-render": +/*!******************************************!*\ + !*** external ["wp","serverSideRender"] ***! + \******************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["serverSideRender"]; + +/***/ }), + +/***/ "./src/blocks/archive-page/block.json": +/*!********************************************!*\ + !*** ./src/blocks/archive-page/block.json ***! + \********************************************/ +/***/ ((module) => { + +module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"wporg/archive-page","version":"0.1.0","title":"Archive Page Content","category":"design","icon":"","description":"A block that displays the archive page content","textdomain":"wporg","attributes":{},"supports":{"html":false},"editorScript":"file:./index.js","render":"file:./render.php"}'); + +/***/ }) + +/******/ }); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ // no module.id needed +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/************************************************************************/ +/******/ /* webpack/runtime/compat get default export */ +/******/ (() => { +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = (module) => { +/******/ var getter = module && module.__esModule ? +/******/ () => (module['default']) : +/******/ () => (module); +/******/ __webpack_require__.d(getter, { a: getter }); +/******/ return getter; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/define property getters */ +/******/ (() => { +/******/ // define getter functions for harmony exports +/******/ __webpack_require__.d = (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 */ +/******/ (() => { +/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) +/******/ })(); +/******/ +/******/ /* webpack/runtime/make namespace object */ +/******/ (() => { +/******/ // define __esModule on exports +/******/ __webpack_require__.r = (exports) => { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ })(); +/******/ +/************************************************************************/ +var __webpack_exports__ = {}; +// This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk. +(() => { +/*!******************************************!*\ + !*** ./src/blocks/archive-page/index.js ***! + \******************************************/ +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); +/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/blocks */ "@wordpress/blocks"); +/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/server-side-render */ "@wordpress/server-side-render"); +/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/block-editor */ "@wordpress/block-editor"); +/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__); +/* harmony import */ var _block_json__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./block.json */ "./src/blocks/archive-page/block.json"); + +/** + * WordPress dependencies + */ + + + + + +/** + * Internal dependencies + */ + +function Edit({ + attributes, + name +}) { + return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", { + ...(0,_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__.useBlockProps)() + }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Disabled, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)((_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default()), { + block: name, + attributes: attributes + }))); +} +(0,_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__.registerBlockType)(_block_json__WEBPACK_IMPORTED_MODULE_5__.name, { + edit: Edit, + save: () => null +}); +})(); + +/******/ })() +; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/category-navigation/index.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/category-navigation/index.asset.php index ab2fb9f31a..94878f12bf 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/category-navigation/index.asset.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/category-navigation/index.asset.php @@ -1 +1 @@ - array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => '6bce91817a063cdf476d'); + array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => '9b7cfda9379a258a4745'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/category-navigation/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/category-navigation/index.js index e8e14d7ec6..a639fdc3e3 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/category-navigation/index.js +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/category-navigation/index.js @@ -1 +1,183 @@ -(()=>{"use strict";var e={n:t=>{var r=t&&t.__esModule?()=>t.default:()=>t;return e.d(r,{a:r}),r},d:(t,r)=>{for(var o in r)e.o(r,o)&&!e.o(t,o)&&Object.defineProperty(t,o,{enumerable:!0,get:r[o]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t)};const t=window.React,r=window.wp.components,o=window.wp.blocks,n=window.wp.serverSideRender;var a=e.n(n);const i=window.wp.blockEditor,c=JSON.parse('{"u2":"wporg/category-navigation"}');(0,o.registerBlockType)(c.u2,{edit:function({attributes:e,name:o}){return(0,t.createElement)("div",{...(0,i.useBlockProps)()},(0,t.createElement)(r.Disabled,null,(0,t.createElement)(a(),{block:o,attributes:e})))},save:()=>null})})(); \ No newline at end of file +/******/ (() => { // webpackBootstrap +/******/ "use strict"; +/******/ var __webpack_modules__ = ({ + +/***/ "react": +/*!************************!*\ + !*** external "React" ***! + \************************/ +/***/ ((module) => { + +module.exports = window["React"]; + +/***/ }), + +/***/ "@wordpress/block-editor": +/*!*************************************!*\ + !*** external ["wp","blockEditor"] ***! + \*************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["blockEditor"]; + +/***/ }), + +/***/ "@wordpress/blocks": +/*!********************************!*\ + !*** external ["wp","blocks"] ***! + \********************************/ +/***/ ((module) => { + +module.exports = window["wp"]["blocks"]; + +/***/ }), + +/***/ "@wordpress/components": +/*!************************************!*\ + !*** external ["wp","components"] ***! + \************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["components"]; + +/***/ }), + +/***/ "@wordpress/server-side-render": +/*!******************************************!*\ + !*** external ["wp","serverSideRender"] ***! + \******************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["serverSideRender"]; + +/***/ }), + +/***/ "./src/blocks/category-navigation/block.json": +/*!***************************************************!*\ + !*** ./src/blocks/category-navigation/block.json ***! + \***************************************************/ +/***/ ((module) => { + +module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"wporg/category-navigation","version":"0.2.0","title":"Category Navigation","category":"design","icon":"","description":"Adds the category navigation menu","textdomain":"wporg","attributes":{},"supports":{"html":false},"editorScript":"file:./index.js","render":"file:./render.php"}'); + +/***/ }) + +/******/ }); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ // no module.id needed +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/************************************************************************/ +/******/ /* webpack/runtime/compat get default export */ +/******/ (() => { +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = (module) => { +/******/ var getter = module && module.__esModule ? +/******/ () => (module['default']) : +/******/ () => (module); +/******/ __webpack_require__.d(getter, { a: getter }); +/******/ return getter; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/define property getters */ +/******/ (() => { +/******/ // define getter functions for harmony exports +/******/ __webpack_require__.d = (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 */ +/******/ (() => { +/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) +/******/ })(); +/******/ +/******/ /* webpack/runtime/make namespace object */ +/******/ (() => { +/******/ // define __esModule on exports +/******/ __webpack_require__.r = (exports) => { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ })(); +/******/ +/************************************************************************/ +var __webpack_exports__ = {}; +// This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk. +(() => { +/*!*************************************************!*\ + !*** ./src/blocks/category-navigation/index.js ***! + \*************************************************/ +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); +/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/blocks */ "@wordpress/blocks"); +/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/server-side-render */ "@wordpress/server-side-render"); +/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/block-editor */ "@wordpress/block-editor"); +/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__); +/* harmony import */ var _block_json__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./block.json */ "./src/blocks/category-navigation/block.json"); + +/** + * WordPress dependencies + */ + + + + + +/** + * Internal dependencies + */ + +function Edit({ + attributes, + name +}) { + return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", { + ...(0,_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__.useBlockProps)() + }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Disabled, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)((_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default()), { + block: name, + attributes: attributes + }))); +} +(0,_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__.registerBlockType)(_block_json__WEBPACK_IMPORTED_MODULE_5__.name, { + edit: Edit, + save: () => null +}); +})(); + +/******/ })() +; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/filter-bar/index.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/filter-bar/index.asset.php index 32cfe90ff5..922b695350 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/filter-bar/index.asset.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/filter-bar/index.asset.php @@ -1 +1 @@ - array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => '4e25fbe50d772f6a1559'); + array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => 'fe9a74e9340bde2c89fa'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/filter-bar/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/filter-bar/index.js index 3662ea6f71..1d81e7ca65 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/filter-bar/index.js +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/filter-bar/index.js @@ -1 +1,183 @@ -(()=>{"use strict";var e={n:t=>{var r=t&&t.__esModule?()=>t.default:()=>t;return e.d(r,{a:r}),r},d:(t,r)=>{for(var o in r)e.o(r,o)&&!e.o(t,o)&&Object.defineProperty(t,o,{enumerable:!0,get:r[o]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t)};const t=window.React,r=window.wp.components,o=window.wp.blocks,n=window.wp.serverSideRender;var a=e.n(n);const l=window.wp.blockEditor,i=JSON.parse('{"u2":"wporg/filter-bar"}');(0,o.registerBlockType)(i.u2,{edit:function({attributes:e,name:o}){return(0,t.createElement)("div",{...(0,l.useBlockProps)()},(0,t.createElement)(r.Disabled,null,(0,t.createElement)(a(),{block:o,attributes:e})))},save:()=>null})})(); \ No newline at end of file +/******/ (() => { // webpackBootstrap +/******/ "use strict"; +/******/ var __webpack_modules__ = ({ + +/***/ "react": +/*!************************!*\ + !*** external "React" ***! + \************************/ +/***/ ((module) => { + +module.exports = window["React"]; + +/***/ }), + +/***/ "@wordpress/block-editor": +/*!*************************************!*\ + !*** external ["wp","blockEditor"] ***! + \*************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["blockEditor"]; + +/***/ }), + +/***/ "@wordpress/blocks": +/*!********************************!*\ + !*** external ["wp","blocks"] ***! + \********************************/ +/***/ ((module) => { + +module.exports = window["wp"]["blocks"]; + +/***/ }), + +/***/ "@wordpress/components": +/*!************************************!*\ + !*** external ["wp","components"] ***! + \************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["components"]; + +/***/ }), + +/***/ "@wordpress/server-side-render": +/*!******************************************!*\ + !*** external ["wp","serverSideRender"] ***! + \******************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["serverSideRender"]; + +/***/ }), + +/***/ "./src/blocks/filter-bar/block.json": +/*!******************************************!*\ + !*** ./src/blocks/filter-bar/block.json ***! + \******************************************/ +/***/ ((module) => { + +module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"wporg/filter-bar","version":"0.2.0","title":"Filter Bar","category":"design","icon":"","description":"Adds a filter bar","textdomain":"wporg","attributes":{},"supports":{"html":false},"editorScript":"file:./index.js","render":"file:./render.php"}'); + +/***/ }) + +/******/ }); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ // no module.id needed +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/************************************************************************/ +/******/ /* webpack/runtime/compat get default export */ +/******/ (() => { +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = (module) => { +/******/ var getter = module && module.__esModule ? +/******/ () => (module['default']) : +/******/ () => (module); +/******/ __webpack_require__.d(getter, { a: getter }); +/******/ return getter; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/define property getters */ +/******/ (() => { +/******/ // define getter functions for harmony exports +/******/ __webpack_require__.d = (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 */ +/******/ (() => { +/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) +/******/ })(); +/******/ +/******/ /* webpack/runtime/make namespace object */ +/******/ (() => { +/******/ // define __esModule on exports +/******/ __webpack_require__.r = (exports) => { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ })(); +/******/ +/************************************************************************/ +var __webpack_exports__ = {}; +// This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk. +(() => { +/*!****************************************!*\ + !*** ./src/blocks/filter-bar/index.js ***! + \****************************************/ +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); +/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/blocks */ "@wordpress/blocks"); +/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/server-side-render */ "@wordpress/server-side-render"); +/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/block-editor */ "@wordpress/block-editor"); +/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__); +/* harmony import */ var _block_json__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./block.json */ "./src/blocks/filter-bar/block.json"); + +/** + * WordPress dependencies + */ + + + + + +/** + * Internal dependencies + */ + +function Edit({ + attributes, + name +}) { + return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", { + ...(0,_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__.useBlockProps)() + }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Disabled, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)((_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default()), { + block: name, + attributes: attributes + }))); +} +(0,_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__.registerBlockType)(_block_json__WEBPACK_IMPORTED_MODULE_5__.name, { + edit: Edit, + save: () => null +}); +})(); + +/******/ })() +; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/front-page/index.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/front-page/index.asset.php index 09684019c7..264faed9d3 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/front-page/index.asset.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/front-page/index.asset.php @@ -1 +1 @@ - array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => '3f3755bbf3697bb808f8'); + array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => 'b4c88578d4fb8d783dd4'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/front-page/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/front-page/index.js index 7a3c8b2166..7136a3f573 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/front-page/index.js +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/front-page/index.js @@ -1 +1,183 @@ -(()=>{"use strict";var e={n:t=>{var r=t&&t.__esModule?()=>t.default:()=>t;return e.d(r,{a:r}),r},d:(t,r)=>{for(var o in r)e.o(r,o)&&!e.o(t,o)&&Object.defineProperty(t,o,{enumerable:!0,get:r[o]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t)};const t=window.React,r=window.wp.components,o=window.wp.blocks,n=window.wp.serverSideRender;var a=e.n(n);const l=window.wp.blockEditor,c=JSON.parse('{"u2":"wporg/front-page"}');(0,o.registerBlockType)(c.u2,{edit:function({attributes:e,name:o}){return(0,t.createElement)("div",{...(0,l.useBlockProps)()},(0,t.createElement)(r.Disabled,null,(0,t.createElement)(a(),{block:o,attributes:e})))},save:()=>null})})(); \ No newline at end of file +/******/ (() => { // webpackBootstrap +/******/ "use strict"; +/******/ var __webpack_modules__ = ({ + +/***/ "react": +/*!************************!*\ + !*** external "React" ***! + \************************/ +/***/ ((module) => { + +module.exports = window["React"]; + +/***/ }), + +/***/ "@wordpress/block-editor": +/*!*************************************!*\ + !*** external ["wp","blockEditor"] ***! + \*************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["blockEditor"]; + +/***/ }), + +/***/ "@wordpress/blocks": +/*!********************************!*\ + !*** external ["wp","blocks"] ***! + \********************************/ +/***/ ((module) => { + +module.exports = window["wp"]["blocks"]; + +/***/ }), + +/***/ "@wordpress/components": +/*!************************************!*\ + !*** external ["wp","components"] ***! + \************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["components"]; + +/***/ }), + +/***/ "@wordpress/server-side-render": +/*!******************************************!*\ + !*** external ["wp","serverSideRender"] ***! + \******************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["serverSideRender"]; + +/***/ }), + +/***/ "./src/blocks/front-page/block.json": +/*!******************************************!*\ + !*** ./src/blocks/front-page/block.json ***! + \******************************************/ +/***/ ((module) => { + +module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"wporg/front-page","version":"0.1.0","title":"Front Page Content","category":"design","icon":"","description":"A block that displays the front page content","textdomain":"wporg","attributes":{},"supports":{"html":false},"editorScript":"file:./index.js","render":"file:./render.php"}'); + +/***/ }) + +/******/ }); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ // no module.id needed +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/************************************************************************/ +/******/ /* webpack/runtime/compat get default export */ +/******/ (() => { +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = (module) => { +/******/ var getter = module && module.__esModule ? +/******/ () => (module['default']) : +/******/ () => (module); +/******/ __webpack_require__.d(getter, { a: getter }); +/******/ return getter; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/define property getters */ +/******/ (() => { +/******/ // define getter functions for harmony exports +/******/ __webpack_require__.d = (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 */ +/******/ (() => { +/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) +/******/ })(); +/******/ +/******/ /* webpack/runtime/make namespace object */ +/******/ (() => { +/******/ // define __esModule on exports +/******/ __webpack_require__.r = (exports) => { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ })(); +/******/ +/************************************************************************/ +var __webpack_exports__ = {}; +// This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk. +(() => { +/*!****************************************!*\ + !*** ./src/blocks/front-page/index.js ***! + \****************************************/ +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); +/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/blocks */ "@wordpress/blocks"); +/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/server-side-render */ "@wordpress/server-side-render"); +/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/block-editor */ "@wordpress/block-editor"); +/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__); +/* harmony import */ var _block_json__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./block.json */ "./src/blocks/front-page/block.json"); + +/** + * WordPress dependencies + */ + + + + + +/** + * Internal dependencies + */ + +function Edit({ + attributes, + name +}) { + return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", { + ...(0,_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__.useBlockProps)() + }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Disabled, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)((_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default()), { + block: name, + attributes: attributes + }))); +} +(0,_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__.registerBlockType)(_block_json__WEBPACK_IMPORTED_MODULE_5__.name, { + edit: Edit, + save: () => null +}); +})(); + +/******/ })() +; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/plugin-card/index.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/plugin-card/index.asset.php index f1dd1a21c9..b579c818ac 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/plugin-card/index.asset.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/plugin-card/index.asset.php @@ -1 +1 @@ - array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => '58f6f779c22873c960e8'); + array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => '26ed8b457f67063bbcbe'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/plugin-card/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/plugin-card/index.js index 3f9a8e7de5..77b892a7b3 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/plugin-card/index.js +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/plugin-card/index.js @@ -1 +1,183 @@ -(()=>{"use strict";var e={n:t=>{var r=t&&t.__esModule?()=>t.default:()=>t;return e.d(r,{a:r}),r},d:(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:(e,t)=>Object.prototype.hasOwnProperty.call(e,t)};const t=window.React,r=window.wp.components,n=window.wp.blocks,o=window.wp.serverSideRender;var a=e.n(o);const l=window.wp.blockEditor,c=JSON.parse('{"u2":"wporg/plugin-card"}');(0,n.registerBlockType)(c.u2,{edit:function({attributes:e,name:n}){return(0,t.createElement)("div",{...(0,l.useBlockProps)()},(0,t.createElement)(r.Disabled,null,(0,t.createElement)(a(),{block:n,attributes:e})))},save:()=>null})})(); \ No newline at end of file +/******/ (() => { // webpackBootstrap +/******/ "use strict"; +/******/ var __webpack_modules__ = ({ + +/***/ "react": +/*!************************!*\ + !*** external "React" ***! + \************************/ +/***/ ((module) => { + +module.exports = window["React"]; + +/***/ }), + +/***/ "@wordpress/block-editor": +/*!*************************************!*\ + !*** external ["wp","blockEditor"] ***! + \*************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["blockEditor"]; + +/***/ }), + +/***/ "@wordpress/blocks": +/*!********************************!*\ + !*** external ["wp","blocks"] ***! + \********************************/ +/***/ ((module) => { + +module.exports = window["wp"]["blocks"]; + +/***/ }), + +/***/ "@wordpress/components": +/*!************************************!*\ + !*** external ["wp","components"] ***! + \************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["components"]; + +/***/ }), + +/***/ "@wordpress/server-side-render": +/*!******************************************!*\ + !*** external ["wp","serverSideRender"] ***! + \******************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["serverSideRender"]; + +/***/ }), + +/***/ "./src/blocks/plugin-card/block.json": +/*!*******************************************!*\ + !*** ./src/blocks/plugin-card/block.json ***! + \*******************************************/ +/***/ ((module) => { + +module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"wporg/plugin-card","version":"0.1.0","title":"Plugin Card for Archive Pages","category":"design","icon":"","description":"A block that displays a plugin card.","textdomain":"wporg","attributes":{},"supports":{"html":false},"editorScript":"file:./index.js","render":"file:./render.php","viewScript":"file:./view.js"}'); + +/***/ }) + +/******/ }); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ // no module.id needed +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/************************************************************************/ +/******/ /* webpack/runtime/compat get default export */ +/******/ (() => { +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = (module) => { +/******/ var getter = module && module.__esModule ? +/******/ () => (module['default']) : +/******/ () => (module); +/******/ __webpack_require__.d(getter, { a: getter }); +/******/ return getter; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/define property getters */ +/******/ (() => { +/******/ // define getter functions for harmony exports +/******/ __webpack_require__.d = (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 */ +/******/ (() => { +/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) +/******/ })(); +/******/ +/******/ /* webpack/runtime/make namespace object */ +/******/ (() => { +/******/ // define __esModule on exports +/******/ __webpack_require__.r = (exports) => { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ })(); +/******/ +/************************************************************************/ +var __webpack_exports__ = {}; +// This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk. +(() => { +/*!*****************************************!*\ + !*** ./src/blocks/plugin-card/index.js ***! + \*****************************************/ +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); +/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/blocks */ "@wordpress/blocks"); +/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/server-side-render */ "@wordpress/server-side-render"); +/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/block-editor */ "@wordpress/block-editor"); +/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__); +/* harmony import */ var _block_json__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./block.json */ "./src/blocks/plugin-card/block.json"); + +/** + * WordPress dependencies + */ + + + + + +/** + * Internal dependencies + */ + +function Edit({ + attributes, + name +}) { + return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", { + ...(0,_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__.useBlockProps)() + }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Disabled, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)((_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default()), { + block: name, + attributes: attributes + }))); +} +(0,_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__.registerBlockType)(_block_json__WEBPACK_IMPORTED_MODULE_5__.name, { + edit: Edit, + save: () => null +}); +})(); + +/******/ })() +; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/plugin-card/view.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/plugin-card/view.asset.php index a451d28c8a..0dd4c71ab5 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/plugin-card/view.asset.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/plugin-card/view.asset.php @@ -1 +1 @@ - array(), 'version' => 'f221373b7e38d2ff3d7c'); + array(), 'version' => '038d83c28b7b82ea64d9'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/plugin-card/view.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/plugin-card/view.js index f3234f94de..a0ec1ebc4a 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/plugin-card/view.js +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/plugin-card/view.js @@ -1 +1,36 @@ -document.addEventListener("DOMContentLoaded",(function(){var e=document.querySelectorAll(".plugin-cards li");e&&e.forEach((function(e){e.addEventListener("click",(function(t){var n=window.getSelection().toString();if("a"!==t.target.tagName.toLowerCase()&&""===n){var o=e.querySelector("a");if(o){var r=o.getAttribute("href");window.location.href=r}}}))}))})); \ No newline at end of file +/******/ (() => { // webpackBootstrap +var __webpack_exports__ = {}; +/*!****************************************!*\ + !*** ./src/blocks/plugin-card/view.js ***! + \****************************************/ +/** + * Binds click events to navigate on plugin card click. + */ +document.addEventListener('DOMContentLoaded', function () { + var cards = document.querySelectorAll('.plugin-cards li'); + if (cards) { + cards.forEach(function (card) { + card.addEventListener('click', function (event) { + var selectedText = window.getSelection().toString(); + + // Keep regular anchor tag function + if ('a' === event.target.tagName.toLowerCase()) { + return; + } + + // If they are selecting text, let's not navigate. + if ('' !== selectedText) { + return; + } + var anchorTag = card.querySelector('a'); + if (anchorTag) { + var link = anchorTag.getAttribute('href'); + window.location.href = link; + } + }); + }); + } +}); +/******/ })() +; +//# sourceMappingURL=view.js.map \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks/index.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks/index.asset.php index 3c2ca53022..65e11078f8 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks/index.asset.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks/index.asset.php @@ -1 +1 @@ - array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => 'a977c41b397d84605650'); + array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => 'e8840736b53778e9b720'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks/index.js index 1739398679..a295a33d84 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks/index.js +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks/index.js @@ -1 +1,298 @@ -(()=>{"use strict";var e,r={651:(e,r,n)=>{const o=window.React,t=window.wp.components,a=window.wp.blocks,i=window.wp.serverSideRender;var l=n.n(i);const s=window.wp.blockEditor,p=JSON.parse('{"u2":"wporg/release-checks"}');(0,a.registerBlockType)(p.u2,{edit:function({attributes:e,name:r}){return(0,o.createElement)("div",{...(0,s.useBlockProps)()},(0,o.createElement)(t.Disabled,null,(0,o.createElement)(l(),{block:r,attributes:e})))},save:()=>null})}},n={};function o(e){var t=n[e];if(void 0!==t)return t.exports;var a=n[e]={exports:{}};return r[e](a,a.exports,o),a.exports}o.m=r,e=[],o.O=(r,n,t,a)=>{if(!n){var i=1/0;for(u=0;u=a)&&Object.keys(o.O).every((e=>o.O[e](n[s])))?n.splice(s--,1):(l=!1,a0&&e[u-1][2]>a;u--)e[u]=e[u-1];e[u]=[n,t,a]},o.n=e=>{var r=e&&e.__esModule?()=>e.default:()=>e;return o.d(r,{a:r}),r},o.d=(e,r)=>{for(var n in r)o.o(r,n)&&!o.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),(()=>{var e={361:0,276:0};o.O.j=r=>0===e[r];var r=(r,n)=>{var t,a,i=n[0],l=n[1],s=n[2],p=0;if(i.some((r=>0!==e[r]))){for(t in l)o.o(l,t)&&(o.m[t]=l[t]);if(s)var u=s(o)}for(r&&r(n);po(651)));t=o.O(t)})(); \ No newline at end of file +/******/ (() => { // webpackBootstrap +/******/ "use strict"; +/******/ var __webpack_modules__ = ({ + +/***/ "./src/blocks/release-checks/index.js": +/*!********************************************!*\ + !*** ./src/blocks/release-checks/index.js ***! + \********************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); +/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/blocks */ "@wordpress/blocks"); +/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/server-side-render */ "@wordpress/server-side-render"); +/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/block-editor */ "@wordpress/block-editor"); +/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__); +/* harmony import */ var _block_json__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./block.json */ "./src/blocks/release-checks/block.json"); +/* harmony import */ var _style_scss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./style.scss */ "./src/blocks/release-checks/style.scss"); + +/** + * WordPress dependencies + */ + + + + + +/** + * Internal dependencies + */ + + +function Edit({ + attributes, + name +}) { + return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", { + ...(0,_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__.useBlockProps)() + }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Disabled, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)((_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default()), { + block: name, + attributes: attributes + }))); +} +(0,_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__.registerBlockType)(_block_json__WEBPACK_IMPORTED_MODULE_5__.name, { + edit: Edit, + save: () => null +}); + +/***/ }), + +/***/ "./src/blocks/release-checks/style.scss": +/*!**********************************************!*\ + !*** ./src/blocks/release-checks/style.scss ***! + \**********************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +// extracted by mini-css-extract-plugin + + +/***/ }), + +/***/ "react": +/*!************************!*\ + !*** external "React" ***! + \************************/ +/***/ ((module) => { + +module.exports = window["React"]; + +/***/ }), + +/***/ "@wordpress/block-editor": +/*!*************************************!*\ + !*** external ["wp","blockEditor"] ***! + \*************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["blockEditor"]; + +/***/ }), + +/***/ "@wordpress/blocks": +/*!********************************!*\ + !*** external ["wp","blocks"] ***! + \********************************/ +/***/ ((module) => { + +module.exports = window["wp"]["blocks"]; + +/***/ }), + +/***/ "@wordpress/components": +/*!************************************!*\ + !*** external ["wp","components"] ***! + \************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["components"]; + +/***/ }), + +/***/ "@wordpress/server-side-render": +/*!******************************************!*\ + !*** external ["wp","serverSideRender"] ***! + \******************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["serverSideRender"]; + +/***/ }), + +/***/ "./src/blocks/release-checks/block.json": +/*!**********************************************!*\ + !*** ./src/blocks/release-checks/block.json ***! + \**********************************************/ +/***/ ((module) => { + +module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"wporg/release-checks","version":"0.1.0","title":"Displays release checks.","category":"design","icon":"","description":"A block to display release checks","textdomain":"wporg","attributes":{},"supports":{"html":false},"usesContext":["postId"],"editorScript":"file:./index.js","render":"file:./render.php","style":"file:./style-index.css"}'); + +/***/ }) + +/******/ }); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ // no module.id needed +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = __webpack_modules__; +/******/ +/************************************************************************/ +/******/ /* webpack/runtime/chunk loaded */ +/******/ (() => { +/******/ var deferred = []; +/******/ __webpack_require__.O = (result, chunkIds, fn, priority) => { +/******/ if(chunkIds) { +/******/ priority = priority || 0; +/******/ for(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1]; +/******/ deferred[i] = [chunkIds, fn, priority]; +/******/ return; +/******/ } +/******/ var notFulfilled = Infinity; +/******/ for (var i = 0; i < deferred.length; i++) { +/******/ var chunkIds = deferred[i][0]; +/******/ var fn = deferred[i][1]; +/******/ var priority = deferred[i][2]; +/******/ var fulfilled = true; +/******/ for (var j = 0; j < chunkIds.length; j++) { +/******/ if ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) { +/******/ chunkIds.splice(j--, 1); +/******/ } else { +/******/ fulfilled = false; +/******/ if(priority < notFulfilled) notFulfilled = priority; +/******/ } +/******/ } +/******/ if(fulfilled) { +/******/ deferred.splice(i--, 1) +/******/ var r = fn(); +/******/ if (r !== undefined) result = r; +/******/ } +/******/ } +/******/ return result; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/compat get default export */ +/******/ (() => { +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = (module) => { +/******/ var getter = module && module.__esModule ? +/******/ () => (module['default']) : +/******/ () => (module); +/******/ __webpack_require__.d(getter, { a: getter }); +/******/ return getter; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/define property getters */ +/******/ (() => { +/******/ // define getter functions for harmony exports +/******/ __webpack_require__.d = (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 */ +/******/ (() => { +/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) +/******/ })(); +/******/ +/******/ /* webpack/runtime/make namespace object */ +/******/ (() => { +/******/ // define __esModule on exports +/******/ __webpack_require__.r = (exports) => { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/jsonp chunk loading */ +/******/ (() => { +/******/ // no baseURI +/******/ +/******/ // object to store loaded and loading chunks +/******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched +/******/ // [resolve, reject, Promise] = chunk loading, 0 = chunk loaded +/******/ var installedChunks = { +/******/ "blocks/release-checks/index": 0, +/******/ "blocks/release-checks/style-index": 0 +/******/ }; +/******/ +/******/ // no chunk on demand loading +/******/ +/******/ // no prefetching +/******/ +/******/ // no preloaded +/******/ +/******/ // no HMR +/******/ +/******/ // no HMR manifest +/******/ +/******/ __webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0); +/******/ +/******/ // install a JSONP callback for chunk loading +/******/ var webpackJsonpCallback = (parentChunkLoadingFunction, data) => { +/******/ var chunkIds = data[0]; +/******/ var moreModules = data[1]; +/******/ var runtime = data[2]; +/******/ // add "moreModules" to the modules object, +/******/ // then flag all "chunkIds" as loaded and fire callback +/******/ var moduleId, chunkId, i = 0; +/******/ if(chunkIds.some((id) => (installedChunks[id] !== 0))) { +/******/ for(moduleId in moreModules) { +/******/ if(__webpack_require__.o(moreModules, moduleId)) { +/******/ __webpack_require__.m[moduleId] = moreModules[moduleId]; +/******/ } +/******/ } +/******/ if(runtime) var result = runtime(__webpack_require__); +/******/ } +/******/ if(parentChunkLoadingFunction) parentChunkLoadingFunction(data); +/******/ for(;i < chunkIds.length; i++) { +/******/ chunkId = chunkIds[i]; +/******/ if(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) { +/******/ installedChunks[chunkId][0](); +/******/ } +/******/ installedChunks[chunkId] = 0; +/******/ } +/******/ return __webpack_require__.O(result); +/******/ } +/******/ +/******/ var chunkLoadingGlobal = self["webpackChunkwporg_plugins_2024"] = self["webpackChunkwporg_plugins_2024"] || []; +/******/ chunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0)); +/******/ chunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal)); +/******/ })(); +/******/ +/************************************************************************/ +/******/ +/******/ // startup +/******/ // Load entry module and return exports +/******/ // This entry module depends on other loaded chunks and execution need to be delayed +/******/ var __webpack_exports__ = __webpack_require__.O(undefined, ["blocks/release-checks/style-index"], () => (__webpack_require__("./src/blocks/release-checks/index.js"))) +/******/ __webpack_exports__ = __webpack_require__.O(__webpack_exports__); +/******/ +/******/ })() +; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks/style-index.css b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks/style-index.css index 8b13789179..177995f6fe 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks/style-index.css +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks/style-index.css @@ -1 +1,4 @@ +/*!*************************************************************************************************************************************************************************************************************************************************************!*\ + !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/blocks/release-checks/style.scss ***! + \*************************************************************************************************************************************************************************************************************************************************************/ diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-confirmation/index.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-confirmation/index.asset.php index 0390d0605c..c63d21c5fa 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-confirmation/index.asset.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-confirmation/index.asset.php @@ -1 +1 @@ - array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => '30391b7a73bd29220d6b'); + array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => '7e90263901f994049c19'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-confirmation/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-confirmation/index.js index 44204b200c..0763f98fa9 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-confirmation/index.js +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-confirmation/index.js @@ -1 +1,298 @@ -(()=>{"use strict";var e,r={376:(e,r,n)=>{const o=window.React,t=window.wp.components,i=window.wp.blocks,a=window.wp.serverSideRender;var l=n.n(a);const s=window.wp.blockEditor,p=JSON.parse('{"u2":"wporg/release-confirmation"}');(0,i.registerBlockType)(p.u2,{edit:function({attributes:e,name:r}){return(0,o.createElement)("div",{...(0,s.useBlockProps)()},(0,o.createElement)(t.Disabled,null,(0,o.createElement)(l(),{block:r,attributes:e})))},save:()=>null})}},n={};function o(e){var t=n[e];if(void 0!==t)return t.exports;var i=n[e]={exports:{}};return r[e](i,i.exports,o),i.exports}o.m=r,e=[],o.O=(r,n,t,i)=>{if(!n){var a=1/0;for(u=0;u=i)&&Object.keys(o.O).every((e=>o.O[e](n[s])))?n.splice(s--,1):(l=!1,i0&&e[u-1][2]>i;u--)e[u]=e[u-1];e[u]=[n,t,i]},o.n=e=>{var r=e&&e.__esModule?()=>e.default:()=>e;return o.d(r,{a:r}),r},o.d=(e,r)=>{for(var n in r)o.o(r,n)&&!o.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),(()=>{var e={3:0,106:0};o.O.j=r=>0===e[r];var r=(r,n)=>{var t,i,a=n[0],l=n[1],s=n[2],p=0;if(a.some((r=>0!==e[r]))){for(t in l)o.o(l,t)&&(o.m[t]=l[t]);if(s)var u=s(o)}for(r&&r(n);po(376)));t=o.O(t)})(); \ No newline at end of file +/******/ (() => { // webpackBootstrap +/******/ "use strict"; +/******/ var __webpack_modules__ = ({ + +/***/ "./src/blocks/release-confirmation/index.js": +/*!**************************************************!*\ + !*** ./src/blocks/release-confirmation/index.js ***! + \**************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); +/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/blocks */ "@wordpress/blocks"); +/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/server-side-render */ "@wordpress/server-side-render"); +/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/block-editor */ "@wordpress/block-editor"); +/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__); +/* harmony import */ var _block_json__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./block.json */ "./src/blocks/release-confirmation/block.json"); +/* harmony import */ var _style_scss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./style.scss */ "./src/blocks/release-confirmation/style.scss"); + +/** + * WordPress dependencies + */ + + + + + +/** + * Internal dependencies + */ + + +function Edit({ + attributes, + name +}) { + return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", { + ...(0,_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__.useBlockProps)() + }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Disabled, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)((_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default()), { + block: name, + attributes: attributes + }))); +} +(0,_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__.registerBlockType)(_block_json__WEBPACK_IMPORTED_MODULE_5__.name, { + edit: Edit, + save: () => null +}); + +/***/ }), + +/***/ "./src/blocks/release-confirmation/style.scss": +/*!****************************************************!*\ + !*** ./src/blocks/release-confirmation/style.scss ***! + \****************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +// extracted by mini-css-extract-plugin + + +/***/ }), + +/***/ "react": +/*!************************!*\ + !*** external "React" ***! + \************************/ +/***/ ((module) => { + +module.exports = window["React"]; + +/***/ }), + +/***/ "@wordpress/block-editor": +/*!*************************************!*\ + !*** external ["wp","blockEditor"] ***! + \*************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["blockEditor"]; + +/***/ }), + +/***/ "@wordpress/blocks": +/*!********************************!*\ + !*** external ["wp","blocks"] ***! + \********************************/ +/***/ ((module) => { + +module.exports = window["wp"]["blocks"]; + +/***/ }), + +/***/ "@wordpress/components": +/*!************************************!*\ + !*** external ["wp","components"] ***! + \************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["components"]; + +/***/ }), + +/***/ "@wordpress/server-side-render": +/*!******************************************!*\ + !*** external ["wp","serverSideRender"] ***! + \******************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["serverSideRender"]; + +/***/ }), + +/***/ "./src/blocks/release-confirmation/block.json": +/*!****************************************************!*\ + !*** ./src/blocks/release-confirmation/block.json ***! + \****************************************************/ +/***/ ((module) => { + +module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"wporg/release-confirmation","version":"0.1.0","title":"Release confirmation banner.","category":"design","icon":"","description":"A block to display release confirmation banner.","textdomain":"wporg","attributes":{},"supports":{"html":false},"usesContext":["postId"],"editorScript":"file:./index.js","render":"file:./render.php","style":"file:./style-index.css"}'); + +/***/ }) + +/******/ }); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ // no module.id needed +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = __webpack_modules__; +/******/ +/************************************************************************/ +/******/ /* webpack/runtime/chunk loaded */ +/******/ (() => { +/******/ var deferred = []; +/******/ __webpack_require__.O = (result, chunkIds, fn, priority) => { +/******/ if(chunkIds) { +/******/ priority = priority || 0; +/******/ for(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1]; +/******/ deferred[i] = [chunkIds, fn, priority]; +/******/ return; +/******/ } +/******/ var notFulfilled = Infinity; +/******/ for (var i = 0; i < deferred.length; i++) { +/******/ var chunkIds = deferred[i][0]; +/******/ var fn = deferred[i][1]; +/******/ var priority = deferred[i][2]; +/******/ var fulfilled = true; +/******/ for (var j = 0; j < chunkIds.length; j++) { +/******/ if ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) { +/******/ chunkIds.splice(j--, 1); +/******/ } else { +/******/ fulfilled = false; +/******/ if(priority < notFulfilled) notFulfilled = priority; +/******/ } +/******/ } +/******/ if(fulfilled) { +/******/ deferred.splice(i--, 1) +/******/ var r = fn(); +/******/ if (r !== undefined) result = r; +/******/ } +/******/ } +/******/ return result; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/compat get default export */ +/******/ (() => { +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = (module) => { +/******/ var getter = module && module.__esModule ? +/******/ () => (module['default']) : +/******/ () => (module); +/******/ __webpack_require__.d(getter, { a: getter }); +/******/ return getter; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/define property getters */ +/******/ (() => { +/******/ // define getter functions for harmony exports +/******/ __webpack_require__.d = (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 */ +/******/ (() => { +/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) +/******/ })(); +/******/ +/******/ /* webpack/runtime/make namespace object */ +/******/ (() => { +/******/ // define __esModule on exports +/******/ __webpack_require__.r = (exports) => { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/jsonp chunk loading */ +/******/ (() => { +/******/ // no baseURI +/******/ +/******/ // object to store loaded and loading chunks +/******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched +/******/ // [resolve, reject, Promise] = chunk loading, 0 = chunk loaded +/******/ var installedChunks = { +/******/ "blocks/release-confirmation/index": 0, +/******/ "blocks/release-confirmation/style-index": 0 +/******/ }; +/******/ +/******/ // no chunk on demand loading +/******/ +/******/ // no prefetching +/******/ +/******/ // no preloaded +/******/ +/******/ // no HMR +/******/ +/******/ // no HMR manifest +/******/ +/******/ __webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0); +/******/ +/******/ // install a JSONP callback for chunk loading +/******/ var webpackJsonpCallback = (parentChunkLoadingFunction, data) => { +/******/ var chunkIds = data[0]; +/******/ var moreModules = data[1]; +/******/ var runtime = data[2]; +/******/ // add "moreModules" to the modules object, +/******/ // then flag all "chunkIds" as loaded and fire callback +/******/ var moduleId, chunkId, i = 0; +/******/ if(chunkIds.some((id) => (installedChunks[id] !== 0))) { +/******/ for(moduleId in moreModules) { +/******/ if(__webpack_require__.o(moreModules, moduleId)) { +/******/ __webpack_require__.m[moduleId] = moreModules[moduleId]; +/******/ } +/******/ } +/******/ if(runtime) var result = runtime(__webpack_require__); +/******/ } +/******/ if(parentChunkLoadingFunction) parentChunkLoadingFunction(data); +/******/ for(;i < chunkIds.length; i++) { +/******/ chunkId = chunkIds[i]; +/******/ if(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) { +/******/ installedChunks[chunkId][0](); +/******/ } +/******/ installedChunks[chunkId] = 0; +/******/ } +/******/ return __webpack_require__.O(result); +/******/ } +/******/ +/******/ var chunkLoadingGlobal = self["webpackChunkwporg_plugins_2024"] = self["webpackChunkwporg_plugins_2024"] || []; +/******/ chunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0)); +/******/ chunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal)); +/******/ })(); +/******/ +/************************************************************************/ +/******/ +/******/ // startup +/******/ // Load entry module and return exports +/******/ // This entry module depends on other loaded chunks and execution need to be delayed +/******/ var __webpack_exports__ = __webpack_require__.O(undefined, ["blocks/release-confirmation/style-index"], () => (__webpack_require__("./src/blocks/release-confirmation/index.js"))) +/******/ __webpack_exports__ = __webpack_require__.O(__webpack_exports__); +/******/ +/******/ })() +; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-confirmation/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-confirmation/render.php index ed6aa94c30..b8d0100df8 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-confirmation/render.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-confirmation/render.php @@ -1,56 +1,53 @@ context['postId']; -if ( ! $current_post_id ) { +if ( ! $block->context['postId'] ) { return; } $post = get_post( $block->context['postId'] ); if ( ! $post ) { - return; + return; } if( 'publish' === $post->post_status) { - return; + return; } $copy = sprintf( - 'This release was last updated on %s by %s.', - date_i18n( get_option( 'date_format' ) . ' ' . get_option( 'time_format' ), strtotime( $post->post_modified ) ), - get_the_author_meta( 'display_name', $post->post_author ) + 'This release was last updated on %s by %s.', + date_i18n( get_option( 'date_format' ) . ' ' . get_option( 'time_format' ), strtotime( $post->post_modified ) ), + get_the_author_meta( 'display_name', $post->post_author ) ); ?> - -
    > - - -
    -

    - - - -

    - - - -
    -
    -
    - - - -
    -
    -
    -
    - - - - - - -
    - - - +
    > + + + +
    +

    + + + +

    + + + +
    +
    + +
    + +
    + +
    +
    + + +
    + +
    diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-confirmation/style-index.css b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-confirmation/style-index.css index 522a27faaa..3f31bd5b80 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-confirmation/style-index.css +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-confirmation/style-index.css @@ -1 +1,9 @@ -.wp-block-wporg-release-confirmation .wp-block-buttons{display:flex} +/*!*******************************************************************************************************************************************************************************************************************************************************************!*\ + !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/blocks/release-confirmation/style.scss ***! + \*******************************************************************************************************************************************************************************************************************************************************************/ +.wp-block-wporg-release-confirmation .wporg-release-confirmation-actions { + display: flex; + gap: 8px; +} + +/*# sourceMappingURL=style-index.css.map*/ \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/releases/block.json b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-date/block.json similarity index 68% rename from wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/releases/block.json rename to wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-date/block.json index cf0728f8cd..242adb9164 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/releases/block.json +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-date/block.json @@ -1,17 +1,20 @@ { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 2, - "name": "wporg/releases", + "name": "wporg/release-date", "version": "0.1.0", - "title": "Displays releases.", + "title": "Release Date.", "category": "design", "icon": "", - "description": "A block to display releases", + "description": "A block to display release date", "textdomain": "wporg", "attributes": {}, "supports": { "html": false }, + "usesContext": [ + "postId" + ], "editorScript": "file:./index.js", "render": "file:./render.php", "style": "file:./style-index.css" diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/releases/index.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-date/index.asset.php similarity index 77% rename from wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/releases/index.asset.php rename to wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-date/index.asset.php index 421ed4f5a8..41d25b879e 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/releases/index.asset.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-date/index.asset.php @@ -1 +1 @@ - array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => 'e500d039a1751ee0eadd'); + array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => '0120b081d2ad3d25e91c'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-date/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-date/index.js new file mode 100644 index 0000000000..6803c5db88 --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-date/index.js @@ -0,0 +1,183 @@ +/******/ (() => { // webpackBootstrap +/******/ "use strict"; +/******/ var __webpack_modules__ = ({ + +/***/ "react": +/*!************************!*\ + !*** external "React" ***! + \************************/ +/***/ ((module) => { + +module.exports = window["React"]; + +/***/ }), + +/***/ "@wordpress/block-editor": +/*!*************************************!*\ + !*** external ["wp","blockEditor"] ***! + \*************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["blockEditor"]; + +/***/ }), + +/***/ "@wordpress/blocks": +/*!********************************!*\ + !*** external ["wp","blocks"] ***! + \********************************/ +/***/ ((module) => { + +module.exports = window["wp"]["blocks"]; + +/***/ }), + +/***/ "@wordpress/components": +/*!************************************!*\ + !*** external ["wp","components"] ***! + \************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["components"]; + +/***/ }), + +/***/ "@wordpress/server-side-render": +/*!******************************************!*\ + !*** external ["wp","serverSideRender"] ***! + \******************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["serverSideRender"]; + +/***/ }), + +/***/ "./src/blocks/release-date/block.json": +/*!********************************************!*\ + !*** ./src/blocks/release-date/block.json ***! + \********************************************/ +/***/ ((module) => { + +module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"wporg/release-date","version":"0.1.0","title":"Release Date.","category":"design","icon":"","description":"A block to display release date","textdomain":"wporg","attributes":{},"supports":{"html":false},"usesContext":["postId"],"editorScript":"file:./index.js","render":"file:./render.php","style":"file:./style-index.css"}'); + +/***/ }) + +/******/ }); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ // no module.id needed +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/************************************************************************/ +/******/ /* webpack/runtime/compat get default export */ +/******/ (() => { +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = (module) => { +/******/ var getter = module && module.__esModule ? +/******/ () => (module['default']) : +/******/ () => (module); +/******/ __webpack_require__.d(getter, { a: getter }); +/******/ return getter; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/define property getters */ +/******/ (() => { +/******/ // define getter functions for harmony exports +/******/ __webpack_require__.d = (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 */ +/******/ (() => { +/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) +/******/ })(); +/******/ +/******/ /* webpack/runtime/make namespace object */ +/******/ (() => { +/******/ // define __esModule on exports +/******/ __webpack_require__.r = (exports) => { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ })(); +/******/ +/************************************************************************/ +var __webpack_exports__ = {}; +// This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk. +(() => { +/*!******************************************!*\ + !*** ./src/blocks/release-date/index.js ***! + \******************************************/ +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); +/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/blocks */ "@wordpress/blocks"); +/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/server-side-render */ "@wordpress/server-side-render"); +/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/block-editor */ "@wordpress/block-editor"); +/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__); +/* harmony import */ var _block_json__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./block.json */ "./src/blocks/release-date/block.json"); + +/** + * WordPress dependencies + */ + + + + + +/** + * Internal dependencies + */ + +function Edit({ + attributes, + name +}) { + return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", { + ...(0,_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__.useBlockProps)() + }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Disabled, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)((_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default()), { + block: name, + attributes: attributes + }))); +} +(0,_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__.registerBlockType)(_block_json__WEBPACK_IMPORTED_MODULE_5__.name, { + edit: Edit, + save: () => null +}); +})(); + +/******/ })() +; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-date/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-date/render.php new file mode 100644 index 0000000000..d7108a149d --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-date/render.php @@ -0,0 +1,18 @@ +context['postId'] ) { + return; +} + +$post = get_post( $block->context['postId'] ); +if ( ! $post ) { + return; +} + +if( 'publish' !== $post->post_status ) { + return; +} + +echo do_blocks( '' ); + +?> diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-menu-options/block.json b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-menu-options/block.json new file mode 100644 index 0000000000..cda442a2c5 --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-menu-options/block.json @@ -0,0 +1,19 @@ +{ + "apiVersion": 2, + "name": "wporg/release-menu-options", + "title": "Dropdown menu for release", + "category": "widgets", + "icon": "menu", + "description": "Display the dropdown menu option for a release.", + "supports": { + "html": false + }, + "usesContext": [ + "postId" + ], + "textdomain": "wporg", + "editorScript": "file:./index.js", + "viewScriptModule": "file:./view.js", + "style": "file:./style-index.css", + "render": "file:./render.php" +} \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-menu-options/index.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-menu-options/index.asset.php new file mode 100644 index 0000000000..1bb92fa92d --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-menu-options/index.asset.php @@ -0,0 +1 @@ + array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => '61de84da832ebcfe530f'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-menu-options/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-menu-options/index.js new file mode 100644 index 0000000000..c97ad76811 --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-menu-options/index.js @@ -0,0 +1,298 @@ +/******/ (() => { // webpackBootstrap +/******/ "use strict"; +/******/ var __webpack_modules__ = ({ + +/***/ "./src/blocks/release-menu-options/index.js": +/*!**************************************************!*\ + !*** ./src/blocks/release-menu-options/index.js ***! + \**************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); +/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/blocks */ "@wordpress/blocks"); +/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/server-side-render */ "@wordpress/server-side-render"); +/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/block-editor */ "@wordpress/block-editor"); +/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__); +/* harmony import */ var _block_json__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./block.json */ "./src/blocks/release-menu-options/block.json"); +/* harmony import */ var _style_scss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./style.scss */ "./src/blocks/release-menu-options/style.scss"); + +/** + * WordPress dependencies + */ + + + + + +/** + * Internal dependencies + */ + + +function Edit({ + attributes, + name +}) { + return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", { + ...(0,_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__.useBlockProps)() + }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Disabled, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)((_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default()), { + block: name, + attributes: attributes + }))); +} +(0,_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__.registerBlockType)(_block_json__WEBPACK_IMPORTED_MODULE_5__.name, { + edit: Edit, + save: () => null +}); + +/***/ }), + +/***/ "./src/blocks/release-menu-options/style.scss": +/*!****************************************************!*\ + !*** ./src/blocks/release-menu-options/style.scss ***! + \****************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +// extracted by mini-css-extract-plugin + + +/***/ }), + +/***/ "react": +/*!************************!*\ + !*** external "React" ***! + \************************/ +/***/ ((module) => { + +module.exports = window["React"]; + +/***/ }), + +/***/ "@wordpress/block-editor": +/*!*************************************!*\ + !*** external ["wp","blockEditor"] ***! + \*************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["blockEditor"]; + +/***/ }), + +/***/ "@wordpress/blocks": +/*!********************************!*\ + !*** external ["wp","blocks"] ***! + \********************************/ +/***/ ((module) => { + +module.exports = window["wp"]["blocks"]; + +/***/ }), + +/***/ "@wordpress/components": +/*!************************************!*\ + !*** external ["wp","components"] ***! + \************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["components"]; + +/***/ }), + +/***/ "@wordpress/server-side-render": +/*!******************************************!*\ + !*** external ["wp","serverSideRender"] ***! + \******************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["serverSideRender"]; + +/***/ }), + +/***/ "./src/blocks/release-menu-options/block.json": +/*!****************************************************!*\ + !*** ./src/blocks/release-menu-options/block.json ***! + \****************************************************/ +/***/ ((module) => { + +module.exports = JSON.parse('{"apiVersion":2,"name":"wporg/release-menu-options","title":"Dropdown menu for release","category":"widgets","icon":"menu","description":"Display the dropdown menu option for a release.","supports":{"html":false},"usesContext":["postId"],"textdomain":"wporg","editorScript":"file:./index.js","viewScriptModule":"file:./view.js","style":"file:./style-index.css","render":"file:./render.php"}'); + +/***/ }) + +/******/ }); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ // no module.id needed +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = __webpack_modules__; +/******/ +/************************************************************************/ +/******/ /* webpack/runtime/chunk loaded */ +/******/ (() => { +/******/ var deferred = []; +/******/ __webpack_require__.O = (result, chunkIds, fn, priority) => { +/******/ if(chunkIds) { +/******/ priority = priority || 0; +/******/ for(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1]; +/******/ deferred[i] = [chunkIds, fn, priority]; +/******/ return; +/******/ } +/******/ var notFulfilled = Infinity; +/******/ for (var i = 0; i < deferred.length; i++) { +/******/ var chunkIds = deferred[i][0]; +/******/ var fn = deferred[i][1]; +/******/ var priority = deferred[i][2]; +/******/ var fulfilled = true; +/******/ for (var j = 0; j < chunkIds.length; j++) { +/******/ if ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) { +/******/ chunkIds.splice(j--, 1); +/******/ } else { +/******/ fulfilled = false; +/******/ if(priority < notFulfilled) notFulfilled = priority; +/******/ } +/******/ } +/******/ if(fulfilled) { +/******/ deferred.splice(i--, 1) +/******/ var r = fn(); +/******/ if (r !== undefined) result = r; +/******/ } +/******/ } +/******/ return result; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/compat get default export */ +/******/ (() => { +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = (module) => { +/******/ var getter = module && module.__esModule ? +/******/ () => (module['default']) : +/******/ () => (module); +/******/ __webpack_require__.d(getter, { a: getter }); +/******/ return getter; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/define property getters */ +/******/ (() => { +/******/ // define getter functions for harmony exports +/******/ __webpack_require__.d = (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 */ +/******/ (() => { +/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) +/******/ })(); +/******/ +/******/ /* webpack/runtime/make namespace object */ +/******/ (() => { +/******/ // define __esModule on exports +/******/ __webpack_require__.r = (exports) => { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/jsonp chunk loading */ +/******/ (() => { +/******/ // no baseURI +/******/ +/******/ // object to store loaded and loading chunks +/******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched +/******/ // [resolve, reject, Promise] = chunk loading, 0 = chunk loaded +/******/ var installedChunks = { +/******/ "blocks/release-menu-options/index": 0, +/******/ "blocks/release-menu-options/style-index": 0 +/******/ }; +/******/ +/******/ // no chunk on demand loading +/******/ +/******/ // no prefetching +/******/ +/******/ // no preloaded +/******/ +/******/ // no HMR +/******/ +/******/ // no HMR manifest +/******/ +/******/ __webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0); +/******/ +/******/ // install a JSONP callback for chunk loading +/******/ var webpackJsonpCallback = (parentChunkLoadingFunction, data) => { +/******/ var chunkIds = data[0]; +/******/ var moreModules = data[1]; +/******/ var runtime = data[2]; +/******/ // add "moreModules" to the modules object, +/******/ // then flag all "chunkIds" as loaded and fire callback +/******/ var moduleId, chunkId, i = 0; +/******/ if(chunkIds.some((id) => (installedChunks[id] !== 0))) { +/******/ for(moduleId in moreModules) { +/******/ if(__webpack_require__.o(moreModules, moduleId)) { +/******/ __webpack_require__.m[moduleId] = moreModules[moduleId]; +/******/ } +/******/ } +/******/ if(runtime) var result = runtime(__webpack_require__); +/******/ } +/******/ if(parentChunkLoadingFunction) parentChunkLoadingFunction(data); +/******/ for(;i < chunkIds.length; i++) { +/******/ chunkId = chunkIds[i]; +/******/ if(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) { +/******/ installedChunks[chunkId][0](); +/******/ } +/******/ installedChunks[chunkId] = 0; +/******/ } +/******/ return __webpack_require__.O(result); +/******/ } +/******/ +/******/ var chunkLoadingGlobal = self["webpackChunkwporg_plugins_2024"] = self["webpackChunkwporg_plugins_2024"] || []; +/******/ chunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0)); +/******/ chunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal)); +/******/ })(); +/******/ +/************************************************************************/ +/******/ +/******/ // startup +/******/ // Load entry module and return exports +/******/ // This entry module depends on other loaded chunks and execution need to be delayed +/******/ var __webpack_exports__ = __webpack_require__.O(undefined, ["blocks/release-menu-options/style-index"], () => (__webpack_require__("./src/blocks/release-menu-options/index.js"))) +/******/ __webpack_exports__ = __webpack_require__.O(__webpack_exports__); +/******/ +/******/ })() +; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-menu-options/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-menu-options/render.php new file mode 100644 index 0000000000..4a74b4ef7c --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-menu-options/render.php @@ -0,0 +1,37 @@ + 'download', + 'title' => __( 'Download', 'wporg-plugins' ), + ), + array( + 'id' => 'playground', + 'title' => __( 'Test in Playground', 'wporg-plugins' ), + ), +); + +?> +
    +
    + + + Toggle menu + +
    + + + +
    +
    +
    diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-menu-options/style-index.css b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-menu-options/style-index.css new file mode 100644 index 0000000000..9bacde54f4 --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-menu-options/style-index.css @@ -0,0 +1,61 @@ +/*!*******************************************************************************************************************************************************************************************************************************************************************!*\ + !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/blocks/release-menu-options/style.scss ***! + \*******************************************************************************************************************************************************************************************************************************************************************/ +.wporg-release-menu-options { + position: relative; + display: flex; +} +.wporg-release-menu-options summary { + display: flex; + align-items: center; + justify-content: center; + width: 32px; + height: 32px; + border-radius: 2px; + cursor: pointer; + line-height: 16px; + list-style: none; +} +.wporg-release-menu-options summary:hover { + background-color: var(--wp--preset--color--light-grey-2); +} +.wporg-release-menu-options summary:focus { + outline-color: var(--wp--custom--button--outline--focus--border--color); +} +.wporg-release-menu-options[open] summary { + background-color: var(--wp--preset--color--charcoal-1); + color: var(--wp--preset--color--white); +} +.wporg-release-menu-options svg { + fill: currentColor; +} +.wporg-release-menu-options summary::-webkit-details-marker { + display: none; +} + +.wporg-release-menu-options-content { + position: absolute; + top: 100%; + right: 0; + z-index: 100000; + min-width: 200px; + margin: 4px 0 0; + padding: var(--wp--preset--spacing--10); + border: 1px solid var(--wp--preset--color--light-grey-1); + border-radius: 2px; + background-color: #fff; +} +.wporg-release-menu-options-content button { + display: block; + width: 100%; + background: none; + border: none; + text-align: left; + padding: var(--wp--preset--spacing--10); +} +.wporg-release-menu-options-content button:hover { + background-color: var(--wp--preset--color--light-grey-2); + color: var(--wp--preset--color--charcoal-1); +} + +/*# sourceMappingURL=style-index.css.map*/ \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-menu-options/view.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-menu-options/view.asset.php new file mode 100644 index 0000000000..519fb3c775 --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-menu-options/view.asset.php @@ -0,0 +1 @@ + array('@wordpress/interactivity'), 'version' => '16c84401abd1ca999e90', 'type' => 'module'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-menu-options/view.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-menu-options/view.js new file mode 100644 index 0000000000..d83961a17e --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-menu-options/view.js @@ -0,0 +1,88 @@ +import * as __WEBPACK_EXTERNAL_MODULE__wordpress_interactivity_8e89b257__ from "@wordpress/interactivity"; +/******/ var __webpack_modules__ = ({ + +/***/ "@wordpress/interactivity": +/*!*******************************************!*\ + !*** external "@wordpress/interactivity" ***! + \*******************************************/ +/***/ ((module) => { + +var x = y => { var x = {}; __webpack_require__.d(x, y); return x; } +var y = x => () => x +module.exports = __WEBPACK_EXTERNAL_MODULE__wordpress_interactivity_8e89b257__; + +/***/ }) + +/******/ }); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ // no module.id needed +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/************************************************************************/ +/******/ /* webpack/runtime/make namespace object */ +/******/ (() => { +/******/ // define __esModule on exports +/******/ __webpack_require__.r = (exports) => { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ })(); +/******/ +/************************************************************************/ +var __webpack_exports__ = {}; +// This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk. +(() => { +/*!*************************************************!*\ + !*** ./src/blocks/release-menu-options/view.js ***! + \*************************************************/ +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _wordpress_interactivity__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/interactivity */ "@wordpress/interactivity"); + +(0,_wordpress_interactivity__WEBPACK_IMPORTED_MODULE_0__.store)('wporg-release-menu-options', { + actions: { + handleMenuItemClick: event => { + const itemId = event.target.dataset.itemId; + switch (itemId) { + case 'download': + alert('download: not implemented'); + break; + case 'playground': + alert('playground: not implemented'); + break; + } + }, + handleFocusOut: event => { + const details = event.target.closest('details'); + if (details && !details.contains(event.relatedTarget)) { + details.removeAttribute('open'); + } + } + } +}); +})(); + + +//# sourceMappingURL=view.js.map \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status/block.json b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status/block.json index b92e587f36..e82a72700d 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status/block.json +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status/block.json @@ -3,7 +3,7 @@ "apiVersion": 2, "name": "wporg/release-status", "version": "0.1.0", - "title": "Displays release status.", + "title": "Release status.", "category": "design", "icon": "", "description": "A block to display release status", diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status/index.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status/index.asset.php index ae48d16627..51ac782c74 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status/index.asset.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status/index.asset.php @@ -1 +1 @@ - array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => '5ba0c1f0bcdeb1df6776'); + array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => '3a05880b2480c08069ed'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status/index.js index 46af162598..ca2663fce2 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status/index.js +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status/index.js @@ -1 +1,298 @@ -(()=>{"use strict";var e,r={728:(e,r,t)=>{const n=window.React,o=window.wp.components,a=window.wp.blocks,i=window.wp.serverSideRender;var s=t.n(i);const l=window.wp.blockEditor,u=JSON.parse('{"u2":"wporg/release-status"}');(0,a.registerBlockType)(u.u2,{edit:function({attributes:e,name:r}){return(0,n.createElement)("div",{...(0,l.useBlockProps)()},(0,n.createElement)(o.Disabled,null,(0,n.createElement)(s(),{block:r,attributes:e})))},save:()=>null})}},t={};function n(e){var o=t[e];if(void 0!==o)return o.exports;var a=t[e]={exports:{}};return r[e](a,a.exports,n),a.exports}n.m=r,e=[],n.O=(r,t,o,a)=>{if(!t){var i=1/0;for(p=0;p=a)&&Object.keys(n.O).every((e=>n.O[e](t[l])))?t.splice(l--,1):(s=!1,a0&&e[p-1][2]>a;p--)e[p]=e[p-1];e[p]=[t,o,a]},n.n=e=>{var r=e&&e.__esModule?()=>e.default:()=>e;return n.d(r,{a:r}),r},n.d=(e,r)=>{for(var t in r)n.o(r,t)&&!n.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:r[t]})},n.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),(()=>{var e={400:0,467:0};n.O.j=r=>0===e[r];var r=(r,t)=>{var o,a,i=t[0],s=t[1],l=t[2],u=0;if(i.some((r=>0!==e[r]))){for(o in s)n.o(s,o)&&(n.m[o]=s[o]);if(l)var p=l(n)}for(r&&r(t);un(728)));o=n.O(o)})(); \ No newline at end of file +/******/ (() => { // webpackBootstrap +/******/ "use strict"; +/******/ var __webpack_modules__ = ({ + +/***/ "./src/blocks/release-status/index.js": +/*!********************************************!*\ + !*** ./src/blocks/release-status/index.js ***! + \********************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); +/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/blocks */ "@wordpress/blocks"); +/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/server-side-render */ "@wordpress/server-side-render"); +/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/block-editor */ "@wordpress/block-editor"); +/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__); +/* harmony import */ var _block_json__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./block.json */ "./src/blocks/release-status/block.json"); +/* harmony import */ var _style_scss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./style.scss */ "./src/blocks/release-status/style.scss"); + +/** + * WordPress dependencies + */ + + + + + +/** + * Internal dependencies + */ + + +function Edit({ + attributes, + name +}) { + return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", { + ...(0,_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__.useBlockProps)() + }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Disabled, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)((_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default()), { + block: name, + attributes: attributes + }))); +} +(0,_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__.registerBlockType)(_block_json__WEBPACK_IMPORTED_MODULE_5__.name, { + edit: Edit, + save: () => null +}); + +/***/ }), + +/***/ "./src/blocks/release-status/style.scss": +/*!**********************************************!*\ + !*** ./src/blocks/release-status/style.scss ***! + \**********************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +// extracted by mini-css-extract-plugin + + +/***/ }), + +/***/ "react": +/*!************************!*\ + !*** external "React" ***! + \************************/ +/***/ ((module) => { + +module.exports = window["React"]; + +/***/ }), + +/***/ "@wordpress/block-editor": +/*!*************************************!*\ + !*** external ["wp","blockEditor"] ***! + \*************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["blockEditor"]; + +/***/ }), + +/***/ "@wordpress/blocks": +/*!********************************!*\ + !*** external ["wp","blocks"] ***! + \********************************/ +/***/ ((module) => { + +module.exports = window["wp"]["blocks"]; + +/***/ }), + +/***/ "@wordpress/components": +/*!************************************!*\ + !*** external ["wp","components"] ***! + \************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["components"]; + +/***/ }), + +/***/ "@wordpress/server-side-render": +/*!******************************************!*\ + !*** external ["wp","serverSideRender"] ***! + \******************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["serverSideRender"]; + +/***/ }), + +/***/ "./src/blocks/release-status/block.json": +/*!**********************************************!*\ + !*** ./src/blocks/release-status/block.json ***! + \**********************************************/ +/***/ ((module) => { + +module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"wporg/release-status","version":"0.1.0","title":"Release status.","category":"design","icon":"","description":"A block to display release status","textdomain":"wporg","attributes":{},"supports":{"html":false},"usesContext":["postId"],"editorScript":"file:./index.js","render":"file:./render.php","style":"file:./style-index.css"}'); + +/***/ }) + +/******/ }); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ // no module.id needed +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = __webpack_modules__; +/******/ +/************************************************************************/ +/******/ /* webpack/runtime/chunk loaded */ +/******/ (() => { +/******/ var deferred = []; +/******/ __webpack_require__.O = (result, chunkIds, fn, priority) => { +/******/ if(chunkIds) { +/******/ priority = priority || 0; +/******/ for(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1]; +/******/ deferred[i] = [chunkIds, fn, priority]; +/******/ return; +/******/ } +/******/ var notFulfilled = Infinity; +/******/ for (var i = 0; i < deferred.length; i++) { +/******/ var chunkIds = deferred[i][0]; +/******/ var fn = deferred[i][1]; +/******/ var priority = deferred[i][2]; +/******/ var fulfilled = true; +/******/ for (var j = 0; j < chunkIds.length; j++) { +/******/ if ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) { +/******/ chunkIds.splice(j--, 1); +/******/ } else { +/******/ fulfilled = false; +/******/ if(priority < notFulfilled) notFulfilled = priority; +/******/ } +/******/ } +/******/ if(fulfilled) { +/******/ deferred.splice(i--, 1) +/******/ var r = fn(); +/******/ if (r !== undefined) result = r; +/******/ } +/******/ } +/******/ return result; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/compat get default export */ +/******/ (() => { +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = (module) => { +/******/ var getter = module && module.__esModule ? +/******/ () => (module['default']) : +/******/ () => (module); +/******/ __webpack_require__.d(getter, { a: getter }); +/******/ return getter; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/define property getters */ +/******/ (() => { +/******/ // define getter functions for harmony exports +/******/ __webpack_require__.d = (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 */ +/******/ (() => { +/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) +/******/ })(); +/******/ +/******/ /* webpack/runtime/make namespace object */ +/******/ (() => { +/******/ // define __esModule on exports +/******/ __webpack_require__.r = (exports) => { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/jsonp chunk loading */ +/******/ (() => { +/******/ // no baseURI +/******/ +/******/ // object to store loaded and loading chunks +/******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched +/******/ // [resolve, reject, Promise] = chunk loading, 0 = chunk loaded +/******/ var installedChunks = { +/******/ "blocks/release-status/index": 0, +/******/ "blocks/release-status/style-index": 0 +/******/ }; +/******/ +/******/ // no chunk on demand loading +/******/ +/******/ // no prefetching +/******/ +/******/ // no preloaded +/******/ +/******/ // no HMR +/******/ +/******/ // no HMR manifest +/******/ +/******/ __webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0); +/******/ +/******/ // install a JSONP callback for chunk loading +/******/ var webpackJsonpCallback = (parentChunkLoadingFunction, data) => { +/******/ var chunkIds = data[0]; +/******/ var moreModules = data[1]; +/******/ var runtime = data[2]; +/******/ // add "moreModules" to the modules object, +/******/ // then flag all "chunkIds" as loaded and fire callback +/******/ var moduleId, chunkId, i = 0; +/******/ if(chunkIds.some((id) => (installedChunks[id] !== 0))) { +/******/ for(moduleId in moreModules) { +/******/ if(__webpack_require__.o(moreModules, moduleId)) { +/******/ __webpack_require__.m[moduleId] = moreModules[moduleId]; +/******/ } +/******/ } +/******/ if(runtime) var result = runtime(__webpack_require__); +/******/ } +/******/ if(parentChunkLoadingFunction) parentChunkLoadingFunction(data); +/******/ for(;i < chunkIds.length; i++) { +/******/ chunkId = chunkIds[i]; +/******/ if(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) { +/******/ installedChunks[chunkId][0](); +/******/ } +/******/ installedChunks[chunkId] = 0; +/******/ } +/******/ return __webpack_require__.O(result); +/******/ } +/******/ +/******/ var chunkLoadingGlobal = self["webpackChunkwporg_plugins_2024"] = self["webpackChunkwporg_plugins_2024"] || []; +/******/ chunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0)); +/******/ chunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal)); +/******/ })(); +/******/ +/************************************************************************/ +/******/ +/******/ // startup +/******/ // Load entry module and return exports +/******/ // This entry module depends on other loaded chunks and execution need to be delayed +/******/ var __webpack_exports__ = __webpack_require__.O(undefined, ["blocks/release-status/style-index"], () => (__webpack_require__("./src/blocks/release-status/index.js"))) +/******/ __webpack_exports__ = __webpack_require__.O(__webpack_exports__); +/******/ +/******/ })() +; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status/render.php index 7ee87a9871..e58ec53a6b 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status/render.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status/render.php @@ -1,16 +1,20 @@ context['postId']; -if ( ! $current_post_id ) { +if ( ! $block->context['postId'] ) { return; } $post = get_post( $block->context['postId'] ); if ( ! $post ) { - return; + return; } + +if( 'draft' !== $post->post_status ) { + return; +} + ?>
    > -post_status)->label; ?> + post_status )->label; ?>
    diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status/style-index.css b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status/style-index.css index 0d122edafe..3a9fab5125 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status/style-index.css +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status/style-index.css @@ -1 +1,11 @@ -.wp-block-wporg-release-status{border:1px solid var(--wp--preset--color--blueberry-3);border-radius:var(--wp--custom--button--border--radius);font-size:var(--wp--preset--font-size--extra-small);padding:2px 10px} +/*!*************************************************************************************************************************************************************************************************************************************************************!*\ + !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/blocks/release-status/style.scss ***! + \*************************************************************************************************************************************************************************************************************************************************************/ +.wp-block-wporg-release-status { + padding: 2px 10px; + border: 1px solid var(--wp--preset--color--blueberry-3); + font-size: var(--wp--preset--font-size--extra-small); + border-radius: var(--wp--custom--button--border--radius); +} + +/*# sourceMappingURL=style-index.css.map*/ \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/releases/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/releases/index.js deleted file mode 100644 index f71a7fd809..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/releases/index.js +++ /dev/null @@ -1 +0,0 @@ -(()=>{"use strict";var e,r={169:(e,r,n)=>{const o=window.React,t=window.wp.components,a=window.wp.blocks,i=window.wp.serverSideRender;var l=n.n(i);const s=window.wp.blockEditor,p=JSON.parse('{"u2":"wporg/releases"}');(0,a.registerBlockType)(p.u2,{edit:function({attributes:e,name:r}){return(0,o.createElement)("div",{...(0,s.useBlockProps)()},(0,o.createElement)(t.Disabled,null,(0,o.createElement)(l(),{block:r,attributes:e})))},save:()=>null})}},n={};function o(e){var t=n[e];if(void 0!==t)return t.exports;var a=n[e]={exports:{}};return r[e](a,a.exports,o),a.exports}o.m=r,e=[],o.O=(r,n,t,a)=>{if(!n){var i=1/0;for(u=0;u=a)&&Object.keys(o.O).every((e=>o.O[e](n[s])))?n.splice(s--,1):(l=!1,a0&&e[u-1][2]>a;u--)e[u]=e[u-1];e[u]=[n,t,a]},o.n=e=>{var r=e&&e.__esModule?()=>e.default:()=>e;return o.d(r,{a:r}),r},o.d=(e,r)=>{for(var n in r)o.o(r,n)&&!o.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),(()=>{var e={291:0,629:0};o.O.j=r=>0===e[r];var r=(r,n)=>{var t,a,i=n[0],l=n[1],s=n[2],p=0;if(i.some((r=>0!==e[r]))){for(t in l)o.o(l,t)&&(o.m[t]=l[t]);if(s)var u=s(o)}for(r&&r(n);po(169)));t=o.O(t)})(); \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/releases/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/releases/render.php deleted file mode 100644 index 43a3016ab4..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/releases/render.php +++ /dev/null @@ -1,50 +0,0 @@ - -
    - -
    -
    -
    - -
    - - - -
    -

    Actions

    -
    -
    - - - -
    -

    Checks

    - - - - - -

    Flags

    - - - - - -

    Changelog

    - - -
    -
    - -
    - -BLOCKS -); - -printf( - '
    %2$s
    ', - get_block_wrapper_attributes(), - $content -); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/releases/style-index.css b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/releases/style-index.css deleted file mode 100644 index 250674eb87..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/releases/style-index.css +++ /dev/null @@ -1 +0,0 @@ -.wp-block-wporg-releases ul{font-size:var(--wp--preset--font-size--small);margin-top:0} diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/search-page/index.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/search-page/index.asset.php index 3874c78df8..324a1e825f 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/search-page/index.asset.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/search-page/index.asset.php @@ -1 +1 @@ - array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => '6b2f02802534bd210435'); + array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => '2932d78d72daed3eaacc'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/search-page/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/search-page/index.js index 66e06627aa..7e3f159885 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/search-page/index.js +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/search-page/index.js @@ -1 +1,183 @@ -(()=>{"use strict";var e={n:t=>{var r=t&&t.__esModule?()=>t.default:()=>t;return e.d(r,{a:r}),r},d:(t,r)=>{for(var o in r)e.o(r,o)&&!e.o(t,o)&&Object.defineProperty(t,o,{enumerable:!0,get:r[o]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t)};const t=window.React,r=window.wp.components,o=window.wp.blocks,n=window.wp.serverSideRender;var a=e.n(n);const c=window.wp.blockEditor,l=JSON.parse('{"u2":"wporg/search-page"}');(0,o.registerBlockType)(l.u2,{edit:function({attributes:e,name:o}){return(0,t.createElement)("div",{...(0,c.useBlockProps)()},(0,t.createElement)(r.Disabled,null,(0,t.createElement)(a(),{block:o,attributes:e})))},save:()=>null})})(); \ No newline at end of file +/******/ (() => { // webpackBootstrap +/******/ "use strict"; +/******/ var __webpack_modules__ = ({ + +/***/ "react": +/*!************************!*\ + !*** external "React" ***! + \************************/ +/***/ ((module) => { + +module.exports = window["React"]; + +/***/ }), + +/***/ "@wordpress/block-editor": +/*!*************************************!*\ + !*** external ["wp","blockEditor"] ***! + \*************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["blockEditor"]; + +/***/ }), + +/***/ "@wordpress/blocks": +/*!********************************!*\ + !*** external ["wp","blocks"] ***! + \********************************/ +/***/ ((module) => { + +module.exports = window["wp"]["blocks"]; + +/***/ }), + +/***/ "@wordpress/components": +/*!************************************!*\ + !*** external ["wp","components"] ***! + \************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["components"]; + +/***/ }), + +/***/ "@wordpress/server-side-render": +/*!******************************************!*\ + !*** external ["wp","serverSideRender"] ***! + \******************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["serverSideRender"]; + +/***/ }), + +/***/ "./src/blocks/search-page/block.json": +/*!*******************************************!*\ + !*** ./src/blocks/search-page/block.json ***! + \*******************************************/ +/***/ ((module) => { + +module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"wporg/search-page","version":"0.1.0","title":"Search Page Content","category":"design","icon":"","description":"A block that displays the search page content","textdomain":"wporg","attributes":{},"supports":{"html":false},"editorScript":"file:./index.js","render":"file:./render.php"}'); + +/***/ }) + +/******/ }); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ // no module.id needed +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/************************************************************************/ +/******/ /* webpack/runtime/compat get default export */ +/******/ (() => { +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = (module) => { +/******/ var getter = module && module.__esModule ? +/******/ () => (module['default']) : +/******/ () => (module); +/******/ __webpack_require__.d(getter, { a: getter }); +/******/ return getter; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/define property getters */ +/******/ (() => { +/******/ // define getter functions for harmony exports +/******/ __webpack_require__.d = (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 */ +/******/ (() => { +/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) +/******/ })(); +/******/ +/******/ /* webpack/runtime/make namespace object */ +/******/ (() => { +/******/ // define __esModule on exports +/******/ __webpack_require__.r = (exports) => { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ })(); +/******/ +/************************************************************************/ +var __webpack_exports__ = {}; +// This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk. +(() => { +/*!*****************************************!*\ + !*** ./src/blocks/search-page/index.js ***! + \*****************************************/ +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); +/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/blocks */ "@wordpress/blocks"); +/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/server-side-render */ "@wordpress/server-side-render"); +/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/block-editor */ "@wordpress/block-editor"); +/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__); +/* harmony import */ var _block_json__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./block.json */ "./src/blocks/search-page/block.json"); + +/** + * WordPress dependencies + */ + + + + + +/** + * Internal dependencies + */ + +function Edit({ + attributes, + name +}) { + return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", { + ...(0,_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__.useBlockProps)() + }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Disabled, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)((_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default()), { + block: name, + attributes: attributes + }))); +} +(0,_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__.registerBlockType)(_block_json__WEBPACK_IMPORTED_MODULE_5__.name, { + edit: Edit, + save: () => null +}); +})(); + +/******/ })() +; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/single-plugin/index.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/single-plugin/index.asset.php index cb40720c88..d35f709556 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/single-plugin/index.asset.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/single-plugin/index.asset.php @@ -1 +1 @@ - array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => '553d7b70458e5cb3fa39'); + array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => '1bb248b43dcc36e48747'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/single-plugin/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/single-plugin/index.js index 4d9a19fd2b..8c8d7df376 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/single-plugin/index.js +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/single-plugin/index.js @@ -1 +1,183 @@ -(()=>{"use strict";var e={n:t=>{var r=t&&t.__esModule?()=>t.default:()=>t;return e.d(r,{a:r}),r},d:(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:(e,t)=>Object.prototype.hasOwnProperty.call(e,t)};const t=window.React,r=window.wp.components,n=window.wp.blocks,o=window.wp.serverSideRender;var l=e.n(o);const a=window.wp.blockEditor,i=JSON.parse('{"u2":"wporg/single-plugin"}');(0,n.registerBlockType)(i.u2,{edit:function({attributes:e,name:n}){return(0,t.createElement)("div",{...(0,a.useBlockProps)()},(0,t.createElement)(r.Disabled,null,(0,t.createElement)(l(),{block:n,attributes:e})))},save:()=>null})})(); \ No newline at end of file +/******/ (() => { // webpackBootstrap +/******/ "use strict"; +/******/ var __webpack_modules__ = ({ + +/***/ "react": +/*!************************!*\ + !*** external "React" ***! + \************************/ +/***/ ((module) => { + +module.exports = window["React"]; + +/***/ }), + +/***/ "@wordpress/block-editor": +/*!*************************************!*\ + !*** external ["wp","blockEditor"] ***! + \*************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["blockEditor"]; + +/***/ }), + +/***/ "@wordpress/blocks": +/*!********************************!*\ + !*** external ["wp","blocks"] ***! + \********************************/ +/***/ ((module) => { + +module.exports = window["wp"]["blocks"]; + +/***/ }), + +/***/ "@wordpress/components": +/*!************************************!*\ + !*** external ["wp","components"] ***! + \************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["components"]; + +/***/ }), + +/***/ "@wordpress/server-side-render": +/*!******************************************!*\ + !*** external ["wp","serverSideRender"] ***! + \******************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["serverSideRender"]; + +/***/ }), + +/***/ "./src/blocks/single-plugin/block.json": +/*!*********************************************!*\ + !*** ./src/blocks/single-plugin/block.json ***! + \*********************************************/ +/***/ ((module) => { + +module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"wporg/single-plugin","version":"0.1.0","title":"Single Plugin Content","category":"design","icon":"","description":"A block that displays the single plugin content","textdomain":"wporg","attributes":{},"supports":{"html":false},"usesContext":["postId"],"editorScript":"file:./index.js","render":"file:./render.php"}'); + +/***/ }) + +/******/ }); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ // no module.id needed +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/************************************************************************/ +/******/ /* webpack/runtime/compat get default export */ +/******/ (() => { +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = (module) => { +/******/ var getter = module && module.__esModule ? +/******/ () => (module['default']) : +/******/ () => (module); +/******/ __webpack_require__.d(getter, { a: getter }); +/******/ return getter; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/define property getters */ +/******/ (() => { +/******/ // define getter functions for harmony exports +/******/ __webpack_require__.d = (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 */ +/******/ (() => { +/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) +/******/ })(); +/******/ +/******/ /* webpack/runtime/make namespace object */ +/******/ (() => { +/******/ // define __esModule on exports +/******/ __webpack_require__.r = (exports) => { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ })(); +/******/ +/************************************************************************/ +var __webpack_exports__ = {}; +// This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk. +(() => { +/*!*******************************************!*\ + !*** ./src/blocks/single-plugin/index.js ***! + \*******************************************/ +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); +/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/blocks */ "@wordpress/blocks"); +/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/server-side-render */ "@wordpress/server-side-render"); +/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/block-editor */ "@wordpress/block-editor"); +/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__); +/* harmony import */ var _block_json__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./block.json */ "./src/blocks/single-plugin/block.json"); + +/** + * WordPress dependencies + */ + + + + + +/** + * Internal dependencies + */ + +function Edit({ + attributes, + name +}) { + return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", { + ...(0,_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__.useBlockProps)() + }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Disabled, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)((_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default()), { + block: name, + attributes: attributes + }))); +} +(0,_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__.registerBlockType)(_block_json__WEBPACK_IMPORTED_MODULE_5__.name, { + edit: Edit, + save: () => null +}); +})(); + +/******/ })() +; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/functions.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/functions.php index 227876a685..016ee124c3 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/functions.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/functions.php @@ -23,6 +23,8 @@ require_once( __DIR__ . '/src/blocks/plugin-card/index.php' ); require_once( __DIR__ . '/src/blocks/release-checks/index.php' ); require_once( __DIR__ . '/src/blocks/release-confirmation/index.php' ); +require_once( __DIR__ . '/src/blocks/release-date/index.php' ); +require_once( __DIR__ . '/src/blocks/release-menu-options/index.php' ); require_once( __DIR__ . '/src/blocks/release-status/index.php' ); // Block Configs diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/inc/block-config.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/inc/block-config.php index 6ad79a00d1..2bd780e2f4 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/inc/block-config.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/inc/block-config.php @@ -7,6 +7,7 @@ use WordPressdotorg\Plugin_Directory\Tools; +add_action( 'init', __NAMESPACE__ . '\handle_publish_action' ); add_filter( 'wporg_block_navigation_menus', __NAMESPACE__ . '\add_site_navigation_menus' ); add_filter( 'wporg_query_filter_options_sort', __NAMESPACE__ . '\wporg_query_filter_options_sort' ); add_filter( 'wporg_query_filter_options_business_model', __NAMESPACE__ . '\wporg_query_filter_options_business_model' ); @@ -435,3 +436,16 @@ function filter_language_suggest( $block_content ) { $html->add_class( 'is-style-prominent' ); return $html->get_updated_html(); } + +/** + * Handle form that publishes or discards a release. + */ +function handle_publish_action() { + if ( isset( $_POST['publish_release_nonce'] ) && wp_verify_nonce( $_POST['publish_release_nonce'], 'publish-release-action' ) ) { + if ( 'publish' === $_POST['action'] ) { + var_dump('publish: not yet implemented'); + } elseif ('discard' === $_POST['action']) { + var_dump('discard: not yet implemented'); + } + } +} diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/package.json b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/package.json index afdd98ec12..ccd69eb011 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/package.json +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/package.json @@ -7,11 +7,11 @@ "main": "index.php", "scripts": { "watch:css": "grunt watch", - "watch:js": "wp-scripts start", + "watch:js": "wp-scripts start --experimental-modules", "watch": "concurrently \"npm run watch:js\" \"npm run watch:css\"", "build:css": "grunt build", "build:old:js": "wp-scripts build client/theme.js --webpack-src-dir=client --output-path=js/build", - "build:js": "wp-scripts build", + "build:js": "wp-scripts build --experimental-modules", "build": "npm run build:css && npm run build:js", "format:js": "wp-scripts format client", "lint:js": "wp-scripts lint-js client", diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/parts/releases.html b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/parts/releases.html index 45dfa8ba75..960652bc96 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/parts/releases.html +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/parts/releases.html @@ -1,51 +1,49 @@ -

    Releases

    +

    Releases

    - - -
    - - -
    - -
    - -
    - - -
    - + + +
    + + +
    + +
    + +
    + + +
    + - - -
    - - -

    🔨

    - -
    - -
    - + + +
    + + +
    + +
    + - - -
    - + + +
    + - - - - - + + + + + - - -
    - + + +
    +
    diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/patterns/releases-no-results.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/patterns/releases-no-results.php index 31e9c82eac..5c748af26d 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/patterns/releases-no-results.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/patterns/releases-no-results.php @@ -7,8 +7,7 @@ ?> - - +

    diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-confirmation/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-confirmation/render.php index ed6aa94c30..b8d0100df8 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-confirmation/render.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-confirmation/render.php @@ -1,56 +1,53 @@ context['postId']; -if ( ! $current_post_id ) { +if ( ! $block->context['postId'] ) { return; } $post = get_post( $block->context['postId'] ); if ( ! $post ) { - return; + return; } if( 'publish' === $post->post_status) { - return; + return; } $copy = sprintf( - 'This release was last updated on %s by %s.', - date_i18n( get_option( 'date_format' ) . ' ' . get_option( 'time_format' ), strtotime( $post->post_modified ) ), - get_the_author_meta( 'display_name', $post->post_author ) + 'This release was last updated on %s by %s.', + date_i18n( get_option( 'date_format' ) . ' ' . get_option( 'time_format' ), strtotime( $post->post_modified ) ), + get_the_author_meta( 'display_name', $post->post_author ) ); ?> - -
    > - - -
    -

    - - - -

    - - - -
    -
    -
    - - - -
    -
    -
    -
    - - - - - - -
    - - - +
    > + + + +
    +

    + + + +

    + + + +
    +
    + +
    + +
    + +
    +
    + + +
    + +
    diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-confirmation/style.scss b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-confirmation/style.scss index 59531e6682..cd1d58a3aa 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-confirmation/style.scss +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-confirmation/style.scss @@ -1,3 +1,4 @@ -.wp-block-wporg-release-confirmation .wp-block-buttons { - display: flex; // I'm not sure why they are not working. +.wp-block-wporg-release-confirmation .wporg-release-confirmation-actions { + display: flex; // I'm not sure why they are not working. + gap: 8px; } \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/releases/block.json b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-date/block.json similarity index 69% rename from wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/releases/block.json rename to wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-date/block.json index f9ab6de33d..815186dd7e 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/releases/block.json +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-date/block.json @@ -1,17 +1,18 @@ { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 2, - "name": "wporg/releases", + "name": "wporg/release-date", "version": "0.1.0", - "title": "Displays releases.", + "title": "Release Date.", "category": "design", "icon": "", - "description": "A block to display releases", + "description": "A block to display release date", "textdomain": "wporg", "attributes": {}, "supports": { "html": false }, + "usesContext": [ "postId" ], "editorScript": "file:./index.js", "render": "file:./render.php", "style": "file:./style-index.css" diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-date/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-date/index.js new file mode 100644 index 0000000000..9e4580b21f --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-date/index.js @@ -0,0 +1,27 @@ +/** + * WordPress dependencies + */ +import { Disabled } from '@wordpress/components'; +import { registerBlockType } from '@wordpress/blocks'; +import ServerSideRender from '@wordpress/server-side-render'; +import { useBlockProps } from '@wordpress/block-editor'; + +/** + * Internal dependencies + */ +import metadata from './block.json'; + +function Edit( { attributes, name } ) { + return ( +
    + + + +
    + ); +} + +registerBlockType( metadata.name, { + edit: Edit, + save: () => null, +} ); \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/releases/index.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-date/index.php similarity index 78% rename from wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/releases/index.php rename to wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-date/index.php index dbeb58c44c..a9afca4fe3 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/releases/index.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-date/index.php @@ -6,7 +6,7 @@ * @package wporg */ -namespace WordPressdotorg\Theme\Plugins_2024\Releases; +namespace WordPressdotorg\Theme\Plugins_2024\ReleaseDate; add_action( 'init', __NAMESPACE__ . '\init' ); @@ -18,5 +18,5 @@ * @see https://developer.wordpress.org/reference/functions/register_block_type/ */ function init() { - register_block_type( __DIR__ . '/../../../build/blocks/releases' ); + register_block_type( __DIR__ . '/../../../build/blocks/release-date' ); } diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-date/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-date/render.php new file mode 100644 index 0000000000..d7108a149d --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-date/render.php @@ -0,0 +1,18 @@ +context['postId'] ) { + return; +} + +$post = get_post( $block->context['postId'] ); +if ( ! $post ) { + return; +} + +if( 'publish' !== $post->post_status ) { + return; +} + +echo do_blocks( '' ); + +?> diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-menu-options/block.json b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-menu-options/block.json new file mode 100644 index 0000000000..0eec06a03f --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-menu-options/block.json @@ -0,0 +1,17 @@ +{ + "apiVersion": 2, + "name": "wporg/release-menu-options", + "title": "Dropdown menu for release", + "category": "widgets", + "icon": "menu", + "description": "Display the dropdown menu option for a release.", + "supports": { + "html": false + }, + "usesContext": [ "postId" ], + "textdomain": "wporg", + "editorScript": "file:./index.js", + "viewScriptModule": "file:./view.js", + "style": "file:./style-index.css", + "render": "file:./render.php" +} \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/releases/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-menu-options/index.js similarity index 100% rename from wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/releases/index.js rename to wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-menu-options/index.js diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-menu-options/index.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-menu-options/index.php new file mode 100644 index 0000000000..65105a33ce --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-menu-options/index.php @@ -0,0 +1,22 @@ + 'download', + 'title' => __( 'Download', 'wporg-plugins' ), + ), + array( + 'id' => 'playground', + 'title' => __( 'Test in Playground', 'wporg-plugins' ), + ), +); + +?> +
    +
    + + + Toggle menu + +
    + + + +
    +
    +
    diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-menu-options/style.scss b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-menu-options/style.scss new file mode 100644 index 0000000000..7ce0fd1d6d --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-menu-options/style.scss @@ -0,0 +1,64 @@ +.wporg-release-menu-options { + position: relative; + display: flex; + + summary { + display: flex; + align-items: center; + justify-content: center; + width: 32px; + height: 32px; + border-radius: 2px; + cursor: pointer; + line-height: 16px; + list-style: none; + } + + summary:hover { + background-color: var(--wp--preset--color--light-grey-2); + } + + summary:focus { + outline-color: var(--wp--custom--button--outline--focus--border--color); + } + + &[open] summary { + background-color: var(--wp--preset--color--charcoal-1); + color: var(--wp--preset--color--white); + } + + svg { + fill: currentColor; + } + + summary::-webkit-details-marker { + display: none; + } +} + +.wporg-release-menu-options-content { + position: absolute; + top: 100%; + right: 0; + z-index: 100000; + min-width: 200px; + margin: 4px 0 0; + padding: var(--wp--preset--spacing--10); + border: 1px solid var(--wp--preset--color--light-grey-1); + border-radius: 2px; + background-color: #fff; + + button { + display: block; + width: 100%; + background: none; + border: none; + text-align: left; + padding: var(--wp--preset--spacing--10); + } + + button:hover { + background-color: var(--wp--preset--color--light-grey-2); + color: var(--wp--preset--color--charcoal-1); + } +} diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-menu-options/view.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-menu-options/view.js new file mode 100644 index 0000000000..e1fef8a738 --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-menu-options/view.js @@ -0,0 +1,27 @@ +import { store } from '@wordpress/interactivity' + +store( 'wporg-release-menu-options', { + actions: { + handleMenuItemClick: ( event ) => { + const itemId = event.target.dataset.itemId; + + switch ( itemId ) { + case 'download': + alert( 'download: not implemented'); + break; + + case 'playground': + alert( 'playground: not implemented' ); + break; + } + }, + + handleFocusOut: (event) => { + const details = event.target.closest( 'details' ); + + if ( details && !details.contains( event.relatedTarget ) ) { + details.removeAttribute( 'open' ); + } + } + } +}); \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-status/block.json b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-status/block.json index e99dadbaa8..4c8f8debf7 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-status/block.json +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-status/block.json @@ -3,7 +3,7 @@ "apiVersion": 2, "name": "wporg/release-status", "version": "0.1.0", - "title": "Displays release status.", + "title": "Release status.", "category": "design", "icon": "", "description": "A block to display release status", diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-status/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-status/render.php index 7ee87a9871..e58ec53a6b 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-status/render.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-status/render.php @@ -1,16 +1,20 @@ context['postId']; -if ( ! $current_post_id ) { +if ( ! $block->context['postId'] ) { return; } $post = get_post( $block->context['postId'] ); if ( ! $post ) { - return; + return; } + +if( 'draft' !== $post->post_status ) { + return; +} + ?>
    > -post_status)->label; ?> + post_status )->label; ?>
    diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-status/style.scss b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-status/style.scss index 368331bcf3..d89d64b6f6 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-status/style.scss +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-status/style.scss @@ -1,6 +1,6 @@ .wp-block-wporg-release-status { - padding: 2px 10px; - border: 1px solid var(--wp--preset--color--blueberry-3); - font-size: var(--wp--preset--font-size--extra-small); - border-radius: var(--wp--custom--button--border--radius); + padding: 2px 10px; + border: 1px solid var(--wp--preset--color--blueberry-3); + font-size: var(--wp--preset--font-size--extra-small); + border-radius: var(--wp--custom--button--border--radius); } \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/releases/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/releases/render.php deleted file mode 100644 index 43a3016ab4..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/releases/render.php +++ /dev/null @@ -1,50 +0,0 @@ - -
    - -
    -
    -
    - -
    - - - -
    -

    Actions

    -
    -
    - - - -
    -

    Checks

    - - - - - -

    Flags

    - - - - - -

    Changelog

    - - -
    -
    - -
    - -BLOCKS -); - -printf( - '
    %2$s
    ', - get_block_wrapper_attributes(), - $content -); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/releases/style.scss b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/releases/style.scss deleted file mode 100644 index 09ba86b98d..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/releases/style.scss +++ /dev/null @@ -1,4 +0,0 @@ -.wp-block-wporg-releases ul { - margin-top: 0; - font-size: var(--wp--preset--font-size--small); -} From c637479de06a21f398c99171ed04e4e9eb5bcb5b Mon Sep 17 00:00:00 2001 From: StevenDufresne Date: Tue, 19 Nov 2024 04:43:51 +0000 Subject: [PATCH 08/84] Hook up the release menu options. --- .../blocks/release-menu-options/render.php | 39 ++++++++----------- .../release-menu-options/style-index.css | 7 ++-- .../release-menu-options/view.asset.php | 2 +- .../build/blocks/release-menu-options/view.js | 11 ------ .../wporg-plugins-2024/parts/releases.html | 2 +- .../blocks/release-menu-options/render.php | 39 ++++++++----------- .../blocks/release-menu-options/style.scss | 7 ++-- .../src/blocks/release-menu-options/view.js | 14 ------- 8 files changed, 44 insertions(+), 77 deletions(-) diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-menu-options/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-menu-options/render.php index 4a74b4ef7c..4ae11a3e9e 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-menu-options/render.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-menu-options/render.php @@ -1,22 +1,19 @@ 'download', - 'title' => __( 'Download', 'wporg-plugins' ), - ), - array( - 'id' => 'playground', - 'title' => __( 'Test in Playground', 'wporg-plugins' ), - ), -); +use WordPressdotorg\Plugin_Directory\Template; + +if ( ! $block->context['postId'] ) { + return; +} + +$post = get_post( $block->context['postId'] ); +if ( ! $post ) { + return; +} ?>
    -
    +
    Toggle menu
    - - - + + + + + +
    diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-menu-options/style-index.css b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-menu-options/style-index.css index 9bacde54f4..834a02b09b 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-menu-options/style-index.css +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-menu-options/style-index.css @@ -45,17 +45,18 @@ border-radius: 2px; background-color: #fff; } -.wporg-release-menu-options-content button { +.wporg-release-menu-options-content a { display: block; width: 100%; background: none; border: none; text-align: left; padding: var(--wp--preset--spacing--10); + text-decoration: none; + color: var(--wp--preset--color--charcoal-1); } -.wporg-release-menu-options-content button:hover { +.wporg-release-menu-options-content a:hover { background-color: var(--wp--preset--color--light-grey-2); - color: var(--wp--preset--color--charcoal-1); } /*# sourceMappingURL=style-index.css.map*/ \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-menu-options/view.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-menu-options/view.asset.php index 519fb3c775..397ec29f31 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-menu-options/view.asset.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-menu-options/view.asset.php @@ -1 +1 @@ - array('@wordpress/interactivity'), 'version' => '16c84401abd1ca999e90', 'type' => 'module'); + array('@wordpress/interactivity'), 'version' => '5f8c6509cc3061492d30', 'type' => 'module'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-menu-options/view.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-menu-options/view.js index d83961a17e..09196e2537 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-menu-options/view.js +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-menu-options/view.js @@ -63,17 +63,6 @@ __webpack_require__.r(__webpack_exports__); (0,_wordpress_interactivity__WEBPACK_IMPORTED_MODULE_0__.store)('wporg-release-menu-options', { actions: { - handleMenuItemClick: event => { - const itemId = event.target.dataset.itemId; - switch (itemId) { - case 'download': - alert('download: not implemented'); - break; - case 'playground': - alert('playground: not implemented'); - break; - } - }, handleFocusOut: event => { const details = event.target.closest('details'); if (details && !details.contains(event.relatedTarget)) { diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/parts/releases.html b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/parts/releases.html index 960652bc96..797c6fcd25 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/parts/releases.html +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/parts/releases.html @@ -5,7 +5,7 @@

    Releases

    - +
    diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-menu-options/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-menu-options/render.php index 4a74b4ef7c..4ae11a3e9e 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-menu-options/render.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-menu-options/render.php @@ -1,22 +1,19 @@ 'download', - 'title' => __( 'Download', 'wporg-plugins' ), - ), - array( - 'id' => 'playground', - 'title' => __( 'Test in Playground', 'wporg-plugins' ), - ), -); +use WordPressdotorg\Plugin_Directory\Template; + +if ( ! $block->context['postId'] ) { + return; +} + +$post = get_post( $block->context['postId'] ); +if ( ! $post ) { + return; +} ?>
    -
    +
    Toggle menu
    - - - + + + + + +
    diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-menu-options/style.scss b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-menu-options/style.scss index 7ce0fd1d6d..1465e75a3f 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-menu-options/style.scss +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-menu-options/style.scss @@ -48,17 +48,18 @@ border-radius: 2px; background-color: #fff; - button { + a { display: block; width: 100%; background: none; border: none; text-align: left; padding: var(--wp--preset--spacing--10); + text-decoration: none; + color: var(--wp--preset--color--charcoal-1); } - button:hover { + a:hover { background-color: var(--wp--preset--color--light-grey-2); - color: var(--wp--preset--color--charcoal-1); } } diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-menu-options/view.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-menu-options/view.js index e1fef8a738..9520f8d90d 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-menu-options/view.js +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-menu-options/view.js @@ -2,20 +2,6 @@ import { store } from '@wordpress/interactivity' store( 'wporg-release-menu-options', { actions: { - handleMenuItemClick: ( event ) => { - const itemId = event.target.dataset.itemId; - - switch ( itemId ) { - case 'download': - alert( 'download: not implemented'); - break; - - case 'playground': - alert( 'playground: not implemented' ); - break; - } - }, - handleFocusOut: (event) => { const details = event.target.closest( 'details' ); From f409cfa58244ae003d90115357167a788a988770 Mon Sep 17 00:00:00 2001 From: StevenDufresne Date: Tue, 19 Nov 2024 04:48:39 +0000 Subject: [PATCH 09/84] Make CPT queryable. --- .../plugins/plugin-directory/class-plugin-directory.php | 2 ++ .../plugins/plugin-directory/class-plugin-release.php | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/wordpress.org/public_html/wp-content/plugins/plugin-directory/class-plugin-directory.php b/wordpress.org/public_html/wp-content/plugins/plugin-directory/class-plugin-directory.php index 7e95c7ea2b..db6df42460 100644 --- a/wordpress.org/public_html/wp-content/plugins/plugin-directory/class-plugin-directory.php +++ b/wordpress.org/public_html/wp-content/plugins/plugin-directory/class-plugin-directory.php @@ -67,6 +67,8 @@ private function __construct() { // Search Plugin_Search::instance(); + Plugin_Release::instance(); + // Add upload size limit to limit plugin ZIP file uploads to 10M add_filter( 'upload_size_limit', function( $size ) { return 10 * MB_IN_BYTES; diff --git a/wordpress.org/public_html/wp-content/plugins/plugin-directory/class-plugin-release.php b/wordpress.org/public_html/wp-content/plugins/plugin-directory/class-plugin-release.php index 737ca44a3e..39621b6529 100644 --- a/wordpress.org/public_html/wp-content/plugins/plugin-directory/class-plugin-release.php +++ b/wordpress.org/public_html/wp-content/plugins/plugin-directory/class-plugin-release.php @@ -40,7 +40,7 @@ public function init() { 'public' => false, 'show_ui' => false, 'exclude_from_search' => true, - 'publicly_queryable' => false, + 'publicly_queryable' => true, 'show_in_rest' => true, // FIXME: maybe? 'supports' => array( 'title', 'editor' ), // TBD 'rewrite' => false, From 809657296831de5e5ab9c15274fb96c8cf5dadf0 Mon Sep 17 00:00:00 2001 From: StevenDufresne Date: Tue, 19 Nov 2024 05:12:33 +0000 Subject: [PATCH 10/84] Add playground url. --- .../blocks/release-menu-options/render.php | 28 +++++++++++++++++-- .../blocks/release-menu-options/render.php | 28 +++++++++++++++++-- 2 files changed, 52 insertions(+), 4 deletions(-) diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-menu-options/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-menu-options/render.php index 4ae11a3e9e..c180dd6980 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-menu-options/render.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-menu-options/render.php @@ -11,6 +11,30 @@ return; } +$download_link = Template::download_link( $post->post_parent, get_post_meta( $post->ID, 'release_version', true ) ); + +$blueprint = <<
    @@ -21,10 +45,10 @@ Toggle menu diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-menu-options/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-menu-options/render.php index 4ae11a3e9e..c180dd6980 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-menu-options/render.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-menu-options/render.php @@ -11,6 +11,30 @@ return; } +$download_link = Template::download_link( $post->post_parent, get_post_meta( $post->ID, 'release_version', true ) ); + +$blueprint = <<
    @@ -21,10 +45,10 @@ Toggle menu From 6556218b79d848ce6390fba5c3c30219b69f8648 Mon Sep 17 00:00:00 2001 From: tellyworth Date: Thu, 21 Nov 2024 16:39:41 +1100 Subject: [PATCH 11/84] Fix some bugs; add safety measures around deletion and updates --- .../plugin-directory/class-plugin-release.php | 66 ++++++++++++++----- 1 file changed, 48 insertions(+), 18 deletions(-) diff --git a/wordpress.org/public_html/wp-content/plugins/plugin-directory/class-plugin-release.php b/wordpress.org/public_html/wp-content/plugins/plugin-directory/class-plugin-release.php index 39621b6529..a7051f6ed7 100644 --- a/wordpress.org/public_html/wp-content/plugins/plugin-directory/class-plugin-release.php +++ b/wordpress.org/public_html/wp-content/plugins/plugin-directory/class-plugin-release.php @@ -74,13 +74,11 @@ public function get_releases( $plugin ) { public function add_release( $plugin, $release ) { $plugin_id = ( get_post( $plugin ) )->ID; - // Make sure we don't accidentally add junk from a sandbox while tinkering. - die( "Not yet ready for use" ); - $release_date = date( 'Y-m-d H:i:s', strtotime( $tag['date'] ) ); - $committer_user_id = get_user_by( 'login', $tag['author'] )->ID; + $release_date = date( 'Y-m-d H:i:s', $release['date'] ); + $committer_user_id = get_user_by( 'login', reset( $release['committer'] ) )->ID; if ( ! $committer_user_id ) { - return new WP_Error( 'invalid_committer', 'Invalid committer' ); + return new \WP_Error( 'invalid_committer', 'Invalid committer' ); } $release_id = wp_insert_post( array( @@ -108,17 +106,20 @@ public function add_release( $plugin, $release ) { * Update existing release info. */ public function update_release( $release_id, $release ) { - // Make sure we don't accidentally add junk from a sandbox while tinkering. - die( "Not yet ready for use" ); - $release_date = date( 'Y-m-d H:i:s', strtotime( $tag['date'] ) ); - $committer_user_id = get_user_by( 'login', $tag['author'] )->ID; + $release_date = date( 'Y-m-d H:i:s', $release['date'] ); + $committer_user_id = get_user_by( 'login', reset( $release['committer'] ) )->ID; if ( ! $committer_user_id ) { - return new WP_Error( 'invalid_committer', 'Invalid committer' ); + return new \WP_Error( 'invalid_committer', 'Invalid committer' ); + } + + $release_post = get_post( $release_id ); + if ( ! $release_post || 'plugin_release' !== $release_post->post_type ) { + return new \WP_Error( 'invalid_release', 'Invalid release' ); } $release_id = wp_update_post( array( - 'ID' => $release_id, + 'ID' => $release_id, 'post_type' => 'plugin_release', 'post_title' => $release['version'], 'post_parent' => $plugin_id, @@ -139,35 +140,64 @@ public function update_release( $release_id, $release ) { return $release_id; } + function delete_release( $release_id ) { + $release_post = get_post( $release_id ); + if ( ! $release_post || 'plugin_release' !== $release_post->post_type ) { + return new \WP_Error( 'invalid_release', 'Invalid release' ); + } + return var_dump( __FUNCTION__, $release_id ); + return wp_delete_post( $release_id, false ); // FIXME: change to true for force delete when this is ready and WELL TESTED. + } + /** * Update all release info for a plugin. This will insert or update each release, and remove any unknown releases. + * + * @param int|WP_Post $plugin The plugin post. + * @param array $releases An array of release data. Should be a complete array of all releases. + * @return int|WP_Error The number of changes made. */ public function update_releases( $plugin, $releases ) { $plugin_id = ( get_post( $plugin ) )->ID; - // Make sure we don't accidentally add junk from a sandbox while tinkering. - die( "Not yet ready for use" ); + if ( 'plugin' !== get_post_type( $plugin ) ) { + return new \WP_Error( 'invalid_plugin', 'Invalid plugin' ); + } $changed = false; // The current releases, if any, that need to be updated. $current_releases = $this->get_releases( $plugin ); $current_versions = wp_list_pluck( $current_releases, 'post_title', 'ID' ); + #var_dump( $current_versions, $releases ); die; // Add or update each release. foreach ( $releases as $release ) { - if ( ! isset( $current_versions[ $release['version'] ] ) ) { - $changed = $changed | (bool)$this->add_release( $plugin, $release ); + if ( ! in_array( $release['version'], $current_versions ) ) { + $r = $this->add_release( $plugin, $release ); + fputs( STDERR, 'update: ' . var_export( $r, true ) ); + if ( is_wp_error( $r ) ) { + return $r; + } + ++ $changed; } else { - $release_id = $current_versions[ $release['version'] ]; - $changed = $changed | (bool)$this->update_release( $release_id, $release ); + $release_id = array_search( $release['version'], $current_versions ); + $r = $this->update_release( $release_id, $release ); + fputs( STDERR, 'update: ' . var_export( $r, true ) ); + if ( is_wp_error( $r ) ) { + return $r; + } + ++ $changed; } } // Remove any releases that are no longer present. foreach ( $current_releases as $release_id => $release ) { if ( ! in_array( $release->post_title, wp_list_pluck( $releases, 'version' ) ) ) { - $changed = $changed | (bool)wp_delete_post( $release_id, true ); // Force delete. + $r = $this->delete_release( $release_id ); + if ( is_wp_error( $r ) ) { + return $r; + } + ++ $changed; } } From 4f1040550924b44329b0550073dc2014361d61c3 Mon Sep 17 00:00:00 2001 From: tellyworth Date: Fri, 22 Nov 2024 15:43:18 +1100 Subject: [PATCH 12/84] Don't call this yet --- .../plugins/plugin-directory/class-plugin-directory.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/wordpress.org/public_html/wp-content/plugins/plugin-directory/class-plugin-directory.php b/wordpress.org/public_html/wp-content/plugins/plugin-directory/class-plugin-directory.php index db6df42460..cb5166a785 100644 --- a/wordpress.org/public_html/wp-content/plugins/plugin-directory/class-plugin-directory.php +++ b/wordpress.org/public_html/wp-content/plugins/plugin-directory/class-plugin-directory.php @@ -1743,7 +1743,7 @@ public static function get_releases( $plugin ) { // FIXME: limit creation of data while we're testing. Remove this for production. // For now we'll mirror the releases postmeta into the CPT. If/when we're confident the behaviour is identical, we can remove the postmeta part. - if ( in_array( 'wordpressdotorg', Tools::get_plugin_committers( $plugin->ID ) ) ) { + if ( false && in_array( 'wordpressdotorg', Tools::get_plugin_committers( $plugin->ID ) ) ) { Plugin_Release::instance()->update_releases( $plugin, $releases ); } } From 440da787e4de283b0baad31fbf13c0f7dec9ba23 Mon Sep 17 00:00:00 2001 From: tellyworth Date: Fri, 22 Nov 2024 15:44:04 +1100 Subject: [PATCH 13/84] Handle duplicate CPTs; includes non-functional code for debugging --- .../plugin-directory/class-plugin-release.php | 27 +++++++++++++------ 1 file changed, 19 insertions(+), 8 deletions(-) diff --git a/wordpress.org/public_html/wp-content/plugins/plugin-directory/class-plugin-release.php b/wordpress.org/public_html/wp-content/plugins/plugin-directory/class-plugin-release.php index a7051f6ed7..44a16eb17f 100644 --- a/wordpress.org/public_html/wp-content/plugins/plugin-directory/class-plugin-release.php +++ b/wordpress.org/public_html/wp-content/plugins/plugin-directory/class-plugin-release.php @@ -81,7 +81,8 @@ public function add_release( $plugin, $release ) { return new \WP_Error( 'invalid_committer', 'Invalid committer' ); } - $release_id = wp_insert_post( array( +# $release_id = wp_insert_post( array( + var_dump( 'wp_insert_post', array( 'post_type' => 'plugin_release', 'post_title' => $release['version'], 'post_parent' => $plugin_id, @@ -118,8 +119,9 @@ public function update_release( $release_id, $release ) { return new \WP_Error( 'invalid_release', 'Invalid release' ); } - $release_id = wp_update_post( array( - 'ID' => $release_id, +# $release_id = wp_update_post( array( + var_dump( 'wp_update_post', array( + 'ID' => $release_id, 'post_type' => 'plugin_release', 'post_title' => $release['version'], 'post_parent' => $plugin_id, @@ -168,13 +170,13 @@ public function update_releases( $plugin, $releases ) { // The current releases, if any, that need to be updated. $current_releases = $this->get_releases( $plugin ); $current_versions = wp_list_pluck( $current_releases, 'post_title', 'ID' ); - #var_dump( $current_versions, $releases ); die; + #var_dump( 'current_versions', $current_versions, 'releases', $releases ); die; // Add or update each release. foreach ( $releases as $release ) { if ( ! in_array( $release['version'], $current_versions ) ) { $r = $this->add_release( $plugin, $release ); - fputs( STDERR, 'update: ' . var_export( $r, true ) ); + fputs( STDERR, 'add: ' . var_export( $r, true ) . "\n" ); if ( is_wp_error( $r ) ) { return $r; } @@ -182,7 +184,7 @@ public function update_releases( $plugin, $releases ) { } else { $release_id = array_search( $release['version'], $current_versions ); $r = $this->update_release( $release_id, $release ); - fputs( STDERR, 'update: ' . var_export( $r, true ) ); + fputs( STDERR, 'update: ' . var_export( $r, true ) . "\n" ); if ( is_wp_error( $r ) ) { return $r; } @@ -191,8 +193,17 @@ public function update_releases( $plugin, $releases ) { } // Remove any releases that are no longer present. - foreach ( $current_releases as $release_id => $release ) { - if ( ! in_array( $release->post_title, wp_list_pluck( $releases, 'version' ) ) ) { + foreach ( $current_versions as $release_id => $release_version ) { + // A CPT that doesn't exist in the $releases array should be removed. + if ( ! in_array( $release_version, wp_list_pluck( $releases, 'version' ) ) ) { + $r = $this->delete_release( $release_id ); + if ( is_wp_error( $r ) ) { + return $r; + } + ++ $changed; + } + if ( $release_id !== array_search( $release_version, $current_versions ) ) { + var_dump( "duplicate release", $release_id, $release_version ); $r = $this->delete_release( $release_id ); if ( is_wp_error( $r ) ) { return $r; From 3804b5c8e6ccbcd86e088c1cadf30c872a434204 Mon Sep 17 00:00:00 2001 From: tellyworth Date: Fri, 22 Nov 2024 17:04:29 +1100 Subject: [PATCH 14/84] Fix bug where post_parent was zeroed on update; remove debug and safety code --- .../plugin-directory/class-plugin-release.php | 36 +++++++++++++------ 1 file changed, 25 insertions(+), 11 deletions(-) diff --git a/wordpress.org/public_html/wp-content/plugins/plugin-directory/class-plugin-release.php b/wordpress.org/public_html/wp-content/plugins/plugin-directory/class-plugin-release.php index 44a16eb17f..a42f46e663 100644 --- a/wordpress.org/public_html/wp-content/plugins/plugin-directory/class-plugin-release.php +++ b/wordpress.org/public_html/wp-content/plugins/plugin-directory/class-plugin-release.php @@ -72,8 +72,12 @@ public function get_releases( $plugin ) { * Add release info for a plugin. */ public function add_release( $plugin, $release ) { - $plugin_id = ( get_post( $plugin ) )->ID; + $plugin = get_post( $plugin ); + $plugin_id = $plugin->ID; + if ( !$plugin || 'plugin' !== $plugin->post_type ) { + return new \WP_Error( 'invalid_plugin', 'Invalid plugin' ); + } $release_date = date( 'Y-m-d H:i:s', $release['date'] ); $committer_user_id = get_user_by( 'login', reset( $release['committer'] ) )->ID; @@ -81,10 +85,10 @@ public function add_release( $plugin, $release ) { return new \WP_Error( 'invalid_committer', 'Invalid committer' ); } -# $release_id = wp_insert_post( array( - var_dump( 'wp_insert_post', array( + $release_id = wp_insert_post( array( 'post_type' => 'plugin_release', 'post_title' => $release['version'], + 'post_name' => $plugin->post_name . '-' . $release['version'], 'post_parent' => $plugin_id, 'post_status' => 'publish', 'post_date' => $release_date, // And/or post_date_gmt? @@ -119,12 +123,17 @@ public function update_release( $release_id, $release ) { return new \WP_Error( 'invalid_release', 'Invalid release' ); } -# $release_id = wp_update_post( array( - var_dump( 'wp_update_post', array( + $parent_plugin = get_post( $release_post->post_parent ); + if ( ! $parent_plugin || 'plugin' !== $parent_plugin->post_type ) { + return new \WP_Error( 'invalid_plugin', 'Invalid plugin' ); + } + + $release_id = wp_update_post( array( 'ID' => $release_id, 'post_type' => 'plugin_release', 'post_title' => $release['version'], - 'post_parent' => $plugin_id, + 'post_name' => $parent_plugin->post_name . '-' . $release['version'], + 'post_parent' => $parent_plugin->ID, 'post_status' => 'publish', 'post_date' => $release_date, // And/or post_date_gmt? // Mirrors the metadata. @@ -147,7 +156,7 @@ function delete_release( $release_id ) { if ( ! $release_post || 'plugin_release' !== $release_post->post_type ) { return new \WP_Error( 'invalid_release', 'Invalid release' ); } - return var_dump( __FUNCTION__, $release_id ); + return wp_delete_post( $release_id, false ); // FIXME: change to true for force delete when this is ready and WELL TESTED. } @@ -170,21 +179,23 @@ public function update_releases( $plugin, $releases ) { // The current releases, if any, that need to be updated. $current_releases = $this->get_releases( $plugin ); $current_versions = wp_list_pluck( $current_releases, 'post_title', 'ID' ); - #var_dump( 'current_versions', $current_versions, 'releases', $releases ); die; // Add or update each release. foreach ( $releases as $release ) { if ( ! in_array( $release['version'], $current_versions ) ) { + // Add a CPT for the release if one does not yet exist. $r = $this->add_release( $plugin, $release ); - fputs( STDERR, 'add: ' . var_export( $r, true ) . "\n" ); + #fputs( STDERR, 'add: ' . var_export( $r, true ) . "\n" ); if ( is_wp_error( $r ) ) { return $r; } ++ $changed; } else { + // Update an existing CPT for the release. + // Note that this will update the CPT even if no data has changed. $release_id = array_search( $release['version'], $current_versions ); $r = $this->update_release( $release_id, $release ); - fputs( STDERR, 'update: ' . var_export( $r, true ) . "\n" ); + #fputs( STDERR, 'update: ' . var_export( $r, true ) . "\n" ); if ( is_wp_error( $r ) ) { return $r; } @@ -197,14 +208,17 @@ public function update_releases( $plugin, $releases ) { // A CPT that doesn't exist in the $releases array should be removed. if ( ! in_array( $release_version, wp_list_pluck( $releases, 'version' ) ) ) { $r = $this->delete_release( $release_id ); + #fputs( STDERR, 'delete: ' . var_export( $r, true ) . "\n" ); if ( is_wp_error( $r ) ) { return $r; } ++ $changed; } + // If there are multiple releases with the same version (title), remove all but the first. + // TODO: Not sure this code should stay. if ( $release_id !== array_search( $release_version, $current_versions ) ) { - var_dump( "duplicate release", $release_id, $release_version ); $r = $this->delete_release( $release_id ); + #fputs( STDERR, 'delete dupe: ' . var_export( $r, true ) . "\n" ); if ( is_wp_error( $r ) ) { return $r; } From 05ea0dd6a8bf41cdfe1533e8b82a37730cdebd1f Mon Sep 17 00:00:00 2001 From: tellyworth Date: Fri, 22 Nov 2024 17:06:16 +1100 Subject: [PATCH 15/84] Add a CLI script for creating/updating release CPTs during testing. --- .../bin/update-release-cpt.php | 86 +++++++++++++++++++ 1 file changed, 86 insertions(+) create mode 100644 wordpress.org/public_html/wp-content/plugins/plugin-directory/bin/update-release-cpt.php diff --git a/wordpress.org/public_html/wp-content/plugins/plugin-directory/bin/update-release-cpt.php b/wordpress.org/public_html/wp-content/plugins/plugin-directory/bin/update-release-cpt.php new file mode 100644 index 0000000000..af1e6c1808 --- /dev/null +++ b/wordpress.org/public_html/wp-content/plugins/plugin-directory/bin/update-release-cpt.php @@ -0,0 +1,86 @@ +releases ) ) { + fwrite( STDERR, "No releases found for $plugin_slug\n" ); + die(); +} + +echo "Updating releases for $plugin_slug...\n"; + +$updated = Plugin_Release::instance()->update_releases( $plugin, $plugin->releases ); +if ( is_wp_error( $updated ) ) { + fwrite( STDERR, "Failed to update releases for $plugin_slug: " . $updated->get_error_message() . "\n" ); + die(); +} +echo "Updated " . number_format( $updated ) . " releases for $plugin_slug\n"; + From 4273bc2eb0e2353f65cbb82bb7eda61164d2e895 Mon Sep 17 00:00:00 2001 From: StevenDufresne Date: Mon, 25 Nov 2024 05:12:07 +0000 Subject: [PATCH 16/84] Update meta details about blocks. --- .../wporg-plugins-2024/src/blocks/release-checks/block.json | 4 ++-- .../pub/wporg-plugins-2024/src/blocks/release-checks/index.js | 1 - .../wporg-plugins-2024/src/blocks/release-checks/index.php | 4 ++-- .../wporg-plugins-2024/src/blocks/release-checks/render.php | 1 - .../wporg-plugins-2024/src/blocks/release-checks/style.scss | 0 .../src/blocks/release-confirmation/block.json | 2 +- .../src/blocks/release-confirmation/index.php | 4 ++-- .../pub/wporg-plugins-2024/src/blocks/release-date/block.json | 4 ++-- .../pub/wporg-plugins-2024/src/blocks/release-date/index.php | 4 ++-- .../src/blocks/release-menu-options/block.json | 2 +- .../src/blocks/release-menu-options/index.php | 2 +- .../wporg-plugins-2024/src/blocks/release-status/block.json | 4 ++-- .../wporg-plugins-2024/src/blocks/release-status/index.php | 4 ++-- 13 files changed, 17 insertions(+), 19 deletions(-) delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-checks/style.scss diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-checks/block.json b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-checks/block.json index 9902a69dfe..3a05c8ccb4 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-checks/block.json +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-checks/block.json @@ -3,10 +3,10 @@ "apiVersion": 2, "name": "wporg/release-checks", "version": "0.1.0", - "title": "Displays release checks.", + "title": "Release checks.", "category": "design", "icon": "", - "description": "A block to display release checks", + "description": "A block to display release checks.", "textdomain": "wporg", "attributes": {}, "supports": { diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-checks/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-checks/index.js index a52cd322ed..9e4580b21f 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-checks/index.js +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-checks/index.js @@ -10,7 +10,6 @@ import { useBlockProps } from '@wordpress/block-editor'; * Internal dependencies */ import metadata from './block.json'; -import './style.scss'; function Edit( { attributes, name } ) { return ( diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-checks/index.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-checks/index.php index 18888f6111..e0ba3960fc 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-checks/index.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-checks/index.php @@ -1,7 +1,7 @@ context['postId']; if ( ! $current_post_id ) { return; diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-checks/style.scss b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-checks/style.scss deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-confirmation/block.json b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-confirmation/block.json index d48d6f4dc3..50fb450c18 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-confirmation/block.json +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-confirmation/block.json @@ -3,7 +3,7 @@ "apiVersion": 2, "name": "wporg/release-confirmation", "version": "0.1.0", - "title": "Release confirmation banner.", + "title": "Release Confirmation Banner.", "category": "design", "icon": "", "description": "A block to display release confirmation banner.", diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-confirmation/index.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-confirmation/index.php index faf563e52b..8e7d5b81af 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-confirmation/index.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-confirmation/index.php @@ -1,7 +1,7 @@ Date: Mon, 25 Nov 2024 17:09:32 +1100 Subject: [PATCH 17/84] Add code to create a draft post for trunk releases Not sure this logic is quite right, since I'm only creating the draft when the version number doesn't already exist as a release. I think this probably needs to be a revision # check, but the revision isn't yet stored for all releases; I'll look at that tomorrow. --- .../plugin-directory/class-plugin-release.php | 50 ++++++++++++++++++- .../plugin-directory/cli/class-import.php | 18 +++++++ 2 files changed, 66 insertions(+), 2 deletions(-) diff --git a/wordpress.org/public_html/wp-content/plugins/plugin-directory/class-plugin-release.php b/wordpress.org/public_html/wp-content/plugins/plugin-directory/class-plugin-release.php index a42f46e663..da32b20be8 100644 --- a/wordpress.org/public_html/wp-content/plugins/plugin-directory/class-plugin-release.php +++ b/wordpress.org/public_html/wp-content/plugins/plugin-directory/class-plugin-release.php @@ -85,12 +85,14 @@ public function add_release( $plugin, $release ) { return new \WP_Error( 'invalid_committer', 'Invalid committer' ); } + $post_status = ( 'trunk' === $release['tag'] ) ? 'draft' : 'publish'; + $release_id = wp_insert_post( array( 'post_type' => 'plugin_release', 'post_title' => $release['version'], 'post_name' => $plugin->post_name . '-' . $release['version'], 'post_parent' => $plugin_id, - 'post_status' => 'publish', + 'post_status' => $post_status, 'post_date' => $release_date, // And/or post_date_gmt? // Mirrors the metadata. 'meta_input' => array( @@ -128,13 +130,15 @@ public function update_release( $release_id, $release ) { return new \WP_Error( 'invalid_plugin', 'Invalid plugin' ); } + $post_status = ( 'trunk' === $release['tag'] ) ? 'draft' : 'publish'; + $release_id = wp_update_post( array( 'ID' => $release_id, 'post_type' => 'plugin_release', 'post_title' => $release['version'], 'post_name' => $parent_plugin->post_name . '-' . $release['version'], 'post_parent' => $parent_plugin->ID, - 'post_status' => 'publish', + 'post_status' => $post_status, 'post_date' => $release_date, // And/or post_date_gmt? // Mirrors the metadata. 'meta_input' => array( @@ -151,6 +155,42 @@ public function update_release( $release_id, $release ) { return $release_id; } + /** + * Save draft (trunk) release for a plugin. + */ + public function add_or_update_draft_release( $plugin, $release ) { + $plugin = get_post( $plugin ); + $plugin_id = $plugin->ID; + + // Tag must be 'trunk' for this to be a draft release. + if ( 'trunk' !== $release['tag'] ) { + return new \WP_Error( 'invalid_tag', 'Invalid tag' ); + } + + // Version must be set; we'll only add/update if it doesn't match an existing non-draft release. + if ( empty( $release['version'] ) ) { + return new \WP_Error( 'invalid_version', 'Invalid version' ); + } + + if ( !$plugin || 'plugin' !== $plugin->post_type ) { + return new \WP_Error( 'invalid_plugin', 'Invalid plugin' ); + } + + // If a release with this version already exists, don't create a draft. + if ( $this->get_release( $plugin, $release['version'] ) ) { + return new \WP_Error( 'release_exists', 'Release already exists' ); + } + + $draft_id = $this->get_release( $plugin, 'trunk' ); + if ( $draft_id ) { + $release_id = $this->update_release( $draft_id, $release ); + } else { + $release_id = $this->add_release( $plugin, $release ); + } + + return $release_id; + } + function delete_release( $release_id ) { $release_post = get_post( $release_id ); if ( ! $release_post || 'plugin_release' !== $release_post->post_type ) { @@ -235,11 +275,17 @@ public function update_releases( $plugin, $releases ) { public function get_release( $plugin, $version ) { $plugin_id = ( get_post( $plugin ) )->ID; + // Note that the post_status is 'draft' for trunk releases. + $post_status = ( 'trunk' === $version ) ? 'draft' : 'publish'; + $release = get_posts( array( 'post_type' => 'plugin_release', 'posts_per_page' => 1, 'post_parent' => $plugin_id, 'post_title' => $version, + 'post_status' => $post_status, + 'orderby' => 'date', + 'order' => 'DESC', ) ); return $release ? $release[0] : null; diff --git a/wordpress.org/public_html/wp-content/plugins/plugin-directory/cli/class-import.php b/wordpress.org/public_html/wp-content/plugins/plugin-directory/cli/class-import.php index 4894e4298b..ab4c7d0cf2 100644 --- a/wordpress.org/public_html/wp-content/plugins/plugin-directory/cli/class-import.php +++ b/wordpress.org/public_html/wp-content/plugins/plugin-directory/cli/class-import.php @@ -7,6 +7,7 @@ use WordPressdotorg\Plugin_Directory\Block_JSON; use WordPressdotorg\Plugin_Directory\Plugin_Directory; use WordPressdotorg\Plugin_Directory\Email\Release_Confirmation as Release_Confirmation_Email; +use WordPressdotorg\Plugin_Directory\Plugin_Release; use WordPressdotorg\Plugin_Directory\Readme\{ Parser as Readme_Parser, Validator as Readme_Validator }; use WordPressdotorg\Plugin_Directory\Standalone\Plugins_Info_API; use WordPressdotorg\Plugin_Directory\Template; @@ -167,6 +168,23 @@ public function import_from_svn( $plugin_slug, $svn_changed_tags = array( 'trunk } } + // TODO: Test and confirm that this is the correct behavior. + if ( 'trunk' === $stable_tag ) { + // Create or update a 'draft' release CPT for trunk changes. + // Note that this will only create a new draft if the version doesn't already exist as a release. + // TODO: refine this behaviour. (Maybe compare revision numbers?) + $r = Plugin_Release::instance()->add_or_update_draft_release( + $plugin, + [ + 'tag' => 'trunk', + 'version' => $version, // TODO: Is this correct? + 'committer' => [ $last_committer ], + 'revision' => [ $last_revision ] + ] + ); + + } + // Release confirmation if ( $plugin->release_confirmation ) { // If the stable tag is trunk, we shouldn't continue, as we don't support that for RC. From 6de3c3e430aca14c4645d41e65d3913661d90822 Mon Sep 17 00:00:00 2001 From: StevenDufresne Date: Mon, 25 Nov 2024 06:45:56 +0000 Subject: [PATCH 18/84] Update the release-menu-options to use navigation. --- .../blocks/release-menu-options/block.json | 1 - .../blocks/release-menu-options/render.php | 45 ++++++----- .../blocks/release-menu-options/style.scss | 80 ++++++------------- .../src/blocks/release-menu-options/view.js | 13 --- 4 files changed, 52 insertions(+), 87 deletions(-) delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-menu-options/view.js diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-menu-options/block.json b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-menu-options/block.json index 911fe27963..ea4f401984 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-menu-options/block.json +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-menu-options/block.json @@ -11,7 +11,6 @@ "usesContext": [ "postId" ], "textdomain": "wporg", "editorScript": "file:./index.js", - "viewScriptModule": "file:./view.js", "style": "file:./style-index.css", "render": "file:./render.php" } \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-menu-options/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-menu-options/render.php index c180dd6980..61a8b051a9 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-menu-options/render.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-menu-options/render.php @@ -35,22 +35,29 @@ */ $encoded_blueprint_url = 'https://playground.wordpress.net/#' . base64_encode( $blueprint ); -?> -
    -
    - - - Toggle menu - - -
    -
    +$download_link = sprintf( + '', + esc_html( 'Download', 'wporg-plugins' ), + esc_url( $download_link ) +); + +$blueprint_link = sprintf( + '', + esc_html( 'Load in Playground', 'wporg-plugins' ), + esc_url( $encoded_blueprint_url ) +); + +$subnav = sprintf( + '%2$s %3$s', + esc_html( 'Release options', 'wporg-plugins' ), + $download_link, + $blueprint_link +); + +$navigation = sprintf( + '%2$s', + esc_html( 'Release options', 'release options label', 'wporg-plugins' ), + $subnav +); + +echo do_blocks( $navigation ); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-menu-options/style.scss b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-menu-options/style.scss index 1465e75a3f..51c6c2a247 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-menu-options/style.scss +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-menu-options/style.scss @@ -1,65 +1,37 @@ .wporg-release-menu-options { - position: relative; - display: flex; - - summary { - display: flex; - align-items: center; - justify-content: center; - width: 32px; - height: 32px; - border-radius: 2px; - cursor: pointer; - line-height: 16px; - list-style: none; + .wp-block-navigation__submenu-container { + top: calc( 100% + 4px ) !important; + right: 0 !important; + left: auto !important; } - summary:hover { - background-color: var(--wp--preset--color--light-grey-2); + .wp-block-navigation-item { + background-color: initial; /* Stops the hidden overflow on focus */ } - summary:focus { - outline-color: var(--wp--custom--button--outline--focus--border--color); + .wp-block-navigation__submenu-icon { + display: none; /* Hide dropdown caret */ } - &[open] summary { - background-color: var(--wp--preset--color--charcoal-1); - color: var(--wp--preset--color--white); + /* Manually apply screen reader text styles */ + button > .wp-block-navigation-item__label { + word-wrap: normal !important; + border: 0; + clip-path: inset(50%); + height: 1px; + margin: -1px; + overflow: hidden; + padding: 0; + position: absolute; + width: 1px; } - svg { - fill: currentColor; - } - - summary::-webkit-details-marker { - display: none; - } -} - -.wporg-release-menu-options-content { - position: absolute; - top: 100%; - right: 0; - z-index: 100000; - min-width: 200px; - margin: 4px 0 0; - padding: var(--wp--preset--spacing--10); - border: 1px solid var(--wp--preset--color--light-grey-1); - border-radius: 2px; - background-color: #fff; - - a { - display: block; - width: 100%; - background: none; - border: none; - text-align: left; - padding: var(--wp--preset--spacing--10); - text-decoration: none; - color: var(--wp--preset--color--charcoal-1); - } - - a:hover { - background-color: var(--wp--preset--color--light-grey-2); + button { + content: ''; + background-image: url("data:image/svg+xml,
    -
    - - - Toggle menu - - -
    -
    +$download_link = sprintf( + '', + esc_html( 'Download', 'wporg-plugins' ), + esc_url( $download_link ) +); + +$blueprint_link = sprintf( + '', + esc_html( 'Load in Playground', 'wporg-plugins' ), + esc_url( $encoded_blueprint_url ) +); + +$subnav = sprintf( + '%2$s %3$s', + esc_html( 'Release options', 'wporg-plugins' ), + $download_link, + $blueprint_link +); + +$navigation = sprintf( + '%2$s', + esc_html( 'Release options', 'release options label', 'wporg-plugins' ), + $subnav +); + +echo do_blocks( $navigation ); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-menu-options/style-index.css b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-menu-options/style-index.css index 834a02b09b..12af1e2ea3 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-menu-options/style-index.css +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-menu-options/style-index.css @@ -1,62 +1 @@ -/*!*******************************************************************************************************************************************************************************************************************************************************************!*\ - !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/blocks/release-menu-options/style.scss ***! - \*******************************************************************************************************************************************************************************************************************************************************************/ -.wporg-release-menu-options { - position: relative; - display: flex; -} -.wporg-release-menu-options summary { - display: flex; - align-items: center; - justify-content: center; - width: 32px; - height: 32px; - border-radius: 2px; - cursor: pointer; - line-height: 16px; - list-style: none; -} -.wporg-release-menu-options summary:hover { - background-color: var(--wp--preset--color--light-grey-2); -} -.wporg-release-menu-options summary:focus { - outline-color: var(--wp--custom--button--outline--focus--border--color); -} -.wporg-release-menu-options[open] summary { - background-color: var(--wp--preset--color--charcoal-1); - color: var(--wp--preset--color--white); -} -.wporg-release-menu-options svg { - fill: currentColor; -} -.wporg-release-menu-options summary::-webkit-details-marker { - display: none; -} - -.wporg-release-menu-options-content { - position: absolute; - top: 100%; - right: 0; - z-index: 100000; - min-width: 200px; - margin: 4px 0 0; - padding: var(--wp--preset--spacing--10); - border: 1px solid var(--wp--preset--color--light-grey-1); - border-radius: 2px; - background-color: #fff; -} -.wporg-release-menu-options-content a { - display: block; - width: 100%; - background: none; - border: none; - text-align: left; - padding: var(--wp--preset--spacing--10); - text-decoration: none; - color: var(--wp--preset--color--charcoal-1); -} -.wporg-release-menu-options-content a:hover { - background-color: var(--wp--preset--color--light-grey-2); -} - -/*# sourceMappingURL=style-index.css.map*/ \ No newline at end of file +.wporg-release-menu-options .wp-block-navigation__submenu-container{left:auto!important;right:0!important;top:calc(100% + 4px)!important}.wporg-release-menu-options .wp-block-navigation-item{background-color:initial}.wporg-release-menu-options .wp-block-navigation__submenu-icon{display:none}.wporg-release-menu-options button>.wp-block-navigation-item__label{word-wrap:normal!important;border:0;clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.wporg-release-menu-options button{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 width=%2724%27 height=%2724%27 aria-hidden=%27true%27%3E%3Cpath d=%27M13 19h-2v-2h2zm0-6h-2v-2h2zm0-6h-2V5h2z%27/%3E%3C/svg%3E");background-position:50%;background-repeat:no-repeat;content:"";height:32px;width:32px} diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-menu-options/view.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-menu-options/view.asset.php deleted file mode 100644 index 397ec29f31..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-menu-options/view.asset.php +++ /dev/null @@ -1 +0,0 @@ - array('@wordpress/interactivity'), 'version' => '5f8c6509cc3061492d30', 'type' => 'module'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-menu-options/view.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-menu-options/view.js deleted file mode 100644 index 09196e2537..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-menu-options/view.js +++ /dev/null @@ -1,77 +0,0 @@ -import * as __WEBPACK_EXTERNAL_MODULE__wordpress_interactivity_8e89b257__ from "@wordpress/interactivity"; -/******/ var __webpack_modules__ = ({ - -/***/ "@wordpress/interactivity": -/*!*******************************************!*\ - !*** external "@wordpress/interactivity" ***! - \*******************************************/ -/***/ ((module) => { - -var x = y => { var x = {}; __webpack_require__.d(x, y); return x; } -var y = x => () => x -module.exports = __WEBPACK_EXTERNAL_MODULE__wordpress_interactivity_8e89b257__; - -/***/ }) - -/******/ }); -/************************************************************************/ -/******/ // The module cache -/******/ var __webpack_module_cache__ = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ // Check if module is in cache -/******/ var cachedModule = __webpack_module_cache__[moduleId]; -/******/ if (cachedModule !== undefined) { -/******/ return cachedModule.exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = __webpack_module_cache__[moduleId] = { -/******/ // no module.id needed -/******/ // no module.loaded needed -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/************************************************************************/ -/******/ /* webpack/runtime/make namespace object */ -/******/ (() => { -/******/ // define __esModule on exports -/******/ __webpack_require__.r = (exports) => { -/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { -/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); -/******/ } -/******/ Object.defineProperty(exports, '__esModule', { value: true }); -/******/ }; -/******/ })(); -/******/ -/************************************************************************/ -var __webpack_exports__ = {}; -// This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk. -(() => { -/*!*************************************************!*\ - !*** ./src/blocks/release-menu-options/view.js ***! - \*************************************************/ -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _wordpress_interactivity__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/interactivity */ "@wordpress/interactivity"); - -(0,_wordpress_interactivity__WEBPACK_IMPORTED_MODULE_0__.store)('wporg-release-menu-options', { - actions: { - handleFocusOut: event => { - const details = event.target.closest('details'); - if (details && !details.contains(event.relatedTarget)) { - details.removeAttribute('open'); - } - } - } -}); -})(); - - -//# sourceMappingURL=view.js.map \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status/block.json b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status/block.json index e82a72700d..f23bfa7924 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status/block.json +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status/block.json @@ -3,10 +3,10 @@ "apiVersion": 2, "name": "wporg/release-status", "version": "0.1.0", - "title": "Release status.", + "title": "Release Status", "category": "design", "icon": "", - "description": "A block to display release status", + "description": "A block to display release status.", "textdomain": "wporg", "attributes": {}, "supports": { diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status/index.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status/index.asset.php index 51ac782c74..ae48d16627 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status/index.asset.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status/index.asset.php @@ -1 +1 @@ - array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => '3a05880b2480c08069ed'); + array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => '5ba0c1f0bcdeb1df6776'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status/index.js index ca2663fce2..46af162598 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status/index.js +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status/index.js @@ -1,298 +1 @@ -/******/ (() => { // webpackBootstrap -/******/ "use strict"; -/******/ var __webpack_modules__ = ({ - -/***/ "./src/blocks/release-status/index.js": -/*!********************************************!*\ - !*** ./src/blocks/release-status/index.js ***! - \********************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); -/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/blocks */ "@wordpress/blocks"); -/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/server-side-render */ "@wordpress/server-side-render"); -/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/block-editor */ "@wordpress/block-editor"); -/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__); -/* harmony import */ var _block_json__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./block.json */ "./src/blocks/release-status/block.json"); -/* harmony import */ var _style_scss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./style.scss */ "./src/blocks/release-status/style.scss"); - -/** - * WordPress dependencies - */ - - - - - -/** - * Internal dependencies - */ - - -function Edit({ - attributes, - name -}) { - return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", { - ...(0,_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__.useBlockProps)() - }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Disabled, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)((_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default()), { - block: name, - attributes: attributes - }))); -} -(0,_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__.registerBlockType)(_block_json__WEBPACK_IMPORTED_MODULE_5__.name, { - edit: Edit, - save: () => null -}); - -/***/ }), - -/***/ "./src/blocks/release-status/style.scss": -/*!**********************************************!*\ - !*** ./src/blocks/release-status/style.scss ***! - \**********************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -// extracted by mini-css-extract-plugin - - -/***/ }), - -/***/ "react": -/*!************************!*\ - !*** external "React" ***! - \************************/ -/***/ ((module) => { - -module.exports = window["React"]; - -/***/ }), - -/***/ "@wordpress/block-editor": -/*!*************************************!*\ - !*** external ["wp","blockEditor"] ***! - \*************************************/ -/***/ ((module) => { - -module.exports = window["wp"]["blockEditor"]; - -/***/ }), - -/***/ "@wordpress/blocks": -/*!********************************!*\ - !*** external ["wp","blocks"] ***! - \********************************/ -/***/ ((module) => { - -module.exports = window["wp"]["blocks"]; - -/***/ }), - -/***/ "@wordpress/components": -/*!************************************!*\ - !*** external ["wp","components"] ***! - \************************************/ -/***/ ((module) => { - -module.exports = window["wp"]["components"]; - -/***/ }), - -/***/ "@wordpress/server-side-render": -/*!******************************************!*\ - !*** external ["wp","serverSideRender"] ***! - \******************************************/ -/***/ ((module) => { - -module.exports = window["wp"]["serverSideRender"]; - -/***/ }), - -/***/ "./src/blocks/release-status/block.json": -/*!**********************************************!*\ - !*** ./src/blocks/release-status/block.json ***! - \**********************************************/ -/***/ ((module) => { - -module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"wporg/release-status","version":"0.1.0","title":"Release status.","category":"design","icon":"","description":"A block to display release status","textdomain":"wporg","attributes":{},"supports":{"html":false},"usesContext":["postId"],"editorScript":"file:./index.js","render":"file:./render.php","style":"file:./style-index.css"}'); - -/***/ }) - -/******/ }); -/************************************************************************/ -/******/ // The module cache -/******/ var __webpack_module_cache__ = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ // Check if module is in cache -/******/ var cachedModule = __webpack_module_cache__[moduleId]; -/******/ if (cachedModule !== undefined) { -/******/ return cachedModule.exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = __webpack_module_cache__[moduleId] = { -/******/ // no module.id needed -/******/ // no module.loaded needed -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = __webpack_modules__; -/******/ -/************************************************************************/ -/******/ /* webpack/runtime/chunk loaded */ -/******/ (() => { -/******/ var deferred = []; -/******/ __webpack_require__.O = (result, chunkIds, fn, priority) => { -/******/ if(chunkIds) { -/******/ priority = priority || 0; -/******/ for(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1]; -/******/ deferred[i] = [chunkIds, fn, priority]; -/******/ return; -/******/ } -/******/ var notFulfilled = Infinity; -/******/ for (var i = 0; i < deferred.length; i++) { -/******/ var chunkIds = deferred[i][0]; -/******/ var fn = deferred[i][1]; -/******/ var priority = deferred[i][2]; -/******/ var fulfilled = true; -/******/ for (var j = 0; j < chunkIds.length; j++) { -/******/ if ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) { -/******/ chunkIds.splice(j--, 1); -/******/ } else { -/******/ fulfilled = false; -/******/ if(priority < notFulfilled) notFulfilled = priority; -/******/ } -/******/ } -/******/ if(fulfilled) { -/******/ deferred.splice(i--, 1) -/******/ var r = fn(); -/******/ if (r !== undefined) result = r; -/******/ } -/******/ } -/******/ return result; -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/compat get default export */ -/******/ (() => { -/******/ // getDefaultExport function for compatibility with non-harmony modules -/******/ __webpack_require__.n = (module) => { -/******/ var getter = module && module.__esModule ? -/******/ () => (module['default']) : -/******/ () => (module); -/******/ __webpack_require__.d(getter, { a: getter }); -/******/ return getter; -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/define property getters */ -/******/ (() => { -/******/ // define getter functions for harmony exports -/******/ __webpack_require__.d = (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 */ -/******/ (() => { -/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) -/******/ })(); -/******/ -/******/ /* webpack/runtime/make namespace object */ -/******/ (() => { -/******/ // define __esModule on exports -/******/ __webpack_require__.r = (exports) => { -/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { -/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); -/******/ } -/******/ Object.defineProperty(exports, '__esModule', { value: true }); -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/jsonp chunk loading */ -/******/ (() => { -/******/ // no baseURI -/******/ -/******/ // object to store loaded and loading chunks -/******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched -/******/ // [resolve, reject, Promise] = chunk loading, 0 = chunk loaded -/******/ var installedChunks = { -/******/ "blocks/release-status/index": 0, -/******/ "blocks/release-status/style-index": 0 -/******/ }; -/******/ -/******/ // no chunk on demand loading -/******/ -/******/ // no prefetching -/******/ -/******/ // no preloaded -/******/ -/******/ // no HMR -/******/ -/******/ // no HMR manifest -/******/ -/******/ __webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0); -/******/ -/******/ // install a JSONP callback for chunk loading -/******/ var webpackJsonpCallback = (parentChunkLoadingFunction, data) => { -/******/ var chunkIds = data[0]; -/******/ var moreModules = data[1]; -/******/ var runtime = data[2]; -/******/ // add "moreModules" to the modules object, -/******/ // then flag all "chunkIds" as loaded and fire callback -/******/ var moduleId, chunkId, i = 0; -/******/ if(chunkIds.some((id) => (installedChunks[id] !== 0))) { -/******/ for(moduleId in moreModules) { -/******/ if(__webpack_require__.o(moreModules, moduleId)) { -/******/ __webpack_require__.m[moduleId] = moreModules[moduleId]; -/******/ } -/******/ } -/******/ if(runtime) var result = runtime(__webpack_require__); -/******/ } -/******/ if(parentChunkLoadingFunction) parentChunkLoadingFunction(data); -/******/ for(;i < chunkIds.length; i++) { -/******/ chunkId = chunkIds[i]; -/******/ if(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) { -/******/ installedChunks[chunkId][0](); -/******/ } -/******/ installedChunks[chunkId] = 0; -/******/ } -/******/ return __webpack_require__.O(result); -/******/ } -/******/ -/******/ var chunkLoadingGlobal = self["webpackChunkwporg_plugins_2024"] = self["webpackChunkwporg_plugins_2024"] || []; -/******/ chunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0)); -/******/ chunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal)); -/******/ })(); -/******/ -/************************************************************************/ -/******/ -/******/ // startup -/******/ // Load entry module and return exports -/******/ // This entry module depends on other loaded chunks and execution need to be delayed -/******/ var __webpack_exports__ = __webpack_require__.O(undefined, ["blocks/release-status/style-index"], () => (__webpack_require__("./src/blocks/release-status/index.js"))) -/******/ __webpack_exports__ = __webpack_require__.O(__webpack_exports__); -/******/ -/******/ })() -; -//# sourceMappingURL=index.js.map \ No newline at end of file +(()=>{"use strict";var e,r={728:(e,r,t)=>{const n=window.React,o=window.wp.components,a=window.wp.blocks,i=window.wp.serverSideRender;var s=t.n(i);const l=window.wp.blockEditor,u=JSON.parse('{"u2":"wporg/release-status"}');(0,a.registerBlockType)(u.u2,{edit:function({attributes:e,name:r}){return(0,n.createElement)("div",{...(0,l.useBlockProps)()},(0,n.createElement)(o.Disabled,null,(0,n.createElement)(s(),{block:r,attributes:e})))},save:()=>null})}},t={};function n(e){var o=t[e];if(void 0!==o)return o.exports;var a=t[e]={exports:{}};return r[e](a,a.exports,n),a.exports}n.m=r,e=[],n.O=(r,t,o,a)=>{if(!t){var i=1/0;for(p=0;p=a)&&Object.keys(n.O).every((e=>n.O[e](t[l])))?t.splice(l--,1):(s=!1,a0&&e[p-1][2]>a;p--)e[p]=e[p-1];e[p]=[t,o,a]},n.n=e=>{var r=e&&e.__esModule?()=>e.default:()=>e;return n.d(r,{a:r}),r},n.d=(e,r)=>{for(var t in r)n.o(r,t)&&!n.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:r[t]})},n.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),(()=>{var e={400:0,467:0};n.O.j=r=>0===e[r];var r=(r,t)=>{var o,a,i=t[0],s=t[1],l=t[2],u=0;if(i.some((r=>0!==e[r]))){for(o in s)n.o(s,o)&&(n.m[o]=s[o]);if(l)var p=l(n)}for(r&&r(t);un(728)));o=n.O(o)})(); \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status/style-index.css b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status/style-index.css index 3a9fab5125..0d122edafe 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status/style-index.css +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status/style-index.css @@ -1,11 +1 @@ -/*!*************************************************************************************************************************************************************************************************************************************************************!*\ - !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/blocks/release-status/style.scss ***! - \*************************************************************************************************************************************************************************************************************************************************************/ -.wp-block-wporg-release-status { - padding: 2px 10px; - border: 1px solid var(--wp--preset--color--blueberry-3); - font-size: var(--wp--preset--font-size--extra-small); - border-radius: var(--wp--custom--button--border--radius); -} - -/*# sourceMappingURL=style-index.css.map*/ \ No newline at end of file +.wp-block-wporg-release-status{border:1px solid var(--wp--preset--color--blueberry-3);border-radius:var(--wp--custom--button--border--radius);font-size:var(--wp--preset--font-size--extra-small);padding:2px 10px} diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/search-page/index.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/search-page/index.asset.php index 324a1e825f..3874c78df8 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/search-page/index.asset.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/search-page/index.asset.php @@ -1 +1 @@ - array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => '2932d78d72daed3eaacc'); + array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => '6b2f02802534bd210435'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/search-page/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/search-page/index.js index 7e3f159885..66e06627aa 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/search-page/index.js +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/search-page/index.js @@ -1,183 +1 @@ -/******/ (() => { // webpackBootstrap -/******/ "use strict"; -/******/ var __webpack_modules__ = ({ - -/***/ "react": -/*!************************!*\ - !*** external "React" ***! - \************************/ -/***/ ((module) => { - -module.exports = window["React"]; - -/***/ }), - -/***/ "@wordpress/block-editor": -/*!*************************************!*\ - !*** external ["wp","blockEditor"] ***! - \*************************************/ -/***/ ((module) => { - -module.exports = window["wp"]["blockEditor"]; - -/***/ }), - -/***/ "@wordpress/blocks": -/*!********************************!*\ - !*** external ["wp","blocks"] ***! - \********************************/ -/***/ ((module) => { - -module.exports = window["wp"]["blocks"]; - -/***/ }), - -/***/ "@wordpress/components": -/*!************************************!*\ - !*** external ["wp","components"] ***! - \************************************/ -/***/ ((module) => { - -module.exports = window["wp"]["components"]; - -/***/ }), - -/***/ "@wordpress/server-side-render": -/*!******************************************!*\ - !*** external ["wp","serverSideRender"] ***! - \******************************************/ -/***/ ((module) => { - -module.exports = window["wp"]["serverSideRender"]; - -/***/ }), - -/***/ "./src/blocks/search-page/block.json": -/*!*******************************************!*\ - !*** ./src/blocks/search-page/block.json ***! - \*******************************************/ -/***/ ((module) => { - -module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"wporg/search-page","version":"0.1.0","title":"Search Page Content","category":"design","icon":"","description":"A block that displays the search page content","textdomain":"wporg","attributes":{},"supports":{"html":false},"editorScript":"file:./index.js","render":"file:./render.php"}'); - -/***/ }) - -/******/ }); -/************************************************************************/ -/******/ // The module cache -/******/ var __webpack_module_cache__ = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ // Check if module is in cache -/******/ var cachedModule = __webpack_module_cache__[moduleId]; -/******/ if (cachedModule !== undefined) { -/******/ return cachedModule.exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = __webpack_module_cache__[moduleId] = { -/******/ // no module.id needed -/******/ // no module.loaded needed -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/************************************************************************/ -/******/ /* webpack/runtime/compat get default export */ -/******/ (() => { -/******/ // getDefaultExport function for compatibility with non-harmony modules -/******/ __webpack_require__.n = (module) => { -/******/ var getter = module && module.__esModule ? -/******/ () => (module['default']) : -/******/ () => (module); -/******/ __webpack_require__.d(getter, { a: getter }); -/******/ return getter; -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/define property getters */ -/******/ (() => { -/******/ // define getter functions for harmony exports -/******/ __webpack_require__.d = (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 */ -/******/ (() => { -/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) -/******/ })(); -/******/ -/******/ /* webpack/runtime/make namespace object */ -/******/ (() => { -/******/ // define __esModule on exports -/******/ __webpack_require__.r = (exports) => { -/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { -/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); -/******/ } -/******/ Object.defineProperty(exports, '__esModule', { value: true }); -/******/ }; -/******/ })(); -/******/ -/************************************************************************/ -var __webpack_exports__ = {}; -// This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk. -(() => { -/*!*****************************************!*\ - !*** ./src/blocks/search-page/index.js ***! - \*****************************************/ -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); -/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/blocks */ "@wordpress/blocks"); -/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/server-side-render */ "@wordpress/server-side-render"); -/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/block-editor */ "@wordpress/block-editor"); -/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__); -/* harmony import */ var _block_json__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./block.json */ "./src/blocks/search-page/block.json"); - -/** - * WordPress dependencies - */ - - - - - -/** - * Internal dependencies - */ - -function Edit({ - attributes, - name -}) { - return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", { - ...(0,_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__.useBlockProps)() - }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Disabled, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)((_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default()), { - block: name, - attributes: attributes - }))); -} -(0,_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__.registerBlockType)(_block_json__WEBPACK_IMPORTED_MODULE_5__.name, { - edit: Edit, - save: () => null -}); -})(); - -/******/ })() -; -//# sourceMappingURL=index.js.map \ No newline at end of file +(()=>{"use strict";var e={n:t=>{var r=t&&t.__esModule?()=>t.default:()=>t;return e.d(r,{a:r}),r},d:(t,r)=>{for(var o in r)e.o(r,o)&&!e.o(t,o)&&Object.defineProperty(t,o,{enumerable:!0,get:r[o]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t)};const t=window.React,r=window.wp.components,o=window.wp.blocks,n=window.wp.serverSideRender;var a=e.n(n);const c=window.wp.blockEditor,l=JSON.parse('{"u2":"wporg/search-page"}');(0,o.registerBlockType)(l.u2,{edit:function({attributes:e,name:o}){return(0,t.createElement)("div",{...(0,c.useBlockProps)()},(0,t.createElement)(r.Disabled,null,(0,t.createElement)(a(),{block:o,attributes:e})))},save:()=>null})})(); \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/single-plugin/index.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/single-plugin/index.asset.php index d35f709556..cb40720c88 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/single-plugin/index.asset.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/single-plugin/index.asset.php @@ -1 +1 @@ - array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => '1bb248b43dcc36e48747'); + array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => '553d7b70458e5cb3fa39'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/single-plugin/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/single-plugin/index.js index 8c8d7df376..4d9a19fd2b 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/single-plugin/index.js +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/single-plugin/index.js @@ -1,183 +1 @@ -/******/ (() => { // webpackBootstrap -/******/ "use strict"; -/******/ var __webpack_modules__ = ({ - -/***/ "react": -/*!************************!*\ - !*** external "React" ***! - \************************/ -/***/ ((module) => { - -module.exports = window["React"]; - -/***/ }), - -/***/ "@wordpress/block-editor": -/*!*************************************!*\ - !*** external ["wp","blockEditor"] ***! - \*************************************/ -/***/ ((module) => { - -module.exports = window["wp"]["blockEditor"]; - -/***/ }), - -/***/ "@wordpress/blocks": -/*!********************************!*\ - !*** external ["wp","blocks"] ***! - \********************************/ -/***/ ((module) => { - -module.exports = window["wp"]["blocks"]; - -/***/ }), - -/***/ "@wordpress/components": -/*!************************************!*\ - !*** external ["wp","components"] ***! - \************************************/ -/***/ ((module) => { - -module.exports = window["wp"]["components"]; - -/***/ }), - -/***/ "@wordpress/server-side-render": -/*!******************************************!*\ - !*** external ["wp","serverSideRender"] ***! - \******************************************/ -/***/ ((module) => { - -module.exports = window["wp"]["serverSideRender"]; - -/***/ }), - -/***/ "./src/blocks/single-plugin/block.json": -/*!*********************************************!*\ - !*** ./src/blocks/single-plugin/block.json ***! - \*********************************************/ -/***/ ((module) => { - -module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"wporg/single-plugin","version":"0.1.0","title":"Single Plugin Content","category":"design","icon":"","description":"A block that displays the single plugin content","textdomain":"wporg","attributes":{},"supports":{"html":false},"usesContext":["postId"],"editorScript":"file:./index.js","render":"file:./render.php"}'); - -/***/ }) - -/******/ }); -/************************************************************************/ -/******/ // The module cache -/******/ var __webpack_module_cache__ = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ // Check if module is in cache -/******/ var cachedModule = __webpack_module_cache__[moduleId]; -/******/ if (cachedModule !== undefined) { -/******/ return cachedModule.exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = __webpack_module_cache__[moduleId] = { -/******/ // no module.id needed -/******/ // no module.loaded needed -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/************************************************************************/ -/******/ /* webpack/runtime/compat get default export */ -/******/ (() => { -/******/ // getDefaultExport function for compatibility with non-harmony modules -/******/ __webpack_require__.n = (module) => { -/******/ var getter = module && module.__esModule ? -/******/ () => (module['default']) : -/******/ () => (module); -/******/ __webpack_require__.d(getter, { a: getter }); -/******/ return getter; -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/define property getters */ -/******/ (() => { -/******/ // define getter functions for harmony exports -/******/ __webpack_require__.d = (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 */ -/******/ (() => { -/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) -/******/ })(); -/******/ -/******/ /* webpack/runtime/make namespace object */ -/******/ (() => { -/******/ // define __esModule on exports -/******/ __webpack_require__.r = (exports) => { -/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { -/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); -/******/ } -/******/ Object.defineProperty(exports, '__esModule', { value: true }); -/******/ }; -/******/ })(); -/******/ -/************************************************************************/ -var __webpack_exports__ = {}; -// This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk. -(() => { -/*!*******************************************!*\ - !*** ./src/blocks/single-plugin/index.js ***! - \*******************************************/ -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); -/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/blocks */ "@wordpress/blocks"); -/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/server-side-render */ "@wordpress/server-side-render"); -/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/block-editor */ "@wordpress/block-editor"); -/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__); -/* harmony import */ var _block_json__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./block.json */ "./src/blocks/single-plugin/block.json"); - -/** - * WordPress dependencies - */ - - - - - -/** - * Internal dependencies - */ - -function Edit({ - attributes, - name -}) { - return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", { - ...(0,_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__.useBlockProps)() - }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Disabled, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)((_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default()), { - block: name, - attributes: attributes - }))); -} -(0,_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__.registerBlockType)(_block_json__WEBPACK_IMPORTED_MODULE_5__.name, { - edit: Edit, - save: () => null -}); -})(); - -/******/ })() -; -//# sourceMappingURL=index.js.map \ No newline at end of file +(()=>{"use strict";var e={n:t=>{var r=t&&t.__esModule?()=>t.default:()=>t;return e.d(r,{a:r}),r},d:(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:(e,t)=>Object.prototype.hasOwnProperty.call(e,t)};const t=window.React,r=window.wp.components,n=window.wp.blocks,o=window.wp.serverSideRender;var l=e.n(o);const a=window.wp.blockEditor,i=JSON.parse('{"u2":"wporg/single-plugin"}');(0,n.registerBlockType)(i.u2,{edit:function({attributes:e,name:n}){return(0,t.createElement)("div",{...(0,a.useBlockProps)()},(0,t.createElement)(r.Disabled,null,(0,t.createElement)(l(),{block:n,attributes:e})))},save:()=>null})})(); \ No newline at end of file From 52eaa9516fe6957f67f3a8d17574371f0f973d2f Mon Sep 17 00:00:00 2001 From: StevenDufresne Date: Mon, 25 Nov 2024 06:47:35 +0000 Subject: [PATCH 20/84] Remove the experimental modules. --- .../wp-content/themes/pub/wporg-plugins-2024/package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/package.json b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/package.json index ccd69eb011..afdd98ec12 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/package.json +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/package.json @@ -7,11 +7,11 @@ "main": "index.php", "scripts": { "watch:css": "grunt watch", - "watch:js": "wp-scripts start --experimental-modules", + "watch:js": "wp-scripts start", "watch": "concurrently \"npm run watch:js\" \"npm run watch:css\"", "build:css": "grunt build", "build:old:js": "wp-scripts build client/theme.js --webpack-src-dir=client --output-path=js/build", - "build:js": "wp-scripts build --experimental-modules", + "build:js": "wp-scripts build", "build": "npm run build:css && npm run build:js", "format:js": "wp-scripts format client", "lint:js": "wp-scripts lint-js client", From 86bb938cde57192527eb40a20321400930b371ac Mon Sep 17 00:00:00 2001 From: StevenDufresne Date: Tue, 26 Nov 2024 02:14:53 +0000 Subject: [PATCH 21/84] Update blocks to add 'View changes' feature. --- .../build/blocks/archive-page/index.asset.php | 2 +- .../build/blocks/archive-page/index.js | 184 ++++++++++- .../category-navigation/index.asset.php | 2 +- .../build/blocks/category-navigation/index.js | 184 ++++++++++- .../build/blocks/filter-bar/index.asset.php | 2 +- .../build/blocks/filter-bar/index.js | 184 ++++++++++- .../build/blocks/front-page/index.asset.php | 2 +- .../build/blocks/front-page/index.js | 184 ++++++++++- .../build/blocks/plugin-card/index.asset.php | 2 +- .../build/blocks/plugin-card/index.js | 184 ++++++++++- .../build/blocks/plugin-card/view.asset.php | 2 +- .../build/blocks/plugin-card/view.js | 37 ++- .../blocks/release-checks/index.asset.php | 2 +- .../build/blocks/release-checks/index.js | 184 ++++++++++- .../release-confirmation/index.asset.php | 2 +- .../blocks/release-confirmation/index.js | 299 +++++++++++++++++- .../release-confirmation/style-index.css | 10 +- .../build/blocks/release-date/index.asset.php | 2 +- .../build/blocks/release-date/index.js | 184 ++++++++++- .../release-menu-options/index.asset.php | 2 +- .../blocks/release-menu-options/index.js | 299 +++++++++++++++++- .../blocks/release-menu-options/render.php | 75 +++-- .../release-menu-options/style-index.css | 41 ++- .../blocks/release-status/index.asset.php | 2 +- .../build/blocks/release-status/index.js | 299 +++++++++++++++++- .../blocks/release-status/style-index.css | 12 +- .../build/blocks/search-page/index.asset.php | 2 +- .../build/blocks/search-page/index.js | 184 ++++++++++- .../blocks/single-plugin/index.asset.php | 2 +- .../build/blocks/single-plugin/index.js | 184 ++++++++++- .../blocks/release-menu-options/render.php | 75 +++-- 31 files changed, 2764 insertions(+), 65 deletions(-) diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/archive-page/index.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/archive-page/index.asset.php index d7b228686a..9202f58eda 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/archive-page/index.asset.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/archive-page/index.asset.php @@ -1 +1 @@ - array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => '8627e1da9b24373a1f90'); + array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => '7f26875761f01d13f9dd'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/archive-page/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/archive-page/index.js index 1b86a728bd..772b3d2c7e 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/archive-page/index.js +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/archive-page/index.js @@ -1 +1,183 @@ -(()=>{"use strict";var e={n:t=>{var r=t&&t.__esModule?()=>t.default:()=>t;return e.d(r,{a:r}),r},d:(t,r)=>{for(var o in r)e.o(r,o)&&!e.o(t,o)&&Object.defineProperty(t,o,{enumerable:!0,get:r[o]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t)};const t=window.React,r=window.wp.components,o=window.wp.blocks,n=window.wp.serverSideRender;var a=e.n(n);const c=window.wp.blockEditor,i=JSON.parse('{"u2":"wporg/archive-page"}');(0,o.registerBlockType)(i.u2,{edit:function({attributes:e,name:o}){return(0,t.createElement)("div",{...(0,c.useBlockProps)()},(0,t.createElement)(r.Disabled,null,(0,t.createElement)(a(),{block:o,attributes:e})))},save:()=>null})})(); \ No newline at end of file +/******/ (() => { // webpackBootstrap +/******/ "use strict"; +/******/ var __webpack_modules__ = ({ + +/***/ "react": +/*!************************!*\ + !*** external "React" ***! + \************************/ +/***/ ((module) => { + +module.exports = window["React"]; + +/***/ }), + +/***/ "@wordpress/block-editor": +/*!*************************************!*\ + !*** external ["wp","blockEditor"] ***! + \*************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["blockEditor"]; + +/***/ }), + +/***/ "@wordpress/blocks": +/*!********************************!*\ + !*** external ["wp","blocks"] ***! + \********************************/ +/***/ ((module) => { + +module.exports = window["wp"]["blocks"]; + +/***/ }), + +/***/ "@wordpress/components": +/*!************************************!*\ + !*** external ["wp","components"] ***! + \************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["components"]; + +/***/ }), + +/***/ "@wordpress/server-side-render": +/*!******************************************!*\ + !*** external ["wp","serverSideRender"] ***! + \******************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["serverSideRender"]; + +/***/ }), + +/***/ "./src/blocks/archive-page/block.json": +/*!********************************************!*\ + !*** ./src/blocks/archive-page/block.json ***! + \********************************************/ +/***/ ((module) => { + +module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"wporg/archive-page","version":"0.1.0","title":"Archive Page Content","category":"design","icon":"","description":"A block that displays the archive page content","textdomain":"wporg","attributes":{},"supports":{"html":false},"editorScript":"file:./index.js","render":"file:./render.php"}'); + +/***/ }) + +/******/ }); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ // no module.id needed +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/************************************************************************/ +/******/ /* webpack/runtime/compat get default export */ +/******/ (() => { +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = (module) => { +/******/ var getter = module && module.__esModule ? +/******/ () => (module['default']) : +/******/ () => (module); +/******/ __webpack_require__.d(getter, { a: getter }); +/******/ return getter; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/define property getters */ +/******/ (() => { +/******/ // define getter functions for harmony exports +/******/ __webpack_require__.d = (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 */ +/******/ (() => { +/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) +/******/ })(); +/******/ +/******/ /* webpack/runtime/make namespace object */ +/******/ (() => { +/******/ // define __esModule on exports +/******/ __webpack_require__.r = (exports) => { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ })(); +/******/ +/************************************************************************/ +var __webpack_exports__ = {}; +// This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk. +(() => { +/*!******************************************!*\ + !*** ./src/blocks/archive-page/index.js ***! + \******************************************/ +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); +/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/blocks */ "@wordpress/blocks"); +/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/server-side-render */ "@wordpress/server-side-render"); +/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/block-editor */ "@wordpress/block-editor"); +/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__); +/* harmony import */ var _block_json__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./block.json */ "./src/blocks/archive-page/block.json"); + +/** + * WordPress dependencies + */ + + + + + +/** + * Internal dependencies + */ + +function Edit({ + attributes, + name +}) { + return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", { + ...(0,_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__.useBlockProps)() + }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Disabled, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)((_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default()), { + block: name, + attributes: attributes + }))); +} +(0,_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__.registerBlockType)(_block_json__WEBPACK_IMPORTED_MODULE_5__.name, { + edit: Edit, + save: () => null +}); +})(); + +/******/ })() +; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/category-navigation/index.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/category-navigation/index.asset.php index ab2fb9f31a..94878f12bf 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/category-navigation/index.asset.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/category-navigation/index.asset.php @@ -1 +1 @@ - array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => '6bce91817a063cdf476d'); + array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => '9b7cfda9379a258a4745'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/category-navigation/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/category-navigation/index.js index e8e14d7ec6..a639fdc3e3 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/category-navigation/index.js +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/category-navigation/index.js @@ -1 +1,183 @@ -(()=>{"use strict";var e={n:t=>{var r=t&&t.__esModule?()=>t.default:()=>t;return e.d(r,{a:r}),r},d:(t,r)=>{for(var o in r)e.o(r,o)&&!e.o(t,o)&&Object.defineProperty(t,o,{enumerable:!0,get:r[o]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t)};const t=window.React,r=window.wp.components,o=window.wp.blocks,n=window.wp.serverSideRender;var a=e.n(n);const i=window.wp.blockEditor,c=JSON.parse('{"u2":"wporg/category-navigation"}');(0,o.registerBlockType)(c.u2,{edit:function({attributes:e,name:o}){return(0,t.createElement)("div",{...(0,i.useBlockProps)()},(0,t.createElement)(r.Disabled,null,(0,t.createElement)(a(),{block:o,attributes:e})))},save:()=>null})})(); \ No newline at end of file +/******/ (() => { // webpackBootstrap +/******/ "use strict"; +/******/ var __webpack_modules__ = ({ + +/***/ "react": +/*!************************!*\ + !*** external "React" ***! + \************************/ +/***/ ((module) => { + +module.exports = window["React"]; + +/***/ }), + +/***/ "@wordpress/block-editor": +/*!*************************************!*\ + !*** external ["wp","blockEditor"] ***! + \*************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["blockEditor"]; + +/***/ }), + +/***/ "@wordpress/blocks": +/*!********************************!*\ + !*** external ["wp","blocks"] ***! + \********************************/ +/***/ ((module) => { + +module.exports = window["wp"]["blocks"]; + +/***/ }), + +/***/ "@wordpress/components": +/*!************************************!*\ + !*** external ["wp","components"] ***! + \************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["components"]; + +/***/ }), + +/***/ "@wordpress/server-side-render": +/*!******************************************!*\ + !*** external ["wp","serverSideRender"] ***! + \******************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["serverSideRender"]; + +/***/ }), + +/***/ "./src/blocks/category-navigation/block.json": +/*!***************************************************!*\ + !*** ./src/blocks/category-navigation/block.json ***! + \***************************************************/ +/***/ ((module) => { + +module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"wporg/category-navigation","version":"0.2.0","title":"Category Navigation","category":"design","icon":"","description":"Adds the category navigation menu","textdomain":"wporg","attributes":{},"supports":{"html":false},"editorScript":"file:./index.js","render":"file:./render.php"}'); + +/***/ }) + +/******/ }); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ // no module.id needed +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/************************************************************************/ +/******/ /* webpack/runtime/compat get default export */ +/******/ (() => { +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = (module) => { +/******/ var getter = module && module.__esModule ? +/******/ () => (module['default']) : +/******/ () => (module); +/******/ __webpack_require__.d(getter, { a: getter }); +/******/ return getter; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/define property getters */ +/******/ (() => { +/******/ // define getter functions for harmony exports +/******/ __webpack_require__.d = (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 */ +/******/ (() => { +/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) +/******/ })(); +/******/ +/******/ /* webpack/runtime/make namespace object */ +/******/ (() => { +/******/ // define __esModule on exports +/******/ __webpack_require__.r = (exports) => { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ })(); +/******/ +/************************************************************************/ +var __webpack_exports__ = {}; +// This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk. +(() => { +/*!*************************************************!*\ + !*** ./src/blocks/category-navigation/index.js ***! + \*************************************************/ +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); +/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/blocks */ "@wordpress/blocks"); +/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/server-side-render */ "@wordpress/server-side-render"); +/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/block-editor */ "@wordpress/block-editor"); +/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__); +/* harmony import */ var _block_json__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./block.json */ "./src/blocks/category-navigation/block.json"); + +/** + * WordPress dependencies + */ + + + + + +/** + * Internal dependencies + */ + +function Edit({ + attributes, + name +}) { + return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", { + ...(0,_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__.useBlockProps)() + }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Disabled, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)((_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default()), { + block: name, + attributes: attributes + }))); +} +(0,_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__.registerBlockType)(_block_json__WEBPACK_IMPORTED_MODULE_5__.name, { + edit: Edit, + save: () => null +}); +})(); + +/******/ })() +; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/filter-bar/index.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/filter-bar/index.asset.php index 32cfe90ff5..922b695350 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/filter-bar/index.asset.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/filter-bar/index.asset.php @@ -1 +1 @@ - array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => '4e25fbe50d772f6a1559'); + array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => 'fe9a74e9340bde2c89fa'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/filter-bar/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/filter-bar/index.js index 3662ea6f71..1d81e7ca65 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/filter-bar/index.js +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/filter-bar/index.js @@ -1 +1,183 @@ -(()=>{"use strict";var e={n:t=>{var r=t&&t.__esModule?()=>t.default:()=>t;return e.d(r,{a:r}),r},d:(t,r)=>{for(var o in r)e.o(r,o)&&!e.o(t,o)&&Object.defineProperty(t,o,{enumerable:!0,get:r[o]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t)};const t=window.React,r=window.wp.components,o=window.wp.blocks,n=window.wp.serverSideRender;var a=e.n(n);const l=window.wp.blockEditor,i=JSON.parse('{"u2":"wporg/filter-bar"}');(0,o.registerBlockType)(i.u2,{edit:function({attributes:e,name:o}){return(0,t.createElement)("div",{...(0,l.useBlockProps)()},(0,t.createElement)(r.Disabled,null,(0,t.createElement)(a(),{block:o,attributes:e})))},save:()=>null})})(); \ No newline at end of file +/******/ (() => { // webpackBootstrap +/******/ "use strict"; +/******/ var __webpack_modules__ = ({ + +/***/ "react": +/*!************************!*\ + !*** external "React" ***! + \************************/ +/***/ ((module) => { + +module.exports = window["React"]; + +/***/ }), + +/***/ "@wordpress/block-editor": +/*!*************************************!*\ + !*** external ["wp","blockEditor"] ***! + \*************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["blockEditor"]; + +/***/ }), + +/***/ "@wordpress/blocks": +/*!********************************!*\ + !*** external ["wp","blocks"] ***! + \********************************/ +/***/ ((module) => { + +module.exports = window["wp"]["blocks"]; + +/***/ }), + +/***/ "@wordpress/components": +/*!************************************!*\ + !*** external ["wp","components"] ***! + \************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["components"]; + +/***/ }), + +/***/ "@wordpress/server-side-render": +/*!******************************************!*\ + !*** external ["wp","serverSideRender"] ***! + \******************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["serverSideRender"]; + +/***/ }), + +/***/ "./src/blocks/filter-bar/block.json": +/*!******************************************!*\ + !*** ./src/blocks/filter-bar/block.json ***! + \******************************************/ +/***/ ((module) => { + +module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"wporg/filter-bar","version":"0.2.0","title":"Filter Bar","category":"design","icon":"","description":"Adds a filter bar","textdomain":"wporg","attributes":{},"supports":{"html":false},"editorScript":"file:./index.js","render":"file:./render.php"}'); + +/***/ }) + +/******/ }); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ // no module.id needed +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/************************************************************************/ +/******/ /* webpack/runtime/compat get default export */ +/******/ (() => { +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = (module) => { +/******/ var getter = module && module.__esModule ? +/******/ () => (module['default']) : +/******/ () => (module); +/******/ __webpack_require__.d(getter, { a: getter }); +/******/ return getter; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/define property getters */ +/******/ (() => { +/******/ // define getter functions for harmony exports +/******/ __webpack_require__.d = (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 */ +/******/ (() => { +/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) +/******/ })(); +/******/ +/******/ /* webpack/runtime/make namespace object */ +/******/ (() => { +/******/ // define __esModule on exports +/******/ __webpack_require__.r = (exports) => { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ })(); +/******/ +/************************************************************************/ +var __webpack_exports__ = {}; +// This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk. +(() => { +/*!****************************************!*\ + !*** ./src/blocks/filter-bar/index.js ***! + \****************************************/ +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); +/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/blocks */ "@wordpress/blocks"); +/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/server-side-render */ "@wordpress/server-side-render"); +/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/block-editor */ "@wordpress/block-editor"); +/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__); +/* harmony import */ var _block_json__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./block.json */ "./src/blocks/filter-bar/block.json"); + +/** + * WordPress dependencies + */ + + + + + +/** + * Internal dependencies + */ + +function Edit({ + attributes, + name +}) { + return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", { + ...(0,_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__.useBlockProps)() + }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Disabled, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)((_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default()), { + block: name, + attributes: attributes + }))); +} +(0,_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__.registerBlockType)(_block_json__WEBPACK_IMPORTED_MODULE_5__.name, { + edit: Edit, + save: () => null +}); +})(); + +/******/ })() +; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/front-page/index.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/front-page/index.asset.php index 09684019c7..264faed9d3 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/front-page/index.asset.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/front-page/index.asset.php @@ -1 +1 @@ - array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => '3f3755bbf3697bb808f8'); + array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => 'b4c88578d4fb8d783dd4'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/front-page/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/front-page/index.js index 7a3c8b2166..7136a3f573 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/front-page/index.js +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/front-page/index.js @@ -1 +1,183 @@ -(()=>{"use strict";var e={n:t=>{var r=t&&t.__esModule?()=>t.default:()=>t;return e.d(r,{a:r}),r},d:(t,r)=>{for(var o in r)e.o(r,o)&&!e.o(t,o)&&Object.defineProperty(t,o,{enumerable:!0,get:r[o]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t)};const t=window.React,r=window.wp.components,o=window.wp.blocks,n=window.wp.serverSideRender;var a=e.n(n);const l=window.wp.blockEditor,c=JSON.parse('{"u2":"wporg/front-page"}');(0,o.registerBlockType)(c.u2,{edit:function({attributes:e,name:o}){return(0,t.createElement)("div",{...(0,l.useBlockProps)()},(0,t.createElement)(r.Disabled,null,(0,t.createElement)(a(),{block:o,attributes:e})))},save:()=>null})})(); \ No newline at end of file +/******/ (() => { // webpackBootstrap +/******/ "use strict"; +/******/ var __webpack_modules__ = ({ + +/***/ "react": +/*!************************!*\ + !*** external "React" ***! + \************************/ +/***/ ((module) => { + +module.exports = window["React"]; + +/***/ }), + +/***/ "@wordpress/block-editor": +/*!*************************************!*\ + !*** external ["wp","blockEditor"] ***! + \*************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["blockEditor"]; + +/***/ }), + +/***/ "@wordpress/blocks": +/*!********************************!*\ + !*** external ["wp","blocks"] ***! + \********************************/ +/***/ ((module) => { + +module.exports = window["wp"]["blocks"]; + +/***/ }), + +/***/ "@wordpress/components": +/*!************************************!*\ + !*** external ["wp","components"] ***! + \************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["components"]; + +/***/ }), + +/***/ "@wordpress/server-side-render": +/*!******************************************!*\ + !*** external ["wp","serverSideRender"] ***! + \******************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["serverSideRender"]; + +/***/ }), + +/***/ "./src/blocks/front-page/block.json": +/*!******************************************!*\ + !*** ./src/blocks/front-page/block.json ***! + \******************************************/ +/***/ ((module) => { + +module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"wporg/front-page","version":"0.1.0","title":"Front Page Content","category":"design","icon":"","description":"A block that displays the front page content","textdomain":"wporg","attributes":{},"supports":{"html":false},"editorScript":"file:./index.js","render":"file:./render.php"}'); + +/***/ }) + +/******/ }); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ // no module.id needed +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/************************************************************************/ +/******/ /* webpack/runtime/compat get default export */ +/******/ (() => { +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = (module) => { +/******/ var getter = module && module.__esModule ? +/******/ () => (module['default']) : +/******/ () => (module); +/******/ __webpack_require__.d(getter, { a: getter }); +/******/ return getter; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/define property getters */ +/******/ (() => { +/******/ // define getter functions for harmony exports +/******/ __webpack_require__.d = (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 */ +/******/ (() => { +/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) +/******/ })(); +/******/ +/******/ /* webpack/runtime/make namespace object */ +/******/ (() => { +/******/ // define __esModule on exports +/******/ __webpack_require__.r = (exports) => { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ })(); +/******/ +/************************************************************************/ +var __webpack_exports__ = {}; +// This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk. +(() => { +/*!****************************************!*\ + !*** ./src/blocks/front-page/index.js ***! + \****************************************/ +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); +/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/blocks */ "@wordpress/blocks"); +/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/server-side-render */ "@wordpress/server-side-render"); +/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/block-editor */ "@wordpress/block-editor"); +/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__); +/* harmony import */ var _block_json__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./block.json */ "./src/blocks/front-page/block.json"); + +/** + * WordPress dependencies + */ + + + + + +/** + * Internal dependencies + */ + +function Edit({ + attributes, + name +}) { + return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", { + ...(0,_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__.useBlockProps)() + }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Disabled, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)((_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default()), { + block: name, + attributes: attributes + }))); +} +(0,_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__.registerBlockType)(_block_json__WEBPACK_IMPORTED_MODULE_5__.name, { + edit: Edit, + save: () => null +}); +})(); + +/******/ })() +; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/plugin-card/index.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/plugin-card/index.asset.php index f1dd1a21c9..b579c818ac 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/plugin-card/index.asset.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/plugin-card/index.asset.php @@ -1 +1 @@ - array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => '58f6f779c22873c960e8'); + array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => '26ed8b457f67063bbcbe'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/plugin-card/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/plugin-card/index.js index 3f9a8e7de5..77b892a7b3 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/plugin-card/index.js +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/plugin-card/index.js @@ -1 +1,183 @@ -(()=>{"use strict";var e={n:t=>{var r=t&&t.__esModule?()=>t.default:()=>t;return e.d(r,{a:r}),r},d:(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:(e,t)=>Object.prototype.hasOwnProperty.call(e,t)};const t=window.React,r=window.wp.components,n=window.wp.blocks,o=window.wp.serverSideRender;var a=e.n(o);const l=window.wp.blockEditor,c=JSON.parse('{"u2":"wporg/plugin-card"}');(0,n.registerBlockType)(c.u2,{edit:function({attributes:e,name:n}){return(0,t.createElement)("div",{...(0,l.useBlockProps)()},(0,t.createElement)(r.Disabled,null,(0,t.createElement)(a(),{block:n,attributes:e})))},save:()=>null})})(); \ No newline at end of file +/******/ (() => { // webpackBootstrap +/******/ "use strict"; +/******/ var __webpack_modules__ = ({ + +/***/ "react": +/*!************************!*\ + !*** external "React" ***! + \************************/ +/***/ ((module) => { + +module.exports = window["React"]; + +/***/ }), + +/***/ "@wordpress/block-editor": +/*!*************************************!*\ + !*** external ["wp","blockEditor"] ***! + \*************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["blockEditor"]; + +/***/ }), + +/***/ "@wordpress/blocks": +/*!********************************!*\ + !*** external ["wp","blocks"] ***! + \********************************/ +/***/ ((module) => { + +module.exports = window["wp"]["blocks"]; + +/***/ }), + +/***/ "@wordpress/components": +/*!************************************!*\ + !*** external ["wp","components"] ***! + \************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["components"]; + +/***/ }), + +/***/ "@wordpress/server-side-render": +/*!******************************************!*\ + !*** external ["wp","serverSideRender"] ***! + \******************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["serverSideRender"]; + +/***/ }), + +/***/ "./src/blocks/plugin-card/block.json": +/*!*******************************************!*\ + !*** ./src/blocks/plugin-card/block.json ***! + \*******************************************/ +/***/ ((module) => { + +module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"wporg/plugin-card","version":"0.1.0","title":"Plugin Card for Archive Pages","category":"design","icon":"","description":"A block that displays a plugin card.","textdomain":"wporg","attributes":{},"supports":{"html":false},"editorScript":"file:./index.js","render":"file:./render.php","viewScript":"file:./view.js"}'); + +/***/ }) + +/******/ }); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ // no module.id needed +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/************************************************************************/ +/******/ /* webpack/runtime/compat get default export */ +/******/ (() => { +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = (module) => { +/******/ var getter = module && module.__esModule ? +/******/ () => (module['default']) : +/******/ () => (module); +/******/ __webpack_require__.d(getter, { a: getter }); +/******/ return getter; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/define property getters */ +/******/ (() => { +/******/ // define getter functions for harmony exports +/******/ __webpack_require__.d = (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 */ +/******/ (() => { +/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) +/******/ })(); +/******/ +/******/ /* webpack/runtime/make namespace object */ +/******/ (() => { +/******/ // define __esModule on exports +/******/ __webpack_require__.r = (exports) => { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ })(); +/******/ +/************************************************************************/ +var __webpack_exports__ = {}; +// This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk. +(() => { +/*!*****************************************!*\ + !*** ./src/blocks/plugin-card/index.js ***! + \*****************************************/ +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); +/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/blocks */ "@wordpress/blocks"); +/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/server-side-render */ "@wordpress/server-side-render"); +/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/block-editor */ "@wordpress/block-editor"); +/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__); +/* harmony import */ var _block_json__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./block.json */ "./src/blocks/plugin-card/block.json"); + +/** + * WordPress dependencies + */ + + + + + +/** + * Internal dependencies + */ + +function Edit({ + attributes, + name +}) { + return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", { + ...(0,_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__.useBlockProps)() + }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Disabled, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)((_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default()), { + block: name, + attributes: attributes + }))); +} +(0,_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__.registerBlockType)(_block_json__WEBPACK_IMPORTED_MODULE_5__.name, { + edit: Edit, + save: () => null +}); +})(); + +/******/ })() +; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/plugin-card/view.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/plugin-card/view.asset.php index a451d28c8a..0dd4c71ab5 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/plugin-card/view.asset.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/plugin-card/view.asset.php @@ -1 +1 @@ - array(), 'version' => 'f221373b7e38d2ff3d7c'); + array(), 'version' => '038d83c28b7b82ea64d9'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/plugin-card/view.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/plugin-card/view.js index f3234f94de..a0ec1ebc4a 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/plugin-card/view.js +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/plugin-card/view.js @@ -1 +1,36 @@ -document.addEventListener("DOMContentLoaded",(function(){var e=document.querySelectorAll(".plugin-cards li");e&&e.forEach((function(e){e.addEventListener("click",(function(t){var n=window.getSelection().toString();if("a"!==t.target.tagName.toLowerCase()&&""===n){var o=e.querySelector("a");if(o){var r=o.getAttribute("href");window.location.href=r}}}))}))})); \ No newline at end of file +/******/ (() => { // webpackBootstrap +var __webpack_exports__ = {}; +/*!****************************************!*\ + !*** ./src/blocks/plugin-card/view.js ***! + \****************************************/ +/** + * Binds click events to navigate on plugin card click. + */ +document.addEventListener('DOMContentLoaded', function () { + var cards = document.querySelectorAll('.plugin-cards li'); + if (cards) { + cards.forEach(function (card) { + card.addEventListener('click', function (event) { + var selectedText = window.getSelection().toString(); + + // Keep regular anchor tag function + if ('a' === event.target.tagName.toLowerCase()) { + return; + } + + // If they are selecting text, let's not navigate. + if ('' !== selectedText) { + return; + } + var anchorTag = card.querySelector('a'); + if (anchorTag) { + var link = anchorTag.getAttribute('href'); + window.location.href = link; + } + }); + }); + } +}); +/******/ })() +; +//# sourceMappingURL=view.js.map \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks/index.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks/index.asset.php index 227841f61c..2b70d6ca89 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks/index.asset.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks/index.asset.php @@ -1 +1 @@ - array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => '1ef13974fecd5a531a3e'); + array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => 'e320f31767af4d3aa990'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks/index.js index 750d108bf0..48e6a3f16a 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks/index.js +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks/index.js @@ -1 +1,183 @@ -(()=>{"use strict";var e={n:t=>{var r=t&&t.__esModule?()=>t.default:()=>t;return e.d(r,{a:r}),r},d:(t,r)=>{for(var o in r)e.o(r,o)&&!e.o(t,o)&&Object.defineProperty(t,o,{enumerable:!0,get:r[o]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t)};const t=window.React,r=window.wp.components,o=window.wp.blocks,n=window.wp.serverSideRender;var a=e.n(n);const c=window.wp.blockEditor,l=JSON.parse('{"u2":"wporg/release-checks"}');(0,o.registerBlockType)(l.u2,{edit:function({attributes:e,name:o}){return(0,t.createElement)("div",{...(0,c.useBlockProps)()},(0,t.createElement)(r.Disabled,null,(0,t.createElement)(a(),{block:o,attributes:e})))},save:()=>null})})(); \ No newline at end of file +/******/ (() => { // webpackBootstrap +/******/ "use strict"; +/******/ var __webpack_modules__ = ({ + +/***/ "react": +/*!************************!*\ + !*** external "React" ***! + \************************/ +/***/ ((module) => { + +module.exports = window["React"]; + +/***/ }), + +/***/ "@wordpress/block-editor": +/*!*************************************!*\ + !*** external ["wp","blockEditor"] ***! + \*************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["blockEditor"]; + +/***/ }), + +/***/ "@wordpress/blocks": +/*!********************************!*\ + !*** external ["wp","blocks"] ***! + \********************************/ +/***/ ((module) => { + +module.exports = window["wp"]["blocks"]; + +/***/ }), + +/***/ "@wordpress/components": +/*!************************************!*\ + !*** external ["wp","components"] ***! + \************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["components"]; + +/***/ }), + +/***/ "@wordpress/server-side-render": +/*!******************************************!*\ + !*** external ["wp","serverSideRender"] ***! + \******************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["serverSideRender"]; + +/***/ }), + +/***/ "./src/blocks/release-checks/block.json": +/*!**********************************************!*\ + !*** ./src/blocks/release-checks/block.json ***! + \**********************************************/ +/***/ ((module) => { + +module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"wporg/release-checks","version":"0.1.0","title":"Release checks.","category":"design","icon":"","description":"A block to display release checks.","textdomain":"wporg","attributes":{},"supports":{"html":false},"usesContext":["postId"],"editorScript":"file:./index.js","render":"file:./render.php","style":"file:./style-index.css"}'); + +/***/ }) + +/******/ }); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ // no module.id needed +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/************************************************************************/ +/******/ /* webpack/runtime/compat get default export */ +/******/ (() => { +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = (module) => { +/******/ var getter = module && module.__esModule ? +/******/ () => (module['default']) : +/******/ () => (module); +/******/ __webpack_require__.d(getter, { a: getter }); +/******/ return getter; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/define property getters */ +/******/ (() => { +/******/ // define getter functions for harmony exports +/******/ __webpack_require__.d = (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 */ +/******/ (() => { +/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) +/******/ })(); +/******/ +/******/ /* webpack/runtime/make namespace object */ +/******/ (() => { +/******/ // define __esModule on exports +/******/ __webpack_require__.r = (exports) => { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ })(); +/******/ +/************************************************************************/ +var __webpack_exports__ = {}; +// This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk. +(() => { +/*!********************************************!*\ + !*** ./src/blocks/release-checks/index.js ***! + \********************************************/ +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); +/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/blocks */ "@wordpress/blocks"); +/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/server-side-render */ "@wordpress/server-side-render"); +/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/block-editor */ "@wordpress/block-editor"); +/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__); +/* harmony import */ var _block_json__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./block.json */ "./src/blocks/release-checks/block.json"); + +/** + * WordPress dependencies + */ + + + + + +/** + * Internal dependencies + */ + +function Edit({ + attributes, + name +}) { + return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", { + ...(0,_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__.useBlockProps)() + }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Disabled, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)((_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default()), { + block: name, + attributes: attributes + }))); +} +(0,_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__.registerBlockType)(_block_json__WEBPACK_IMPORTED_MODULE_5__.name, { + edit: Edit, + save: () => null +}); +})(); + +/******/ })() +; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-confirmation/index.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-confirmation/index.asset.php index 0390d0605c..2579a68552 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-confirmation/index.asset.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-confirmation/index.asset.php @@ -1 +1 @@ - array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => '30391b7a73bd29220d6b'); + array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => '334449955bb75f1aa05a'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-confirmation/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-confirmation/index.js index 44204b200c..7565502244 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-confirmation/index.js +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-confirmation/index.js @@ -1 +1,298 @@ -(()=>{"use strict";var e,r={376:(e,r,n)=>{const o=window.React,t=window.wp.components,i=window.wp.blocks,a=window.wp.serverSideRender;var l=n.n(a);const s=window.wp.blockEditor,p=JSON.parse('{"u2":"wporg/release-confirmation"}');(0,i.registerBlockType)(p.u2,{edit:function({attributes:e,name:r}){return(0,o.createElement)("div",{...(0,s.useBlockProps)()},(0,o.createElement)(t.Disabled,null,(0,o.createElement)(l(),{block:r,attributes:e})))},save:()=>null})}},n={};function o(e){var t=n[e];if(void 0!==t)return t.exports;var i=n[e]={exports:{}};return r[e](i,i.exports,o),i.exports}o.m=r,e=[],o.O=(r,n,t,i)=>{if(!n){var a=1/0;for(u=0;u=i)&&Object.keys(o.O).every((e=>o.O[e](n[s])))?n.splice(s--,1):(l=!1,i0&&e[u-1][2]>i;u--)e[u]=e[u-1];e[u]=[n,t,i]},o.n=e=>{var r=e&&e.__esModule?()=>e.default:()=>e;return o.d(r,{a:r}),r},o.d=(e,r)=>{for(var n in r)o.o(r,n)&&!o.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),(()=>{var e={3:0,106:0};o.O.j=r=>0===e[r];var r=(r,n)=>{var t,i,a=n[0],l=n[1],s=n[2],p=0;if(a.some((r=>0!==e[r]))){for(t in l)o.o(l,t)&&(o.m[t]=l[t]);if(s)var u=s(o)}for(r&&r(n);po(376)));t=o.O(t)})(); \ No newline at end of file +/******/ (() => { // webpackBootstrap +/******/ "use strict"; +/******/ var __webpack_modules__ = ({ + +/***/ "./src/blocks/release-confirmation/index.js": +/*!**************************************************!*\ + !*** ./src/blocks/release-confirmation/index.js ***! + \**************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); +/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/blocks */ "@wordpress/blocks"); +/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/server-side-render */ "@wordpress/server-side-render"); +/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/block-editor */ "@wordpress/block-editor"); +/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__); +/* harmony import */ var _block_json__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./block.json */ "./src/blocks/release-confirmation/block.json"); +/* harmony import */ var _style_scss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./style.scss */ "./src/blocks/release-confirmation/style.scss"); + +/** + * WordPress dependencies + */ + + + + + +/** + * Internal dependencies + */ + + +function Edit({ + attributes, + name +}) { + return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", { + ...(0,_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__.useBlockProps)() + }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Disabled, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)((_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default()), { + block: name, + attributes: attributes + }))); +} +(0,_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__.registerBlockType)(_block_json__WEBPACK_IMPORTED_MODULE_5__.name, { + edit: Edit, + save: () => null +}); + +/***/ }), + +/***/ "./src/blocks/release-confirmation/style.scss": +/*!****************************************************!*\ + !*** ./src/blocks/release-confirmation/style.scss ***! + \****************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +// extracted by mini-css-extract-plugin + + +/***/ }), + +/***/ "react": +/*!************************!*\ + !*** external "React" ***! + \************************/ +/***/ ((module) => { + +module.exports = window["React"]; + +/***/ }), + +/***/ "@wordpress/block-editor": +/*!*************************************!*\ + !*** external ["wp","blockEditor"] ***! + \*************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["blockEditor"]; + +/***/ }), + +/***/ "@wordpress/blocks": +/*!********************************!*\ + !*** external ["wp","blocks"] ***! + \********************************/ +/***/ ((module) => { + +module.exports = window["wp"]["blocks"]; + +/***/ }), + +/***/ "@wordpress/components": +/*!************************************!*\ + !*** external ["wp","components"] ***! + \************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["components"]; + +/***/ }), + +/***/ "@wordpress/server-side-render": +/*!******************************************!*\ + !*** external ["wp","serverSideRender"] ***! + \******************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["serverSideRender"]; + +/***/ }), + +/***/ "./src/blocks/release-confirmation/block.json": +/*!****************************************************!*\ + !*** ./src/blocks/release-confirmation/block.json ***! + \****************************************************/ +/***/ ((module) => { + +module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"wporg/release-confirmation","version":"0.1.0","title":"Release Confirmation Banner.","category":"design","icon":"","description":"A block to display release confirmation banner.","textdomain":"wporg","attributes":{},"supports":{"html":false},"usesContext":["postId"],"editorScript":"file:./index.js","render":"file:./render.php","style":"file:./style-index.css"}'); + +/***/ }) + +/******/ }); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ // no module.id needed +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = __webpack_modules__; +/******/ +/************************************************************************/ +/******/ /* webpack/runtime/chunk loaded */ +/******/ (() => { +/******/ var deferred = []; +/******/ __webpack_require__.O = (result, chunkIds, fn, priority) => { +/******/ if(chunkIds) { +/******/ priority = priority || 0; +/******/ for(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1]; +/******/ deferred[i] = [chunkIds, fn, priority]; +/******/ return; +/******/ } +/******/ var notFulfilled = Infinity; +/******/ for (var i = 0; i < deferred.length; i++) { +/******/ var chunkIds = deferred[i][0]; +/******/ var fn = deferred[i][1]; +/******/ var priority = deferred[i][2]; +/******/ var fulfilled = true; +/******/ for (var j = 0; j < chunkIds.length; j++) { +/******/ if ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) { +/******/ chunkIds.splice(j--, 1); +/******/ } else { +/******/ fulfilled = false; +/******/ if(priority < notFulfilled) notFulfilled = priority; +/******/ } +/******/ } +/******/ if(fulfilled) { +/******/ deferred.splice(i--, 1) +/******/ var r = fn(); +/******/ if (r !== undefined) result = r; +/******/ } +/******/ } +/******/ return result; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/compat get default export */ +/******/ (() => { +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = (module) => { +/******/ var getter = module && module.__esModule ? +/******/ () => (module['default']) : +/******/ () => (module); +/******/ __webpack_require__.d(getter, { a: getter }); +/******/ return getter; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/define property getters */ +/******/ (() => { +/******/ // define getter functions for harmony exports +/******/ __webpack_require__.d = (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 */ +/******/ (() => { +/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) +/******/ })(); +/******/ +/******/ /* webpack/runtime/make namespace object */ +/******/ (() => { +/******/ // define __esModule on exports +/******/ __webpack_require__.r = (exports) => { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/jsonp chunk loading */ +/******/ (() => { +/******/ // no baseURI +/******/ +/******/ // object to store loaded and loading chunks +/******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched +/******/ // [resolve, reject, Promise] = chunk loading, 0 = chunk loaded +/******/ var installedChunks = { +/******/ "blocks/release-confirmation/index": 0, +/******/ "blocks/release-confirmation/style-index": 0 +/******/ }; +/******/ +/******/ // no chunk on demand loading +/******/ +/******/ // no prefetching +/******/ +/******/ // no preloaded +/******/ +/******/ // no HMR +/******/ +/******/ // no HMR manifest +/******/ +/******/ __webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0); +/******/ +/******/ // install a JSONP callback for chunk loading +/******/ var webpackJsonpCallback = (parentChunkLoadingFunction, data) => { +/******/ var chunkIds = data[0]; +/******/ var moreModules = data[1]; +/******/ var runtime = data[2]; +/******/ // add "moreModules" to the modules object, +/******/ // then flag all "chunkIds" as loaded and fire callback +/******/ var moduleId, chunkId, i = 0; +/******/ if(chunkIds.some((id) => (installedChunks[id] !== 0))) { +/******/ for(moduleId in moreModules) { +/******/ if(__webpack_require__.o(moreModules, moduleId)) { +/******/ __webpack_require__.m[moduleId] = moreModules[moduleId]; +/******/ } +/******/ } +/******/ if(runtime) var result = runtime(__webpack_require__); +/******/ } +/******/ if(parentChunkLoadingFunction) parentChunkLoadingFunction(data); +/******/ for(;i < chunkIds.length; i++) { +/******/ chunkId = chunkIds[i]; +/******/ if(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) { +/******/ installedChunks[chunkId][0](); +/******/ } +/******/ installedChunks[chunkId] = 0; +/******/ } +/******/ return __webpack_require__.O(result); +/******/ } +/******/ +/******/ var chunkLoadingGlobal = self["webpackChunkwporg_plugins_2024"] = self["webpackChunkwporg_plugins_2024"] || []; +/******/ chunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0)); +/******/ chunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal)); +/******/ })(); +/******/ +/************************************************************************/ +/******/ +/******/ // startup +/******/ // Load entry module and return exports +/******/ // This entry module depends on other loaded chunks and execution need to be delayed +/******/ var __webpack_exports__ = __webpack_require__.O(undefined, ["blocks/release-confirmation/style-index"], () => (__webpack_require__("./src/blocks/release-confirmation/index.js"))) +/******/ __webpack_exports__ = __webpack_require__.O(__webpack_exports__); +/******/ +/******/ })() +; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-confirmation/style-index.css b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-confirmation/style-index.css index fcd7532728..3f31bd5b80 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-confirmation/style-index.css +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-confirmation/style-index.css @@ -1 +1,9 @@ -.wp-block-wporg-release-confirmation .wporg-release-confirmation-actions{display:flex;gap:8px} +/*!*******************************************************************************************************************************************************************************************************************************************************************!*\ + !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/blocks/release-confirmation/style.scss ***! + \*******************************************************************************************************************************************************************************************************************************************************************/ +.wp-block-wporg-release-confirmation .wporg-release-confirmation-actions { + display: flex; + gap: 8px; +} + +/*# sourceMappingURL=style-index.css.map*/ \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-date/index.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-date/index.asset.php index 102a47f23b..92e88df07e 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-date/index.asset.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-date/index.asset.php @@ -1 +1 @@ - array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => '67c94d9ee37a0366f9f5'); + array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => '6f32bc4f1ebe9d26c56e'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-date/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-date/index.js index 6eca60df9b..b47ca850e8 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-date/index.js +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-date/index.js @@ -1 +1,183 @@ -(()=>{"use strict";var e={n:t=>{var r=t&&t.__esModule?()=>t.default:()=>t;return e.d(r,{a:r}),r},d:(t,r)=>{for(var o in r)e.o(r,o)&&!e.o(t,o)&&Object.defineProperty(t,o,{enumerable:!0,get:r[o]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t)};const t=window.React,r=window.wp.components,o=window.wp.blocks,n=window.wp.serverSideRender;var a=e.n(n);const l=window.wp.blockEditor,s=JSON.parse('{"u2":"wporg/release-date"}');(0,o.registerBlockType)(s.u2,{edit:function({attributes:e,name:o}){return(0,t.createElement)("div",{...(0,l.useBlockProps)()},(0,t.createElement)(r.Disabled,null,(0,t.createElement)(a(),{block:o,attributes:e})))},save:()=>null})})(); \ No newline at end of file +/******/ (() => { // webpackBootstrap +/******/ "use strict"; +/******/ var __webpack_modules__ = ({ + +/***/ "react": +/*!************************!*\ + !*** external "React" ***! + \************************/ +/***/ ((module) => { + +module.exports = window["React"]; + +/***/ }), + +/***/ "@wordpress/block-editor": +/*!*************************************!*\ + !*** external ["wp","blockEditor"] ***! + \*************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["blockEditor"]; + +/***/ }), + +/***/ "@wordpress/blocks": +/*!********************************!*\ + !*** external ["wp","blocks"] ***! + \********************************/ +/***/ ((module) => { + +module.exports = window["wp"]["blocks"]; + +/***/ }), + +/***/ "@wordpress/components": +/*!************************************!*\ + !*** external ["wp","components"] ***! + \************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["components"]; + +/***/ }), + +/***/ "@wordpress/server-side-render": +/*!******************************************!*\ + !*** external ["wp","serverSideRender"] ***! + \******************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["serverSideRender"]; + +/***/ }), + +/***/ "./src/blocks/release-date/block.json": +/*!********************************************!*\ + !*** ./src/blocks/release-date/block.json ***! + \********************************************/ +/***/ ((module) => { + +module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"wporg/release-date","version":"0.1.0","title":"Release Date","category":"design","icon":"","description":"A block to display release date.","textdomain":"wporg","attributes":{},"supports":{"html":false},"usesContext":["postId"],"editorScript":"file:./index.js","render":"file:./render.php","style":"file:./style-index.css"}'); + +/***/ }) + +/******/ }); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ // no module.id needed +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/************************************************************************/ +/******/ /* webpack/runtime/compat get default export */ +/******/ (() => { +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = (module) => { +/******/ var getter = module && module.__esModule ? +/******/ () => (module['default']) : +/******/ () => (module); +/******/ __webpack_require__.d(getter, { a: getter }); +/******/ return getter; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/define property getters */ +/******/ (() => { +/******/ // define getter functions for harmony exports +/******/ __webpack_require__.d = (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 */ +/******/ (() => { +/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) +/******/ })(); +/******/ +/******/ /* webpack/runtime/make namespace object */ +/******/ (() => { +/******/ // define __esModule on exports +/******/ __webpack_require__.r = (exports) => { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ })(); +/******/ +/************************************************************************/ +var __webpack_exports__ = {}; +// This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk. +(() => { +/*!******************************************!*\ + !*** ./src/blocks/release-date/index.js ***! + \******************************************/ +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); +/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/blocks */ "@wordpress/blocks"); +/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/server-side-render */ "@wordpress/server-side-render"); +/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/block-editor */ "@wordpress/block-editor"); +/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__); +/* harmony import */ var _block_json__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./block.json */ "./src/blocks/release-date/block.json"); + +/** + * WordPress dependencies + */ + + + + + +/** + * Internal dependencies + */ + +function Edit({ + attributes, + name +}) { + return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", { + ...(0,_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__.useBlockProps)() + }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Disabled, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)((_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default()), { + block: name, + attributes: attributes + }))); +} +(0,_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__.registerBlockType)(_block_json__WEBPACK_IMPORTED_MODULE_5__.name, { + edit: Edit, + save: () => null +}); +})(); + +/******/ })() +; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-menu-options/index.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-menu-options/index.asset.php index 1d2e47f31b..77921bd0a1 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-menu-options/index.asset.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-menu-options/index.asset.php @@ -1 +1 @@ - array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => '4d3b8e2e1241325b9148'); + array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => 'a82fb3da1323cd72755b'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-menu-options/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-menu-options/index.js index 788e017c89..ec4a594e7e 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-menu-options/index.js +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-menu-options/index.js @@ -1 +1,298 @@ -(()=>{"use strict";var e,r={356:(e,r,n)=>{const o=window.React,t=window.wp.components,i=window.wp.blocks,a=window.wp.serverSideRender;var l=n.n(a);const s=window.wp.blockEditor,p=JSON.parse('{"u2":"wporg/release-menu-options"}');(0,i.registerBlockType)(p.u2,{edit:function({attributes:e,name:r}){return(0,o.createElement)("div",{...(0,s.useBlockProps)()},(0,o.createElement)(t.Disabled,null,(0,o.createElement)(l(),{block:r,attributes:e})))},save:()=>null})}},n={};function o(e){var t=n[e];if(void 0!==t)return t.exports;var i=n[e]={exports:{}};return r[e](i,i.exports,o),i.exports}o.m=r,e=[],o.O=(r,n,t,i)=>{if(!n){var a=1/0;for(u=0;u=i)&&Object.keys(o.O).every((e=>o.O[e](n[s])))?n.splice(s--,1):(l=!1,i0&&e[u-1][2]>i;u--)e[u]=e[u-1];e[u]=[n,t,i]},o.n=e=>{var r=e&&e.__esModule?()=>e.default:()=>e;return o.d(r,{a:r}),r},o.d=(e,r)=>{for(var n in r)o.o(r,n)&&!o.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),(()=>{var e={980:0,161:0};o.O.j=r=>0===e[r];var r=(r,n)=>{var t,i,a=n[0],l=n[1],s=n[2],p=0;if(a.some((r=>0!==e[r]))){for(t in l)o.o(l,t)&&(o.m[t]=l[t]);if(s)var u=s(o)}for(r&&r(n);po(356)));t=o.O(t)})(); \ No newline at end of file +/******/ (() => { // webpackBootstrap +/******/ "use strict"; +/******/ var __webpack_modules__ = ({ + +/***/ "./src/blocks/release-menu-options/index.js": +/*!**************************************************!*\ + !*** ./src/blocks/release-menu-options/index.js ***! + \**************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); +/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/blocks */ "@wordpress/blocks"); +/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/server-side-render */ "@wordpress/server-side-render"); +/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/block-editor */ "@wordpress/block-editor"); +/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__); +/* harmony import */ var _block_json__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./block.json */ "./src/blocks/release-menu-options/block.json"); +/* harmony import */ var _style_scss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./style.scss */ "./src/blocks/release-menu-options/style.scss"); + +/** + * WordPress dependencies + */ + + + + + +/** + * Internal dependencies + */ + + +function Edit({ + attributes, + name +}) { + return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", { + ...(0,_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__.useBlockProps)() + }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Disabled, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)((_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default()), { + block: name, + attributes: attributes + }))); +} +(0,_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__.registerBlockType)(_block_json__WEBPACK_IMPORTED_MODULE_5__.name, { + edit: Edit, + save: () => null +}); + +/***/ }), + +/***/ "./src/blocks/release-menu-options/style.scss": +/*!****************************************************!*\ + !*** ./src/blocks/release-menu-options/style.scss ***! + \****************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +// extracted by mini-css-extract-plugin + + +/***/ }), + +/***/ "react": +/*!************************!*\ + !*** external "React" ***! + \************************/ +/***/ ((module) => { + +module.exports = window["React"]; + +/***/ }), + +/***/ "@wordpress/block-editor": +/*!*************************************!*\ + !*** external ["wp","blockEditor"] ***! + \*************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["blockEditor"]; + +/***/ }), + +/***/ "@wordpress/blocks": +/*!********************************!*\ + !*** external ["wp","blocks"] ***! + \********************************/ +/***/ ((module) => { + +module.exports = window["wp"]["blocks"]; + +/***/ }), + +/***/ "@wordpress/components": +/*!************************************!*\ + !*** external ["wp","components"] ***! + \************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["components"]; + +/***/ }), + +/***/ "@wordpress/server-side-render": +/*!******************************************!*\ + !*** external ["wp","serverSideRender"] ***! + \******************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["serverSideRender"]; + +/***/ }), + +/***/ "./src/blocks/release-menu-options/block.json": +/*!****************************************************!*\ + !*** ./src/blocks/release-menu-options/block.json ***! + \****************************************************/ +/***/ ((module) => { + +module.exports = JSON.parse('{"apiVersion":2,"name":"wporg/release-menu-options","title":"Release Menu Options","category":"widgets","icon":"menu","description":"Display the dropdown menu option for a release.","supports":{"html":false},"usesContext":["postId"],"textdomain":"wporg","editorScript":"file:./index.js","style":"file:./style-index.css","render":"file:./render.php"}'); + +/***/ }) + +/******/ }); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ // no module.id needed +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = __webpack_modules__; +/******/ +/************************************************************************/ +/******/ /* webpack/runtime/chunk loaded */ +/******/ (() => { +/******/ var deferred = []; +/******/ __webpack_require__.O = (result, chunkIds, fn, priority) => { +/******/ if(chunkIds) { +/******/ priority = priority || 0; +/******/ for(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1]; +/******/ deferred[i] = [chunkIds, fn, priority]; +/******/ return; +/******/ } +/******/ var notFulfilled = Infinity; +/******/ for (var i = 0; i < deferred.length; i++) { +/******/ var chunkIds = deferred[i][0]; +/******/ var fn = deferred[i][1]; +/******/ var priority = deferred[i][2]; +/******/ var fulfilled = true; +/******/ for (var j = 0; j < chunkIds.length; j++) { +/******/ if ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) { +/******/ chunkIds.splice(j--, 1); +/******/ } else { +/******/ fulfilled = false; +/******/ if(priority < notFulfilled) notFulfilled = priority; +/******/ } +/******/ } +/******/ if(fulfilled) { +/******/ deferred.splice(i--, 1) +/******/ var r = fn(); +/******/ if (r !== undefined) result = r; +/******/ } +/******/ } +/******/ return result; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/compat get default export */ +/******/ (() => { +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = (module) => { +/******/ var getter = module && module.__esModule ? +/******/ () => (module['default']) : +/******/ () => (module); +/******/ __webpack_require__.d(getter, { a: getter }); +/******/ return getter; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/define property getters */ +/******/ (() => { +/******/ // define getter functions for harmony exports +/******/ __webpack_require__.d = (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 */ +/******/ (() => { +/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) +/******/ })(); +/******/ +/******/ /* webpack/runtime/make namespace object */ +/******/ (() => { +/******/ // define __esModule on exports +/******/ __webpack_require__.r = (exports) => { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/jsonp chunk loading */ +/******/ (() => { +/******/ // no baseURI +/******/ +/******/ // object to store loaded and loading chunks +/******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched +/******/ // [resolve, reject, Promise] = chunk loading, 0 = chunk loaded +/******/ var installedChunks = { +/******/ "blocks/release-menu-options/index": 0, +/******/ "blocks/release-menu-options/style-index": 0 +/******/ }; +/******/ +/******/ // no chunk on demand loading +/******/ +/******/ // no prefetching +/******/ +/******/ // no preloaded +/******/ +/******/ // no HMR +/******/ +/******/ // no HMR manifest +/******/ +/******/ __webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0); +/******/ +/******/ // install a JSONP callback for chunk loading +/******/ var webpackJsonpCallback = (parentChunkLoadingFunction, data) => { +/******/ var chunkIds = data[0]; +/******/ var moreModules = data[1]; +/******/ var runtime = data[2]; +/******/ // add "moreModules" to the modules object, +/******/ // then flag all "chunkIds" as loaded and fire callback +/******/ var moduleId, chunkId, i = 0; +/******/ if(chunkIds.some((id) => (installedChunks[id] !== 0))) { +/******/ for(moduleId in moreModules) { +/******/ if(__webpack_require__.o(moreModules, moduleId)) { +/******/ __webpack_require__.m[moduleId] = moreModules[moduleId]; +/******/ } +/******/ } +/******/ if(runtime) var result = runtime(__webpack_require__); +/******/ } +/******/ if(parentChunkLoadingFunction) parentChunkLoadingFunction(data); +/******/ for(;i < chunkIds.length; i++) { +/******/ chunkId = chunkIds[i]; +/******/ if(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) { +/******/ installedChunks[chunkId][0](); +/******/ } +/******/ installedChunks[chunkId] = 0; +/******/ } +/******/ return __webpack_require__.O(result); +/******/ } +/******/ +/******/ var chunkLoadingGlobal = self["webpackChunkwporg_plugins_2024"] = self["webpackChunkwporg_plugins_2024"] || []; +/******/ chunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0)); +/******/ chunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal)); +/******/ })(); +/******/ +/************************************************************************/ +/******/ +/******/ // startup +/******/ // Load entry module and return exports +/******/ // This entry module depends on other loaded chunks and execution need to be delayed +/******/ var __webpack_exports__ = __webpack_require__.O(undefined, ["blocks/release-menu-options/style-index"], () => (__webpack_require__("./src/blocks/release-menu-options/index.js"))) +/******/ __webpack_exports__ = __webpack_require__.O(__webpack_exports__); +/******/ +/******/ })() +; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-menu-options/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-menu-options/render.php index 61a8b051a9..4fde8408a5 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-menu-options/render.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-menu-options/render.php @@ -11,28 +11,47 @@ return; } -$download_link = Template::download_link( $post->post_parent, get_post_meta( $post->ID, 'release_version', true ) ); - -$blueprint = << 'plugin_release', + 'posts_per_page' => -1, + 'post_parent' => $post->post_parent, + 'orderby' => 'date', + 'order' => 'DESC', +); + +$releases = get_posts( $args ); + +$current_version = get_post_meta( $post->ID, 'release_version', true ); +$previous_version = null; + +foreach ( $releases as $key => $release ) { + if ( $release->ID === $post->ID ) { + if ( isset( $releases[ $key + 1 ] ) ) { + $previous_version = get_post_meta( $releases[ $key + 1 ]->ID, 'release_version', true ); } - ] + break; + } } -BLUEPRINT; + /** * Blueprint is base64 encoded to be passed as a URL parameter. * * @see https://wordpress.github.io/wordpress-playground/blueprints/tutorial/how-to-load-run-blueprints#base64-encoded-blueprints */ +$blueprint = wp_json_encode( [ + 'login' => true, + 'steps' => [ + [ + 'step' => 'installPlugin', + 'pluginData' => [ + 'resource' => 'url', + 'url' => Template::download_link( $post->post_parent, $current_version ) + ] + ] + ] +] ); + $encoded_blueprint_url = 'https://playground.wordpress.net/#' . base64_encode( $blueprint ); $download_link = sprintf( @@ -47,17 +66,37 @@ esc_url( $encoded_blueprint_url ) ); -$subnav = sprintf( - '%2$s %3$s', +$changes_link = ''; + +if ( null !== $previous_version ) { + $plugin = get_post( $post->post_parent ); + + $changes_link = sprintf( + '', + esc_html( 'View changes', 'wporg-plugins' ), + esc_url( + sprintf( + 'https://plugins.trac.wordpress.org/changeset?old_path=/%1$s/tags/%2$s&new_path=/%1$s/tags/%3$s', + $plugin->post_name, + $current_version, + $previous_version + ) + ) + ); +} + +$submenu = sprintf( + '%2$s%3$s%4$s', esc_html( 'Release options', 'wporg-plugins' ), $download_link, - $blueprint_link + $blueprint_link, + $changes_link ); $navigation = sprintf( '%2$s', esc_html( 'Release options', 'release options label', 'wporg-plugins' ), - $subnav + $submenu ); echo do_blocks( $navigation ); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-menu-options/style-index.css b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-menu-options/style-index.css index 12af1e2ea3..3bd0eec271 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-menu-options/style-index.css +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-menu-options/style-index.css @@ -1 +1,40 @@ -.wporg-release-menu-options .wp-block-navigation__submenu-container{left:auto!important;right:0!important;top:calc(100% + 4px)!important}.wporg-release-menu-options .wp-block-navigation-item{background-color:initial}.wporg-release-menu-options .wp-block-navigation__submenu-icon{display:none}.wporg-release-menu-options button>.wp-block-navigation-item__label{word-wrap:normal!important;border:0;clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.wporg-release-menu-options button{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 width=%2724%27 height=%2724%27 aria-hidden=%27true%27%3E%3Cpath d=%27M13 19h-2v-2h2zm0-6h-2v-2h2zm0-6h-2V5h2z%27/%3E%3C/svg%3E");background-position:50%;background-repeat:no-repeat;content:"";height:32px;width:32px} +/*!*******************************************************************************************************************************************************************************************************************************************************************!*\ + !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/blocks/release-menu-options/style.scss ***! + \*******************************************************************************************************************************************************************************************************************************************************************/ +.wporg-release-menu-options { + /* Manually apply screen reader text styles */ +} +.wporg-release-menu-options .wp-block-navigation__submenu-container { + top: calc(100% + 4px) !important; + right: 0 !important; + left: auto !important; +} +.wporg-release-menu-options .wp-block-navigation-item { + background-color: initial; + /* Stops the hidden overflow on focus */ +} +.wporg-release-menu-options .wp-block-navigation__submenu-icon { + display: none; + /* Hide dropdown caret */ +} +.wporg-release-menu-options button > .wp-block-navigation-item__label { + word-wrap: normal !important; + border: 0; + clip-path: inset(50%); + height: 1px; + margin: -1px; + overflow: hidden; + padding: 0; + position: absolute; + width: 1px; +} +.wporg-release-menu-options button { + content: ""; + background-image: url("data:image/svg+xml,"); + background-repeat: no-repeat; + background-position: center; + width: 32px; + height: 32px; +} + +/*# sourceMappingURL=style-index.css.map*/ \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status/index.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status/index.asset.php index ae48d16627..12c89a9152 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status/index.asset.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status/index.asset.php @@ -1 +1 @@ - array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => '5ba0c1f0bcdeb1df6776'); + array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => 'c83432e9006397d41e80'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status/index.js index 46af162598..dfb23315e0 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status/index.js +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status/index.js @@ -1 +1,298 @@ -(()=>{"use strict";var e,r={728:(e,r,t)=>{const n=window.React,o=window.wp.components,a=window.wp.blocks,i=window.wp.serverSideRender;var s=t.n(i);const l=window.wp.blockEditor,u=JSON.parse('{"u2":"wporg/release-status"}');(0,a.registerBlockType)(u.u2,{edit:function({attributes:e,name:r}){return(0,n.createElement)("div",{...(0,l.useBlockProps)()},(0,n.createElement)(o.Disabled,null,(0,n.createElement)(s(),{block:r,attributes:e})))},save:()=>null})}},t={};function n(e){var o=t[e];if(void 0!==o)return o.exports;var a=t[e]={exports:{}};return r[e](a,a.exports,n),a.exports}n.m=r,e=[],n.O=(r,t,o,a)=>{if(!t){var i=1/0;for(p=0;p=a)&&Object.keys(n.O).every((e=>n.O[e](t[l])))?t.splice(l--,1):(s=!1,a0&&e[p-1][2]>a;p--)e[p]=e[p-1];e[p]=[t,o,a]},n.n=e=>{var r=e&&e.__esModule?()=>e.default:()=>e;return n.d(r,{a:r}),r},n.d=(e,r)=>{for(var t in r)n.o(r,t)&&!n.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:r[t]})},n.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),(()=>{var e={400:0,467:0};n.O.j=r=>0===e[r];var r=(r,t)=>{var o,a,i=t[0],s=t[1],l=t[2],u=0;if(i.some((r=>0!==e[r]))){for(o in s)n.o(s,o)&&(n.m[o]=s[o]);if(l)var p=l(n)}for(r&&r(t);un(728)));o=n.O(o)})(); \ No newline at end of file +/******/ (() => { // webpackBootstrap +/******/ "use strict"; +/******/ var __webpack_modules__ = ({ + +/***/ "./src/blocks/release-status/index.js": +/*!********************************************!*\ + !*** ./src/blocks/release-status/index.js ***! + \********************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); +/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/blocks */ "@wordpress/blocks"); +/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/server-side-render */ "@wordpress/server-side-render"); +/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/block-editor */ "@wordpress/block-editor"); +/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__); +/* harmony import */ var _block_json__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./block.json */ "./src/blocks/release-status/block.json"); +/* harmony import */ var _style_scss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./style.scss */ "./src/blocks/release-status/style.scss"); + +/** + * WordPress dependencies + */ + + + + + +/** + * Internal dependencies + */ + + +function Edit({ + attributes, + name +}) { + return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", { + ...(0,_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__.useBlockProps)() + }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Disabled, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)((_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default()), { + block: name, + attributes: attributes + }))); +} +(0,_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__.registerBlockType)(_block_json__WEBPACK_IMPORTED_MODULE_5__.name, { + edit: Edit, + save: () => null +}); + +/***/ }), + +/***/ "./src/blocks/release-status/style.scss": +/*!**********************************************!*\ + !*** ./src/blocks/release-status/style.scss ***! + \**********************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +// extracted by mini-css-extract-plugin + + +/***/ }), + +/***/ "react": +/*!************************!*\ + !*** external "React" ***! + \************************/ +/***/ ((module) => { + +module.exports = window["React"]; + +/***/ }), + +/***/ "@wordpress/block-editor": +/*!*************************************!*\ + !*** external ["wp","blockEditor"] ***! + \*************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["blockEditor"]; + +/***/ }), + +/***/ "@wordpress/blocks": +/*!********************************!*\ + !*** external ["wp","blocks"] ***! + \********************************/ +/***/ ((module) => { + +module.exports = window["wp"]["blocks"]; + +/***/ }), + +/***/ "@wordpress/components": +/*!************************************!*\ + !*** external ["wp","components"] ***! + \************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["components"]; + +/***/ }), + +/***/ "@wordpress/server-side-render": +/*!******************************************!*\ + !*** external ["wp","serverSideRender"] ***! + \******************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["serverSideRender"]; + +/***/ }), + +/***/ "./src/blocks/release-status/block.json": +/*!**********************************************!*\ + !*** ./src/blocks/release-status/block.json ***! + \**********************************************/ +/***/ ((module) => { + +module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"wporg/release-status","version":"0.1.0","title":"Release Status","category":"design","icon":"","description":"A block to display release status.","textdomain":"wporg","attributes":{},"supports":{"html":false},"usesContext":["postId"],"editorScript":"file:./index.js","render":"file:./render.php","style":"file:./style-index.css"}'); + +/***/ }) + +/******/ }); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ // no module.id needed +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = __webpack_modules__; +/******/ +/************************************************************************/ +/******/ /* webpack/runtime/chunk loaded */ +/******/ (() => { +/******/ var deferred = []; +/******/ __webpack_require__.O = (result, chunkIds, fn, priority) => { +/******/ if(chunkIds) { +/******/ priority = priority || 0; +/******/ for(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1]; +/******/ deferred[i] = [chunkIds, fn, priority]; +/******/ return; +/******/ } +/******/ var notFulfilled = Infinity; +/******/ for (var i = 0; i < deferred.length; i++) { +/******/ var chunkIds = deferred[i][0]; +/******/ var fn = deferred[i][1]; +/******/ var priority = deferred[i][2]; +/******/ var fulfilled = true; +/******/ for (var j = 0; j < chunkIds.length; j++) { +/******/ if ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) { +/******/ chunkIds.splice(j--, 1); +/******/ } else { +/******/ fulfilled = false; +/******/ if(priority < notFulfilled) notFulfilled = priority; +/******/ } +/******/ } +/******/ if(fulfilled) { +/******/ deferred.splice(i--, 1) +/******/ var r = fn(); +/******/ if (r !== undefined) result = r; +/******/ } +/******/ } +/******/ return result; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/compat get default export */ +/******/ (() => { +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = (module) => { +/******/ var getter = module && module.__esModule ? +/******/ () => (module['default']) : +/******/ () => (module); +/******/ __webpack_require__.d(getter, { a: getter }); +/******/ return getter; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/define property getters */ +/******/ (() => { +/******/ // define getter functions for harmony exports +/******/ __webpack_require__.d = (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 */ +/******/ (() => { +/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) +/******/ })(); +/******/ +/******/ /* webpack/runtime/make namespace object */ +/******/ (() => { +/******/ // define __esModule on exports +/******/ __webpack_require__.r = (exports) => { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/jsonp chunk loading */ +/******/ (() => { +/******/ // no baseURI +/******/ +/******/ // object to store loaded and loading chunks +/******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched +/******/ // [resolve, reject, Promise] = chunk loading, 0 = chunk loaded +/******/ var installedChunks = { +/******/ "blocks/release-status/index": 0, +/******/ "blocks/release-status/style-index": 0 +/******/ }; +/******/ +/******/ // no chunk on demand loading +/******/ +/******/ // no prefetching +/******/ +/******/ // no preloaded +/******/ +/******/ // no HMR +/******/ +/******/ // no HMR manifest +/******/ +/******/ __webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0); +/******/ +/******/ // install a JSONP callback for chunk loading +/******/ var webpackJsonpCallback = (parentChunkLoadingFunction, data) => { +/******/ var chunkIds = data[0]; +/******/ var moreModules = data[1]; +/******/ var runtime = data[2]; +/******/ // add "moreModules" to the modules object, +/******/ // then flag all "chunkIds" as loaded and fire callback +/******/ var moduleId, chunkId, i = 0; +/******/ if(chunkIds.some((id) => (installedChunks[id] !== 0))) { +/******/ for(moduleId in moreModules) { +/******/ if(__webpack_require__.o(moreModules, moduleId)) { +/******/ __webpack_require__.m[moduleId] = moreModules[moduleId]; +/******/ } +/******/ } +/******/ if(runtime) var result = runtime(__webpack_require__); +/******/ } +/******/ if(parentChunkLoadingFunction) parentChunkLoadingFunction(data); +/******/ for(;i < chunkIds.length; i++) { +/******/ chunkId = chunkIds[i]; +/******/ if(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) { +/******/ installedChunks[chunkId][0](); +/******/ } +/******/ installedChunks[chunkId] = 0; +/******/ } +/******/ return __webpack_require__.O(result); +/******/ } +/******/ +/******/ var chunkLoadingGlobal = self["webpackChunkwporg_plugins_2024"] = self["webpackChunkwporg_plugins_2024"] || []; +/******/ chunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0)); +/******/ chunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal)); +/******/ })(); +/******/ +/************************************************************************/ +/******/ +/******/ // startup +/******/ // Load entry module and return exports +/******/ // This entry module depends on other loaded chunks and execution need to be delayed +/******/ var __webpack_exports__ = __webpack_require__.O(undefined, ["blocks/release-status/style-index"], () => (__webpack_require__("./src/blocks/release-status/index.js"))) +/******/ __webpack_exports__ = __webpack_require__.O(__webpack_exports__); +/******/ +/******/ })() +; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status/style-index.css b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status/style-index.css index 0d122edafe..3a9fab5125 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status/style-index.css +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status/style-index.css @@ -1 +1,11 @@ -.wp-block-wporg-release-status{border:1px solid var(--wp--preset--color--blueberry-3);border-radius:var(--wp--custom--button--border--radius);font-size:var(--wp--preset--font-size--extra-small);padding:2px 10px} +/*!*************************************************************************************************************************************************************************************************************************************************************!*\ + !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/blocks/release-status/style.scss ***! + \*************************************************************************************************************************************************************************************************************************************************************/ +.wp-block-wporg-release-status { + padding: 2px 10px; + border: 1px solid var(--wp--preset--color--blueberry-3); + font-size: var(--wp--preset--font-size--extra-small); + border-radius: var(--wp--custom--button--border--radius); +} + +/*# sourceMappingURL=style-index.css.map*/ \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/search-page/index.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/search-page/index.asset.php index 3874c78df8..324a1e825f 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/search-page/index.asset.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/search-page/index.asset.php @@ -1 +1 @@ - array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => '6b2f02802534bd210435'); + array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => '2932d78d72daed3eaacc'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/search-page/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/search-page/index.js index 66e06627aa..7e3f159885 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/search-page/index.js +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/search-page/index.js @@ -1 +1,183 @@ -(()=>{"use strict";var e={n:t=>{var r=t&&t.__esModule?()=>t.default:()=>t;return e.d(r,{a:r}),r},d:(t,r)=>{for(var o in r)e.o(r,o)&&!e.o(t,o)&&Object.defineProperty(t,o,{enumerable:!0,get:r[o]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t)};const t=window.React,r=window.wp.components,o=window.wp.blocks,n=window.wp.serverSideRender;var a=e.n(n);const c=window.wp.blockEditor,l=JSON.parse('{"u2":"wporg/search-page"}');(0,o.registerBlockType)(l.u2,{edit:function({attributes:e,name:o}){return(0,t.createElement)("div",{...(0,c.useBlockProps)()},(0,t.createElement)(r.Disabled,null,(0,t.createElement)(a(),{block:o,attributes:e})))},save:()=>null})})(); \ No newline at end of file +/******/ (() => { // webpackBootstrap +/******/ "use strict"; +/******/ var __webpack_modules__ = ({ + +/***/ "react": +/*!************************!*\ + !*** external "React" ***! + \************************/ +/***/ ((module) => { + +module.exports = window["React"]; + +/***/ }), + +/***/ "@wordpress/block-editor": +/*!*************************************!*\ + !*** external ["wp","blockEditor"] ***! + \*************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["blockEditor"]; + +/***/ }), + +/***/ "@wordpress/blocks": +/*!********************************!*\ + !*** external ["wp","blocks"] ***! + \********************************/ +/***/ ((module) => { + +module.exports = window["wp"]["blocks"]; + +/***/ }), + +/***/ "@wordpress/components": +/*!************************************!*\ + !*** external ["wp","components"] ***! + \************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["components"]; + +/***/ }), + +/***/ "@wordpress/server-side-render": +/*!******************************************!*\ + !*** external ["wp","serverSideRender"] ***! + \******************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["serverSideRender"]; + +/***/ }), + +/***/ "./src/blocks/search-page/block.json": +/*!*******************************************!*\ + !*** ./src/blocks/search-page/block.json ***! + \*******************************************/ +/***/ ((module) => { + +module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"wporg/search-page","version":"0.1.0","title":"Search Page Content","category":"design","icon":"","description":"A block that displays the search page content","textdomain":"wporg","attributes":{},"supports":{"html":false},"editorScript":"file:./index.js","render":"file:./render.php"}'); + +/***/ }) + +/******/ }); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ // no module.id needed +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/************************************************************************/ +/******/ /* webpack/runtime/compat get default export */ +/******/ (() => { +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = (module) => { +/******/ var getter = module && module.__esModule ? +/******/ () => (module['default']) : +/******/ () => (module); +/******/ __webpack_require__.d(getter, { a: getter }); +/******/ return getter; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/define property getters */ +/******/ (() => { +/******/ // define getter functions for harmony exports +/******/ __webpack_require__.d = (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 */ +/******/ (() => { +/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) +/******/ })(); +/******/ +/******/ /* webpack/runtime/make namespace object */ +/******/ (() => { +/******/ // define __esModule on exports +/******/ __webpack_require__.r = (exports) => { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ })(); +/******/ +/************************************************************************/ +var __webpack_exports__ = {}; +// This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk. +(() => { +/*!*****************************************!*\ + !*** ./src/blocks/search-page/index.js ***! + \*****************************************/ +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); +/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/blocks */ "@wordpress/blocks"); +/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/server-side-render */ "@wordpress/server-side-render"); +/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/block-editor */ "@wordpress/block-editor"); +/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__); +/* harmony import */ var _block_json__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./block.json */ "./src/blocks/search-page/block.json"); + +/** + * WordPress dependencies + */ + + + + + +/** + * Internal dependencies + */ + +function Edit({ + attributes, + name +}) { + return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", { + ...(0,_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__.useBlockProps)() + }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Disabled, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)((_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default()), { + block: name, + attributes: attributes + }))); +} +(0,_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__.registerBlockType)(_block_json__WEBPACK_IMPORTED_MODULE_5__.name, { + edit: Edit, + save: () => null +}); +})(); + +/******/ })() +; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/single-plugin/index.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/single-plugin/index.asset.php index cb40720c88..d35f709556 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/single-plugin/index.asset.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/single-plugin/index.asset.php @@ -1 +1 @@ - array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => '553d7b70458e5cb3fa39'); + array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => '1bb248b43dcc36e48747'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/single-plugin/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/single-plugin/index.js index 4d9a19fd2b..8c8d7df376 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/single-plugin/index.js +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/single-plugin/index.js @@ -1 +1,183 @@ -(()=>{"use strict";var e={n:t=>{var r=t&&t.__esModule?()=>t.default:()=>t;return e.d(r,{a:r}),r},d:(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:(e,t)=>Object.prototype.hasOwnProperty.call(e,t)};const t=window.React,r=window.wp.components,n=window.wp.blocks,o=window.wp.serverSideRender;var l=e.n(o);const a=window.wp.blockEditor,i=JSON.parse('{"u2":"wporg/single-plugin"}');(0,n.registerBlockType)(i.u2,{edit:function({attributes:e,name:n}){return(0,t.createElement)("div",{...(0,a.useBlockProps)()},(0,t.createElement)(r.Disabled,null,(0,t.createElement)(l(),{block:n,attributes:e})))},save:()=>null})})(); \ No newline at end of file +/******/ (() => { // webpackBootstrap +/******/ "use strict"; +/******/ var __webpack_modules__ = ({ + +/***/ "react": +/*!************************!*\ + !*** external "React" ***! + \************************/ +/***/ ((module) => { + +module.exports = window["React"]; + +/***/ }), + +/***/ "@wordpress/block-editor": +/*!*************************************!*\ + !*** external ["wp","blockEditor"] ***! + \*************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["blockEditor"]; + +/***/ }), + +/***/ "@wordpress/blocks": +/*!********************************!*\ + !*** external ["wp","blocks"] ***! + \********************************/ +/***/ ((module) => { + +module.exports = window["wp"]["blocks"]; + +/***/ }), + +/***/ "@wordpress/components": +/*!************************************!*\ + !*** external ["wp","components"] ***! + \************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["components"]; + +/***/ }), + +/***/ "@wordpress/server-side-render": +/*!******************************************!*\ + !*** external ["wp","serverSideRender"] ***! + \******************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["serverSideRender"]; + +/***/ }), + +/***/ "./src/blocks/single-plugin/block.json": +/*!*********************************************!*\ + !*** ./src/blocks/single-plugin/block.json ***! + \*********************************************/ +/***/ ((module) => { + +module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"wporg/single-plugin","version":"0.1.0","title":"Single Plugin Content","category":"design","icon":"","description":"A block that displays the single plugin content","textdomain":"wporg","attributes":{},"supports":{"html":false},"usesContext":["postId"],"editorScript":"file:./index.js","render":"file:./render.php"}'); + +/***/ }) + +/******/ }); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ // no module.id needed +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/************************************************************************/ +/******/ /* webpack/runtime/compat get default export */ +/******/ (() => { +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = (module) => { +/******/ var getter = module && module.__esModule ? +/******/ () => (module['default']) : +/******/ () => (module); +/******/ __webpack_require__.d(getter, { a: getter }); +/******/ return getter; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/define property getters */ +/******/ (() => { +/******/ // define getter functions for harmony exports +/******/ __webpack_require__.d = (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 */ +/******/ (() => { +/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) +/******/ })(); +/******/ +/******/ /* webpack/runtime/make namespace object */ +/******/ (() => { +/******/ // define __esModule on exports +/******/ __webpack_require__.r = (exports) => { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ })(); +/******/ +/************************************************************************/ +var __webpack_exports__ = {}; +// This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk. +(() => { +/*!*******************************************!*\ + !*** ./src/blocks/single-plugin/index.js ***! + \*******************************************/ +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); +/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/blocks */ "@wordpress/blocks"); +/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/server-side-render */ "@wordpress/server-side-render"); +/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/block-editor */ "@wordpress/block-editor"); +/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__); +/* harmony import */ var _block_json__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./block.json */ "./src/blocks/single-plugin/block.json"); + +/** + * WordPress dependencies + */ + + + + + +/** + * Internal dependencies + */ + +function Edit({ + attributes, + name +}) { + return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", { + ...(0,_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__.useBlockProps)() + }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Disabled, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)((_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default()), { + block: name, + attributes: attributes + }))); +} +(0,_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__.registerBlockType)(_block_json__WEBPACK_IMPORTED_MODULE_5__.name, { + edit: Edit, + save: () => null +}); +})(); + +/******/ })() +; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-menu-options/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-menu-options/render.php index 61a8b051a9..4fde8408a5 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-menu-options/render.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-menu-options/render.php @@ -11,28 +11,47 @@ return; } -$download_link = Template::download_link( $post->post_parent, get_post_meta( $post->ID, 'release_version', true ) ); - -$blueprint = << 'plugin_release', + 'posts_per_page' => -1, + 'post_parent' => $post->post_parent, + 'orderby' => 'date', + 'order' => 'DESC', +); + +$releases = get_posts( $args ); + +$current_version = get_post_meta( $post->ID, 'release_version', true ); +$previous_version = null; + +foreach ( $releases as $key => $release ) { + if ( $release->ID === $post->ID ) { + if ( isset( $releases[ $key + 1 ] ) ) { + $previous_version = get_post_meta( $releases[ $key + 1 ]->ID, 'release_version', true ); } - ] + break; + } } -BLUEPRINT; + /** * Blueprint is base64 encoded to be passed as a URL parameter. * * @see https://wordpress.github.io/wordpress-playground/blueprints/tutorial/how-to-load-run-blueprints#base64-encoded-blueprints */ +$blueprint = wp_json_encode( [ + 'login' => true, + 'steps' => [ + [ + 'step' => 'installPlugin', + 'pluginData' => [ + 'resource' => 'url', + 'url' => Template::download_link( $post->post_parent, $current_version ) + ] + ] + ] +] ); + $encoded_blueprint_url = 'https://playground.wordpress.net/#' . base64_encode( $blueprint ); $download_link = sprintf( @@ -47,17 +66,37 @@ esc_url( $encoded_blueprint_url ) ); -$subnav = sprintf( - '%2$s %3$s', +$changes_link = ''; + +if ( null !== $previous_version ) { + $plugin = get_post( $post->post_parent ); + + $changes_link = sprintf( + '', + esc_html( 'View changes', 'wporg-plugins' ), + esc_url( + sprintf( + 'https://plugins.trac.wordpress.org/changeset?old_path=/%1$s/tags/%2$s&new_path=/%1$s/tags/%3$s', + $plugin->post_name, + $current_version, + $previous_version + ) + ) + ); +} + +$submenu = sprintf( + '%2$s%3$s%4$s', esc_html( 'Release options', 'wporg-plugins' ), $download_link, - $blueprint_link + $blueprint_link, + $changes_link ); $navigation = sprintf( '%2$s', esc_html( 'Release options', 'release options label', 'wporg-plugins' ), - $subnav + $submenu ); echo do_blocks( $navigation ); From 26508c45e1997e6bd452fb7d9fae85fec719b031 Mon Sep 17 00:00:00 2001 From: StevenDufresne Date: Tue, 26 Nov 2024 02:53:18 +0000 Subject: [PATCH 22/84] Make the query work. --- .../pub/wporg-plugins-2024/inc/block-config.php | 14 ++++++++++++++ .../pub/wporg-plugins-2024/parts/releases.html | 8 ++++++-- .../patterns/releases-no-results.php | 14 -------------- 3 files changed, 20 insertions(+), 16 deletions(-) delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/patterns/releases-no-results.php diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/inc/block-config.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/inc/block-config.php index 2bd780e2f4..e068abf643 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/inc/block-config.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/inc/block-config.php @@ -14,6 +14,7 @@ add_filter( 'wporg_query_filter_options_plugin_category', __NAMESPACE__ . '\wporg_query_filter_options_plugin_category' ); add_filter( 'wporg_query_filter_in_form', __NAMESPACE__ . '\wporg_query_filter_in_form' ); add_filter( 'wporg_query_total_label', __NAMESPACE__ . '\wporg_query_total_label', 10, 2 ); +add_filter( 'query_loop_block_query_vars', __NAMESPACE__ . '\modify_block_query_var', 9, 3 ); add_filter( 'wporg_favorite_button_settings', __NAMESPACE__ . '\get_favorite_settings', 10, 2 ); add_filter( 'wporg_ratings_data', __NAMESPACE__ . '\set_rating_data', 10, 2 ); add_filter( 'render_block_core/search', __NAMESPACE__ . '\filter_search_block' ); @@ -449,3 +450,16 @@ function handle_publish_action() { } } } + +/* + * Filter the query to show only the children of the plugin. + */ +function modify_block_query_var( $query, $block, $page ) { + if ( 'plugin_release' !== $query['post_type'] ) { + return $query; + } + + $query['post_parent'] = get_the_ID(); + + return $query; +} diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/parts/releases.html b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/parts/releases.html index 797c6fcd25..d681ed58d1 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/parts/releases.html +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/parts/releases.html @@ -5,7 +5,7 @@

    Releases

    - +
    @@ -40,7 +40,11 @@

    Releases

    - + + +

    There are no releases yet

    + +
    diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/patterns/releases-no-results.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/patterns/releases-no-results.php deleted file mode 100644 index 5c748af26d..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/patterns/releases-no-results.php +++ /dev/null @@ -1,14 +0,0 @@ - - - - -

    - - \ No newline at end of file From d795ae9aeb405100b401dc9c513e64ae0ff1ba42 Mon Sep 17 00:00:00 2001 From: tellyworth Date: Tue, 26 Nov 2024 15:25:42 +1100 Subject: [PATCH 23/84] Create a draft release when trunk changes exist after the most recent release Needs more testing. Not sure if having the 'date' part is a good idea. --- .../plugin-directory/class-plugin-release.php | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/wordpress.org/public_html/wp-content/plugins/plugin-directory/class-plugin-release.php b/wordpress.org/public_html/wp-content/plugins/plugin-directory/class-plugin-release.php index da32b20be8..2f2f2084e7 100644 --- a/wordpress.org/public_html/wp-content/plugins/plugin-directory/class-plugin-release.php +++ b/wordpress.org/public_html/wp-content/plugins/plugin-directory/class-plugin-release.php @@ -102,6 +102,7 @@ public function add_release( $plugin, $release ) { 'release_committer' => $release['committer'], 'release_zips_built' => $release['zips_built'], 'release_confirmations_required' => $release['confirmations_required'], + 'release_revision' => $release['revision'], ), // TODO: what else? Could store the changelog or other content at the point of release for comparison purposes. ) ); @@ -148,6 +149,7 @@ public function update_release( $release_id, $release ) { 'release_committer' => $release['committer'], 'release_zips_built' => $release['zips_built'], 'release_confirmations_required' => $release['confirmations_required'], + 'release_revision' => $release['revision'], ), // TODO: what else? Could store the changelog or other content at the point of release for comparison purposes. ) ); @@ -176,9 +178,20 @@ public function add_or_update_draft_release( $plugin, $release ) { return new \WP_Error( 'invalid_plugin', 'Invalid plugin' ); } - // If a release with this version already exists, don't create a draft. - if ( $this->get_release( $plugin, $release['version'] ) ) { - return new \WP_Error( 'release_exists', 'Release already exists' ); + // If there's already a published release for this plugin, we only create a draft if there are unreleased trunk commits. + $last_release = $this->get_release( $plugin, null ); + if ( $last_release ) { + if ( !empty( $release[ 'revision' ] ) ) { + // Don't create a draft unless the revision number is higher than the last release. + if ( max( $release['revision'] ) <= max( $last_release->release_revision ) ) { + return false; // Not an error, just skip. + } + } else { + // If we don't have revision numbers, use dates. Maybe this should be removed. + if ( strtotime( $release['date'] ) <= strtotime( $last_release->release_date ) ) { + return false; // Not an error, just skip. + } + } } $draft_id = $this->get_release( $plugin, 'trunk' ); From 47142a6545c7ccf292a4c31624192b111af90154 Mon Sep 17 00:00:00 2001 From: tellyworth Date: Tue, 26 Nov 2024 16:25:46 +1100 Subject: [PATCH 24/84] Use `trunk` as the post title for draft posts The tag and version values are both stored in postmeta if needed --- .../plugin-directory/class-plugin-release.php | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/wordpress.org/public_html/wp-content/plugins/plugin-directory/class-plugin-release.php b/wordpress.org/public_html/wp-content/plugins/plugin-directory/class-plugin-release.php index 2f2f2084e7..0082c1b66a 100644 --- a/wordpress.org/public_html/wp-content/plugins/plugin-directory/class-plugin-release.php +++ b/wordpress.org/public_html/wp-content/plugins/plugin-directory/class-plugin-release.php @@ -86,10 +86,11 @@ public function add_release( $plugin, $release ) { } $post_status = ( 'trunk' === $release['tag'] ) ? 'draft' : 'publish'; + $post_title = ( 'trunk' === $release['tag'] ) ? 'trunk' : $release['version']; $release_id = wp_insert_post( array( 'post_type' => 'plugin_release', - 'post_title' => $release['version'], + 'post_title' => $post_title, 'post_name' => $plugin->post_name . '-' . $release['version'], 'post_parent' => $plugin_id, 'post_status' => $post_status, @@ -132,11 +133,12 @@ public function update_release( $release_id, $release ) { } $post_status = ( 'trunk' === $release['tag'] ) ? 'draft' : 'publish'; + $post_title = ( 'trunk' === $release['tag'] ) ? 'trunk' : $release['version']; $release_id = wp_update_post( array( - 'ID' => $release_id, + 'ID' => $release_post->ID, 'post_type' => 'plugin_release', - 'post_title' => $release['version'], + 'post_title' => $post_title, 'post_name' => $parent_plugin->post_name . '-' . $release['version'], 'post_parent' => $parent_plugin->ID, 'post_status' => $post_status, @@ -169,11 +171,6 @@ public function add_or_update_draft_release( $plugin, $release ) { return new \WP_Error( 'invalid_tag', 'Invalid tag' ); } - // Version must be set; we'll only add/update if it doesn't match an existing non-draft release. - if ( empty( $release['version'] ) ) { - return new \WP_Error( 'invalid_version', 'Invalid version' ); - } - if ( !$plugin || 'plugin' !== $plugin->post_type ) { return new \WP_Error( 'invalid_plugin', 'Invalid plugin' ); } From 48586dc36b81703d59a777f7a1bb4649b70f046b Mon Sep 17 00:00:00 2001 From: StevenDufresne Date: Wed, 27 Nov 2024 00:26:06 +0000 Subject: [PATCH 25/84] Get the release draft connected. --- .../blocks/release-check-item/block.json | 27 ++ .../blocks/release-check-item/index.asset.php | 1 + .../build/blocks/release-check-item/index.js | 298 ++++++++++++++++++ .../blocks/release-check-item/render.php | 11 + .../blocks/release-check-item/style-index.css | 22 ++ .../build/blocks/release-checks/render.php | 4 - .../blocks/release-confirmation/render.php | 4 - .../blocks/release-draft-result/block.json | 27 ++ .../release-draft-result/index.asset.php | 1 + .../blocks/release-draft-result/index.js | 298 ++++++++++++++++++ .../blocks/release-draft-result/render.php | 11 + .../release-draft-result/style-index.css | 22 ++ .../build/blocks/release-draft/block.json | 21 ++ .../blocks/release-draft/index.asset.php | 1 + .../build/blocks/release-draft/index.js | 298 ++++++++++++++++++ .../build/blocks/release-draft/render.php | 77 +++++ .../blocks/release-draft/style-index.css | 13 + .../build/blocks/release-flags/block.json | 21 ++ .../blocks/release-flags/index.asset.php | 1 + .../build/blocks/release-flags/index.js | 183 +++++++++++ .../build/blocks/release-flags/render.php | 55 ++++ .../pub/wporg-plugins-2024/functions.php | 3 + .../wporg-plugins-2024/parts/releases.html | 6 +- .../src/blocks/release-check-item/block.json | 27 ++ .../src/blocks/release-check-item/index.js | 28 ++ .../src/blocks/release-check-item/index.php | 22 ++ .../src/blocks/release-check-item/render.php | 11 + .../src/blocks/release-check-item/style.scss | 18 ++ .../src/blocks/release-checks/render.php | 4 - .../blocks/release-confirmation/render.php | 4 - .../src/blocks/release-draft/block.json | 19 ++ .../src/blocks/release-draft/index.js | 28 ++ .../src/blocks/release-draft/index.php | 22 ++ .../src/blocks/release-draft/render.php | 77 +++++ .../src/blocks/release-draft/style.scss | 9 + .../src/blocks/release-flags/block.json | 19 ++ .../src/blocks/release-flags/index.js | 27 ++ .../src/blocks/release-flags/index.php | 22 ++ .../src/blocks/release-flags/render.php | 55 ++++ 39 files changed, 1777 insertions(+), 20 deletions(-) create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-check-item/block.json create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-check-item/index.asset.php create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-check-item/index.js create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-check-item/render.php create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-check-item/style-index.css create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-result/block.json create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-result/index.asset.php create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-result/index.js create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-result/render.php create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-result/style-index.css create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft/block.json create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft/index.asset.php create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft/index.js create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft/render.php create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft/style-index.css create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-flags/block.json create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-flags/index.asset.php create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-flags/index.js create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-flags/render.php create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-check-item/block.json create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-check-item/index.js create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-check-item/index.php create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-check-item/render.php create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-check-item/style.scss create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-draft/block.json create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-draft/index.js create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-draft/index.php create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-draft/render.php create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-draft/style.scss create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-flags/block.json create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-flags/index.js create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-flags/index.php create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-flags/render.php diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-check-item/block.json b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-check-item/block.json new file mode 100644 index 0000000000..97daf1101a --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-check-item/block.json @@ -0,0 +1,27 @@ +{ + "$schema": "https://schemas.wp.org/trunk/block.json", + "apiVersion": 2, + "name": "wporg/release-check-item", + "version": "0.1.0", + "title": "Release Check Item", + "category": "design", + "icon": "", + "description": "A block to display release draft check item.", + "textdomain": "wporg", + "attributes": { + "text": { + "type": "string", + "default": "" + }, + "type": { + "type": "string", + "default": "success" + } + }, + "supports": { + "html": false + }, + "editorScript": "file:./index.js", + "render": "file:./render.php", + "style": "file:./style-index.css" +} \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-check-item/index.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-check-item/index.asset.php new file mode 100644 index 0000000000..81d0177fd0 --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-check-item/index.asset.php @@ -0,0 +1 @@ + array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => '0a4d881342b3ca7e15f3'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-check-item/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-check-item/index.js new file mode 100644 index 0000000000..424bc0668e --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-check-item/index.js @@ -0,0 +1,298 @@ +/******/ (() => { // webpackBootstrap +/******/ "use strict"; +/******/ var __webpack_modules__ = ({ + +/***/ "./src/blocks/release-check-item/index.js": +/*!************************************************!*\ + !*** ./src/blocks/release-check-item/index.js ***! + \************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); +/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/blocks */ "@wordpress/blocks"); +/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/server-side-render */ "@wordpress/server-side-render"); +/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/block-editor */ "@wordpress/block-editor"); +/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__); +/* harmony import */ var _block_json__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./block.json */ "./src/blocks/release-check-item/block.json"); +/* harmony import */ var _style_scss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./style.scss */ "./src/blocks/release-check-item/style.scss"); + +/** + * WordPress dependencies + */ + + + + + +/** + * Internal dependencies + */ + + +function Edit({ + attributes, + name +}) { + return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", { + ...(0,_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__.useBlockProps)() + }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Disabled, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)((_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default()), { + block: name, + attributes: attributes + }))); +} +(0,_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__.registerBlockType)(_block_json__WEBPACK_IMPORTED_MODULE_5__.name, { + edit: Edit, + save: () => null +}); + +/***/ }), + +/***/ "./src/blocks/release-check-item/style.scss": +/*!**************************************************!*\ + !*** ./src/blocks/release-check-item/style.scss ***! + \**************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +// extracted by mini-css-extract-plugin + + +/***/ }), + +/***/ "react": +/*!************************!*\ + !*** external "React" ***! + \************************/ +/***/ ((module) => { + +module.exports = window["React"]; + +/***/ }), + +/***/ "@wordpress/block-editor": +/*!*************************************!*\ + !*** external ["wp","blockEditor"] ***! + \*************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["blockEditor"]; + +/***/ }), + +/***/ "@wordpress/blocks": +/*!********************************!*\ + !*** external ["wp","blocks"] ***! + \********************************/ +/***/ ((module) => { + +module.exports = window["wp"]["blocks"]; + +/***/ }), + +/***/ "@wordpress/components": +/*!************************************!*\ + !*** external ["wp","components"] ***! + \************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["components"]; + +/***/ }), + +/***/ "@wordpress/server-side-render": +/*!******************************************!*\ + !*** external ["wp","serverSideRender"] ***! + \******************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["serverSideRender"]; + +/***/ }), + +/***/ "./src/blocks/release-check-item/block.json": +/*!**************************************************!*\ + !*** ./src/blocks/release-check-item/block.json ***! + \**************************************************/ +/***/ ((module) => { + +module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"wporg/release-check-item","version":"0.1.0","title":"Release Check Item","category":"design","icon":"","description":"A block to display release draft check item.","textdomain":"wporg","attributes":{"text":{"type":"string","default":""},"type":{"type":"string","default":"success"}},"supports":{"html":false},"editorScript":"file:./index.js","render":"file:./render.php","style":"file:./style-index.css"}'); + +/***/ }) + +/******/ }); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ // no module.id needed +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = __webpack_modules__; +/******/ +/************************************************************************/ +/******/ /* webpack/runtime/chunk loaded */ +/******/ (() => { +/******/ var deferred = []; +/******/ __webpack_require__.O = (result, chunkIds, fn, priority) => { +/******/ if(chunkIds) { +/******/ priority = priority || 0; +/******/ for(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1]; +/******/ deferred[i] = [chunkIds, fn, priority]; +/******/ return; +/******/ } +/******/ var notFulfilled = Infinity; +/******/ for (var i = 0; i < deferred.length; i++) { +/******/ var chunkIds = deferred[i][0]; +/******/ var fn = deferred[i][1]; +/******/ var priority = deferred[i][2]; +/******/ var fulfilled = true; +/******/ for (var j = 0; j < chunkIds.length; j++) { +/******/ if ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) { +/******/ chunkIds.splice(j--, 1); +/******/ } else { +/******/ fulfilled = false; +/******/ if(priority < notFulfilled) notFulfilled = priority; +/******/ } +/******/ } +/******/ if(fulfilled) { +/******/ deferred.splice(i--, 1) +/******/ var r = fn(); +/******/ if (r !== undefined) result = r; +/******/ } +/******/ } +/******/ return result; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/compat get default export */ +/******/ (() => { +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = (module) => { +/******/ var getter = module && module.__esModule ? +/******/ () => (module['default']) : +/******/ () => (module); +/******/ __webpack_require__.d(getter, { a: getter }); +/******/ return getter; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/define property getters */ +/******/ (() => { +/******/ // define getter functions for harmony exports +/******/ __webpack_require__.d = (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 */ +/******/ (() => { +/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) +/******/ })(); +/******/ +/******/ /* webpack/runtime/make namespace object */ +/******/ (() => { +/******/ // define __esModule on exports +/******/ __webpack_require__.r = (exports) => { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/jsonp chunk loading */ +/******/ (() => { +/******/ // no baseURI +/******/ +/******/ // object to store loaded and loading chunks +/******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched +/******/ // [resolve, reject, Promise] = chunk loading, 0 = chunk loaded +/******/ var installedChunks = { +/******/ "blocks/release-check-item/index": 0, +/******/ "blocks/release-check-item/style-index": 0 +/******/ }; +/******/ +/******/ // no chunk on demand loading +/******/ +/******/ // no prefetching +/******/ +/******/ // no preloaded +/******/ +/******/ // no HMR +/******/ +/******/ // no HMR manifest +/******/ +/******/ __webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0); +/******/ +/******/ // install a JSONP callback for chunk loading +/******/ var webpackJsonpCallback = (parentChunkLoadingFunction, data) => { +/******/ var chunkIds = data[0]; +/******/ var moreModules = data[1]; +/******/ var runtime = data[2]; +/******/ // add "moreModules" to the modules object, +/******/ // then flag all "chunkIds" as loaded and fire callback +/******/ var moduleId, chunkId, i = 0; +/******/ if(chunkIds.some((id) => (installedChunks[id] !== 0))) { +/******/ for(moduleId in moreModules) { +/******/ if(__webpack_require__.o(moreModules, moduleId)) { +/******/ __webpack_require__.m[moduleId] = moreModules[moduleId]; +/******/ } +/******/ } +/******/ if(runtime) var result = runtime(__webpack_require__); +/******/ } +/******/ if(parentChunkLoadingFunction) parentChunkLoadingFunction(data); +/******/ for(;i < chunkIds.length; i++) { +/******/ chunkId = chunkIds[i]; +/******/ if(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) { +/******/ installedChunks[chunkId][0](); +/******/ } +/******/ installedChunks[chunkId] = 0; +/******/ } +/******/ return __webpack_require__.O(result); +/******/ } +/******/ +/******/ var chunkLoadingGlobal = self["webpackChunkwporg_plugins_2024"] = self["webpackChunkwporg_plugins_2024"] || []; +/******/ chunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0)); +/******/ chunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal)); +/******/ })(); +/******/ +/************************************************************************/ +/******/ +/******/ // startup +/******/ // Load entry module and return exports +/******/ // This entry module depends on other loaded chunks and execution need to be delayed +/******/ var __webpack_exports__ = __webpack_require__.O(undefined, ["blocks/release-check-item/style-index"], () => (__webpack_require__("./src/blocks/release-check-item/index.js"))) +/******/ __webpack_exports__ = __webpack_require__.O(__webpack_exports__); +/******/ +/******/ })() +; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-check-item/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-check-item/render.php new file mode 100644 index 0000000000..e3b058c928 --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-check-item/render.php @@ -0,0 +1,11 @@ +attributes['text'] ) || ! isset( $block->attributes['type'] ) ) { + return; +} + +?> + +
  • > + attributes['text'] ) ?> +
  • \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-check-item/style-index.css b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-check-item/style-index.css new file mode 100644 index 0000000000..bcc237feb4 --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-check-item/style-index.css @@ -0,0 +1,22 @@ +/*!*****************************************************************************************************************************************************************************************************************************************************************!*\ + !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/blocks/release-check-item/style.scss ***! + \*****************************************************************************************************************************************************************************************************************************************************************/ +.wp-block-wporg-release-check-item { + margin: 0 0 var(--wp--preset--spacing--10) 0 !important; + padding-left: var(--wp--preset--spacing--30); + position: relative; +} +.wp-block-wporg-release-check-item:before { + content: ""; + display: flex; + width: 24px; + height: 24px; + position: absolute; + top: 2px; + left: 0; + background-image: url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 fill=%27%23E26F56%27 viewBox=%270 0 24 24%27 width=%2724%27 height=%2724%27 aria-hidden=%27true%27 focusable=%27false%27%3E%3Cpath d=%27M12 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%27%3E%3C/path%3E%3C/svg%3E"); + background-repeat: no-repeat; + background-position: center; +} + +/*# sourceMappingURL=style-index.css.map*/ \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks/render.php index 2dcd900726..c53ef055b3 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks/render.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks/render.php @@ -9,10 +9,6 @@ return; } -if ( 'publish' === get_post_status( $block->context['postId'] ) ) { - return; -} - ?> diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-confirmation/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-confirmation/render.php index b8d0100df8..e3e349a1d7 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-confirmation/render.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-confirmation/render.php @@ -9,10 +9,6 @@ return; } -if( 'publish' === $post->post_status) { - return; -} - $copy = sprintf( 'This release was last updated on %s by %s.', date_i18n( get_option( 'date_format' ) . ' ' . get_option( 'time_format' ), strtotime( $post->post_modified ) ), diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-result/block.json b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-result/block.json new file mode 100644 index 0000000000..7d9d336f3a --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-result/block.json @@ -0,0 +1,27 @@ +{ + "$schema": "https://schemas.wp.org/trunk/block.json", + "apiVersion": 2, + "name": "wporg/release-draft-result", + "version": "0.1.0", + "title": "Release Draft Result", + "category": "design", + "icon": "", + "description": "A block to display release draft result item.", + "textdomain": "wporg", + "attributes": { + "text": { + "type": "string", + "default": "" + }, + "type": { + "type": "string", + "default": "success" + } + }, + "supports": { + "html": false + }, + "editorScript": "file:./index.js", + "render": "file:./render.php", + "style": "file:./style-index.css" +} \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-result/index.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-result/index.asset.php new file mode 100644 index 0000000000..980352550f --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-result/index.asset.php @@ -0,0 +1 @@ + array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => '4cff3a5baca3e641f944'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-result/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-result/index.js new file mode 100644 index 0000000000..11174c0a76 --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-result/index.js @@ -0,0 +1,298 @@ +/******/ (() => { // webpackBootstrap +/******/ "use strict"; +/******/ var __webpack_modules__ = ({ + +/***/ "./src/blocks/release-draft-result/index.js": +/*!**************************************************!*\ + !*** ./src/blocks/release-draft-result/index.js ***! + \**************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); +/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/blocks */ "@wordpress/blocks"); +/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/server-side-render */ "@wordpress/server-side-render"); +/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/block-editor */ "@wordpress/block-editor"); +/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__); +/* harmony import */ var _block_json__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./block.json */ "./src/blocks/release-draft-result/block.json"); +/* harmony import */ var _style_scss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./style.scss */ "./src/blocks/release-draft-result/style.scss"); + +/** + * WordPress dependencies + */ + + + + + +/** + * Internal dependencies + */ + + +function Edit({ + attributes, + name +}) { + return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", { + ...(0,_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__.useBlockProps)() + }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Disabled, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)((_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default()), { + block: name, + attributes: attributes + }))); +} +(0,_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__.registerBlockType)(_block_json__WEBPACK_IMPORTED_MODULE_5__.name, { + edit: Edit, + save: () => null +}); + +/***/ }), + +/***/ "./src/blocks/release-draft-result/style.scss": +/*!****************************************************!*\ + !*** ./src/blocks/release-draft-result/style.scss ***! + \****************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +// extracted by mini-css-extract-plugin + + +/***/ }), + +/***/ "react": +/*!************************!*\ + !*** external "React" ***! + \************************/ +/***/ ((module) => { + +module.exports = window["React"]; + +/***/ }), + +/***/ "@wordpress/block-editor": +/*!*************************************!*\ + !*** external ["wp","blockEditor"] ***! + \*************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["blockEditor"]; + +/***/ }), + +/***/ "@wordpress/blocks": +/*!********************************!*\ + !*** external ["wp","blocks"] ***! + \********************************/ +/***/ ((module) => { + +module.exports = window["wp"]["blocks"]; + +/***/ }), + +/***/ "@wordpress/components": +/*!************************************!*\ + !*** external ["wp","components"] ***! + \************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["components"]; + +/***/ }), + +/***/ "@wordpress/server-side-render": +/*!******************************************!*\ + !*** external ["wp","serverSideRender"] ***! + \******************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["serverSideRender"]; + +/***/ }), + +/***/ "./src/blocks/release-draft-result/block.json": +/*!****************************************************!*\ + !*** ./src/blocks/release-draft-result/block.json ***! + \****************************************************/ +/***/ ((module) => { + +module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"wporg/release-draft-result","version":"0.1.0","title":"Release Draft Result","category":"design","icon":"","description":"A block to display release draft result item.","textdomain":"wporg","attributes":{"text":{"type":"string","default":""},"type":{"type":"string","default":"success"}},"supports":{"html":false},"editorScript":"file:./index.js","render":"file:./render.php","style":"file:./style-index.css"}'); + +/***/ }) + +/******/ }); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ // no module.id needed +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = __webpack_modules__; +/******/ +/************************************************************************/ +/******/ /* webpack/runtime/chunk loaded */ +/******/ (() => { +/******/ var deferred = []; +/******/ __webpack_require__.O = (result, chunkIds, fn, priority) => { +/******/ if(chunkIds) { +/******/ priority = priority || 0; +/******/ for(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1]; +/******/ deferred[i] = [chunkIds, fn, priority]; +/******/ return; +/******/ } +/******/ var notFulfilled = Infinity; +/******/ for (var i = 0; i < deferred.length; i++) { +/******/ var chunkIds = deferred[i][0]; +/******/ var fn = deferred[i][1]; +/******/ var priority = deferred[i][2]; +/******/ var fulfilled = true; +/******/ for (var j = 0; j < chunkIds.length; j++) { +/******/ if ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) { +/******/ chunkIds.splice(j--, 1); +/******/ } else { +/******/ fulfilled = false; +/******/ if(priority < notFulfilled) notFulfilled = priority; +/******/ } +/******/ } +/******/ if(fulfilled) { +/******/ deferred.splice(i--, 1) +/******/ var r = fn(); +/******/ if (r !== undefined) result = r; +/******/ } +/******/ } +/******/ return result; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/compat get default export */ +/******/ (() => { +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = (module) => { +/******/ var getter = module && module.__esModule ? +/******/ () => (module['default']) : +/******/ () => (module); +/******/ __webpack_require__.d(getter, { a: getter }); +/******/ return getter; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/define property getters */ +/******/ (() => { +/******/ // define getter functions for harmony exports +/******/ __webpack_require__.d = (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 */ +/******/ (() => { +/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) +/******/ })(); +/******/ +/******/ /* webpack/runtime/make namespace object */ +/******/ (() => { +/******/ // define __esModule on exports +/******/ __webpack_require__.r = (exports) => { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/jsonp chunk loading */ +/******/ (() => { +/******/ // no baseURI +/******/ +/******/ // object to store loaded and loading chunks +/******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched +/******/ // [resolve, reject, Promise] = chunk loading, 0 = chunk loaded +/******/ var installedChunks = { +/******/ "blocks/release-draft-result/index": 0, +/******/ "blocks/release-draft-result/style-index": 0 +/******/ }; +/******/ +/******/ // no chunk on demand loading +/******/ +/******/ // no prefetching +/******/ +/******/ // no preloaded +/******/ +/******/ // no HMR +/******/ +/******/ // no HMR manifest +/******/ +/******/ __webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0); +/******/ +/******/ // install a JSONP callback for chunk loading +/******/ var webpackJsonpCallback = (parentChunkLoadingFunction, data) => { +/******/ var chunkIds = data[0]; +/******/ var moreModules = data[1]; +/******/ var runtime = data[2]; +/******/ // add "moreModules" to the modules object, +/******/ // then flag all "chunkIds" as loaded and fire callback +/******/ var moduleId, chunkId, i = 0; +/******/ if(chunkIds.some((id) => (installedChunks[id] !== 0))) { +/******/ for(moduleId in moreModules) { +/******/ if(__webpack_require__.o(moreModules, moduleId)) { +/******/ __webpack_require__.m[moduleId] = moreModules[moduleId]; +/******/ } +/******/ } +/******/ if(runtime) var result = runtime(__webpack_require__); +/******/ } +/******/ if(parentChunkLoadingFunction) parentChunkLoadingFunction(data); +/******/ for(;i < chunkIds.length; i++) { +/******/ chunkId = chunkIds[i]; +/******/ if(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) { +/******/ installedChunks[chunkId][0](); +/******/ } +/******/ installedChunks[chunkId] = 0; +/******/ } +/******/ return __webpack_require__.O(result); +/******/ } +/******/ +/******/ var chunkLoadingGlobal = self["webpackChunkwporg_plugins_2024"] = self["webpackChunkwporg_plugins_2024"] || []; +/******/ chunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0)); +/******/ chunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal)); +/******/ })(); +/******/ +/************************************************************************/ +/******/ +/******/ // startup +/******/ // Load entry module and return exports +/******/ // This entry module depends on other loaded chunks and execution need to be delayed +/******/ var __webpack_exports__ = __webpack_require__.O(undefined, ["blocks/release-draft-result/style-index"], () => (__webpack_require__("./src/blocks/release-draft-result/index.js"))) +/******/ __webpack_exports__ = __webpack_require__.O(__webpack_exports__); +/******/ +/******/ })() +; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-result/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-result/render.php new file mode 100644 index 0000000000..e3b058c928 --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-result/render.php @@ -0,0 +1,11 @@ +attributes['text'] ) || ! isset( $block->attributes['type'] ) ) { + return; +} + +?> + +
  • > + attributes['text'] ) ?> +
  • \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-result/style-index.css b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-result/style-index.css new file mode 100644 index 0000000000..fcb6e7a3cb --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-result/style-index.css @@ -0,0 +1,22 @@ +/*!*******************************************************************************************************************************************************************************************************************************************************************!*\ + !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/blocks/release-draft-result/style.scss ***! + \*******************************************************************************************************************************************************************************************************************************************************************/ +.wp-block-wporg-release-draft-result { + margin: 0 0 var(--wp--preset--spacing--10) 0 !important; + padding-left: var(--wp--preset--spacing--30); + position: relative; +} +.wp-block-wporg-release-draft-result:before { + content: ""; + display: flex; + width: 24px; + height: 24px; + position: absolute; + top: 2px; + left: 0; + background-image: url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 fill=%27%23E26F56%27 viewBox=%270 0 24 24%27 width=%2724%27 height=%2724%27 aria-hidden=%27true%27 focusable=%27false%27%3E%3Cpath d=%27M12 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%27%3E%3C/path%3E%3C/svg%3E"); + background-repeat: no-repeat; + background-position: center; +} + +/*# sourceMappingURL=style-index.css.map*/ \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft/block.json b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft/block.json new file mode 100644 index 0000000000..506c98d01a --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft/block.json @@ -0,0 +1,21 @@ +{ + "$schema": "https://schemas.wp.org/trunk/block.json", + "apiVersion": 2, + "name": "wporg/release-draft", + "version": "0.1.0", + "title": "Release Draft", + "category": "design", + "icon": "", + "description": "A block to display release draft.", + "textdomain": "wporg", + "attributes": {}, + "supports": { + "html": false + }, + "usesContext": [ + "postId" + ], + "editorScript": "file:./index.js", + "render": "file:./render.php", + "style": "file:./style-index.css" +} \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft/index.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft/index.asset.php new file mode 100644 index 0000000000..a8b55d998c --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft/index.asset.php @@ -0,0 +1 @@ + array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => '3460be93c524b3be33b1'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft/index.js new file mode 100644 index 0000000000..434270b126 --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft/index.js @@ -0,0 +1,298 @@ +/******/ (() => { // webpackBootstrap +/******/ "use strict"; +/******/ var __webpack_modules__ = ({ + +/***/ "./src/blocks/release-draft/index.js": +/*!*******************************************!*\ + !*** ./src/blocks/release-draft/index.js ***! + \*******************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); +/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/blocks */ "@wordpress/blocks"); +/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/server-side-render */ "@wordpress/server-side-render"); +/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/block-editor */ "@wordpress/block-editor"); +/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__); +/* harmony import */ var _block_json__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./block.json */ "./src/blocks/release-draft/block.json"); +/* harmony import */ var _style_scss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./style.scss */ "./src/blocks/release-draft/style.scss"); + +/** + * WordPress dependencies + */ + + + + + +/** + * Internal dependencies + */ + + +function Edit({ + attributes, + name +}) { + return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", { + ...(0,_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__.useBlockProps)() + }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Disabled, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)((_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default()), { + block: name, + attributes: attributes + }))); +} +(0,_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__.registerBlockType)(_block_json__WEBPACK_IMPORTED_MODULE_5__.name, { + edit: Edit, + save: () => null +}); + +/***/ }), + +/***/ "./src/blocks/release-draft/style.scss": +/*!*********************************************!*\ + !*** ./src/blocks/release-draft/style.scss ***! + \*********************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +// extracted by mini-css-extract-plugin + + +/***/ }), + +/***/ "react": +/*!************************!*\ + !*** external "React" ***! + \************************/ +/***/ ((module) => { + +module.exports = window["React"]; + +/***/ }), + +/***/ "@wordpress/block-editor": +/*!*************************************!*\ + !*** external ["wp","blockEditor"] ***! + \*************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["blockEditor"]; + +/***/ }), + +/***/ "@wordpress/blocks": +/*!********************************!*\ + !*** external ["wp","blocks"] ***! + \********************************/ +/***/ ((module) => { + +module.exports = window["wp"]["blocks"]; + +/***/ }), + +/***/ "@wordpress/components": +/*!************************************!*\ + !*** external ["wp","components"] ***! + \************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["components"]; + +/***/ }), + +/***/ "@wordpress/server-side-render": +/*!******************************************!*\ + !*** external ["wp","serverSideRender"] ***! + \******************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["serverSideRender"]; + +/***/ }), + +/***/ "./src/blocks/release-draft/block.json": +/*!*********************************************!*\ + !*** ./src/blocks/release-draft/block.json ***! + \*********************************************/ +/***/ ((module) => { + +module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"wporg/release-draft","version":"0.1.0","title":"Release Draft","category":"design","icon":"","description":"A block to display release draft.","textdomain":"wporg","attributes":{},"supports":{"html":false},"usesContext":["postId"],"editorScript":"file:./index.js","render":"file:./render.php","style":"file:./style-index.css"}'); + +/***/ }) + +/******/ }); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ // no module.id needed +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = __webpack_modules__; +/******/ +/************************************************************************/ +/******/ /* webpack/runtime/chunk loaded */ +/******/ (() => { +/******/ var deferred = []; +/******/ __webpack_require__.O = (result, chunkIds, fn, priority) => { +/******/ if(chunkIds) { +/******/ priority = priority || 0; +/******/ for(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1]; +/******/ deferred[i] = [chunkIds, fn, priority]; +/******/ return; +/******/ } +/******/ var notFulfilled = Infinity; +/******/ for (var i = 0; i < deferred.length; i++) { +/******/ var chunkIds = deferred[i][0]; +/******/ var fn = deferred[i][1]; +/******/ var priority = deferred[i][2]; +/******/ var fulfilled = true; +/******/ for (var j = 0; j < chunkIds.length; j++) { +/******/ if ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) { +/******/ chunkIds.splice(j--, 1); +/******/ } else { +/******/ fulfilled = false; +/******/ if(priority < notFulfilled) notFulfilled = priority; +/******/ } +/******/ } +/******/ if(fulfilled) { +/******/ deferred.splice(i--, 1) +/******/ var r = fn(); +/******/ if (r !== undefined) result = r; +/******/ } +/******/ } +/******/ return result; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/compat get default export */ +/******/ (() => { +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = (module) => { +/******/ var getter = module && module.__esModule ? +/******/ () => (module['default']) : +/******/ () => (module); +/******/ __webpack_require__.d(getter, { a: getter }); +/******/ return getter; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/define property getters */ +/******/ (() => { +/******/ // define getter functions for harmony exports +/******/ __webpack_require__.d = (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 */ +/******/ (() => { +/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) +/******/ })(); +/******/ +/******/ /* webpack/runtime/make namespace object */ +/******/ (() => { +/******/ // define __esModule on exports +/******/ __webpack_require__.r = (exports) => { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/jsonp chunk loading */ +/******/ (() => { +/******/ // no baseURI +/******/ +/******/ // object to store loaded and loading chunks +/******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched +/******/ // [resolve, reject, Promise] = chunk loading, 0 = chunk loaded +/******/ var installedChunks = { +/******/ "blocks/release-draft/index": 0, +/******/ "blocks/release-draft/style-index": 0 +/******/ }; +/******/ +/******/ // no chunk on demand loading +/******/ +/******/ // no prefetching +/******/ +/******/ // no preloaded +/******/ +/******/ // no HMR +/******/ +/******/ // no HMR manifest +/******/ +/******/ __webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0); +/******/ +/******/ // install a JSONP callback for chunk loading +/******/ var webpackJsonpCallback = (parentChunkLoadingFunction, data) => { +/******/ var chunkIds = data[0]; +/******/ var moreModules = data[1]; +/******/ var runtime = data[2]; +/******/ // add "moreModules" to the modules object, +/******/ // then flag all "chunkIds" as loaded and fire callback +/******/ var moduleId, chunkId, i = 0; +/******/ if(chunkIds.some((id) => (installedChunks[id] !== 0))) { +/******/ for(moduleId in moreModules) { +/******/ if(__webpack_require__.o(moreModules, moduleId)) { +/******/ __webpack_require__.m[moduleId] = moreModules[moduleId]; +/******/ } +/******/ } +/******/ if(runtime) var result = runtime(__webpack_require__); +/******/ } +/******/ if(parentChunkLoadingFunction) parentChunkLoadingFunction(data); +/******/ for(;i < chunkIds.length; i++) { +/******/ chunkId = chunkIds[i]; +/******/ if(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) { +/******/ installedChunks[chunkId][0](); +/******/ } +/******/ installedChunks[chunkId] = 0; +/******/ } +/******/ return __webpack_require__.O(result); +/******/ } +/******/ +/******/ var chunkLoadingGlobal = self["webpackChunkwporg_plugins_2024"] = self["webpackChunkwporg_plugins_2024"] || []; +/******/ chunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0)); +/******/ chunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal)); +/******/ })(); +/******/ +/************************************************************************/ +/******/ +/******/ // startup +/******/ // Load entry module and return exports +/******/ // This entry module depends on other loaded chunks and execution need to be delayed +/******/ var __webpack_exports__ = __webpack_require__.O(undefined, ["blocks/release-draft/style-index"], () => (__webpack_require__("./src/blocks/release-draft/index.js"))) +/******/ __webpack_exports__ = __webpack_require__.O(__webpack_exports__); +/******/ +/******/ })() +; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft/render.php new file mode 100644 index 0000000000..c465552a4d --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft/render.php @@ -0,0 +1,77 @@ +context['postId'] ) { + return; +} + +$post = get_post( $block->context['postId'] ); + +if ( ! $post ) { + return; +} + +// get release for the post +$query_args = [ + 'post_type' => 'plugin_release', + 'posts_per_page' => 1, + 'post_parent' => $post->ID, + 'orderby' => 'date', + 'post_status' => 'draft', + 'order' => 'DESC', +]; + +$latest_draft_query = new WP_Query( $query_args ); + +if ( ! $latest_draft_query->have_posts() ) { + return; +} + +// Fetch the latest draft post. +$latest_draft_query->the_post(); +$post_title = get_the_title(); + +$markup = << +
    + +
    + +
    + + +
    + +

    + $post_title +

    + + +
    + + +
    + +
    + + + + + +
    + +HTML; + +printf( + '
    %2$s
    ', + get_block_wrapper_attributes(), + do_blocks( $markup ) +); + +// Reset global post data. +wp_reset_postdata(); + +?> diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft/style-index.css b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft/style-index.css new file mode 100644 index 0000000000..89f3615b0f --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft/style-index.css @@ -0,0 +1,13 @@ +/*!************************************************************************************************************************************************************************************************************************************************************!*\ + !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/blocks/release-draft/style.scss ***! + \************************************************************************************************************************************************************************************************************************************************************/ +.wp-block-wporg-release-draft { + font-size: var(--wp--preset--font-size--small); +} +.wp-block-wporg-release-draft ul { + margin-top: var(--wp--preset--spacing--10); + padding: 0; + list-style: none; +} + +/*# sourceMappingURL=style-index.css.map*/ \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-flags/block.json b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-flags/block.json new file mode 100644 index 0000000000..8688807e02 --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-flags/block.json @@ -0,0 +1,21 @@ +{ + "$schema": "https://schemas.wp.org/trunk/block.json", + "apiVersion": 2, + "name": "wporg/release-flags", + "version": "0.1.0", + "title": "Release Flags", + "category": "design", + "icon": "", + "description": "A block to display release flags.", + "textdomain": "wporg", + "attributes": {}, + "supports": { + "html": false + }, + "usesContext": [ + "postId" + ], + "editorScript": "file:./index.js", + "render": "file:./render.php", + "style": "file:./style-index.css" +} \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-flags/index.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-flags/index.asset.php new file mode 100644 index 0000000000..eb4ddec36a --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-flags/index.asset.php @@ -0,0 +1 @@ + array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => '990d288e4c52e5e38e55'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-flags/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-flags/index.js new file mode 100644 index 0000000000..4808f9f376 --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-flags/index.js @@ -0,0 +1,183 @@ +/******/ (() => { // webpackBootstrap +/******/ "use strict"; +/******/ var __webpack_modules__ = ({ + +/***/ "react": +/*!************************!*\ + !*** external "React" ***! + \************************/ +/***/ ((module) => { + +module.exports = window["React"]; + +/***/ }), + +/***/ "@wordpress/block-editor": +/*!*************************************!*\ + !*** external ["wp","blockEditor"] ***! + \*************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["blockEditor"]; + +/***/ }), + +/***/ "@wordpress/blocks": +/*!********************************!*\ + !*** external ["wp","blocks"] ***! + \********************************/ +/***/ ((module) => { + +module.exports = window["wp"]["blocks"]; + +/***/ }), + +/***/ "@wordpress/components": +/*!************************************!*\ + !*** external ["wp","components"] ***! + \************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["components"]; + +/***/ }), + +/***/ "@wordpress/server-side-render": +/*!******************************************!*\ + !*** external ["wp","serverSideRender"] ***! + \******************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["serverSideRender"]; + +/***/ }), + +/***/ "./src/blocks/release-flags/block.json": +/*!*********************************************!*\ + !*** ./src/blocks/release-flags/block.json ***! + \*********************************************/ +/***/ ((module) => { + +module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"wporg/release-flags","version":"0.1.0","title":"Release Flags","category":"design","icon":"","description":"A block to display release flags.","textdomain":"wporg","attributes":{},"supports":{"html":false},"usesContext":["postId"],"editorScript":"file:./index.js","render":"file:./render.php","style":"file:./style-index.css"}'); + +/***/ }) + +/******/ }); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ // no module.id needed +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/************************************************************************/ +/******/ /* webpack/runtime/compat get default export */ +/******/ (() => { +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = (module) => { +/******/ var getter = module && module.__esModule ? +/******/ () => (module['default']) : +/******/ () => (module); +/******/ __webpack_require__.d(getter, { a: getter }); +/******/ return getter; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/define property getters */ +/******/ (() => { +/******/ // define getter functions for harmony exports +/******/ __webpack_require__.d = (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 */ +/******/ (() => { +/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) +/******/ })(); +/******/ +/******/ /* webpack/runtime/make namespace object */ +/******/ (() => { +/******/ // define __esModule on exports +/******/ __webpack_require__.r = (exports) => { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ })(); +/******/ +/************************************************************************/ +var __webpack_exports__ = {}; +// This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk. +(() => { +/*!*******************************************!*\ + !*** ./src/blocks/release-flags/index.js ***! + \*******************************************/ +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); +/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/blocks */ "@wordpress/blocks"); +/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/server-side-render */ "@wordpress/server-side-render"); +/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/block-editor */ "@wordpress/block-editor"); +/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__); +/* harmony import */ var _block_json__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./block.json */ "./src/blocks/release-flags/block.json"); + +/** + * WordPress dependencies + */ + + + + + +/** + * Internal dependencies + */ + +function Edit({ + attributes, + name +}) { + return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", { + ...(0,_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__.useBlockProps)() + }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Disabled, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)((_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default()), { + block: name, + attributes: attributes + }))); +} +(0,_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__.registerBlockType)(_block_json__WEBPACK_IMPORTED_MODULE_5__.name, { + edit: Edit, + save: () => null +}); +})(); + +/******/ })() +; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-flags/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-flags/render.php new file mode 100644 index 0000000000..b38e4a5427 --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-flags/render.php @@ -0,0 +1,55 @@ +context['postId'] ) { + return; +} + +$post = get_post( $block->context['postId'] ); + +if ( 'draft' !== $post->post_status ) { + return; +} + +// Warnings are currently associated to the plugin post, not the release post. +$import_warnings = get_post_meta( $post->post_parent, '_import_warnings', true ); + +if ( ! $import_warnings ) { + return; +} + +if ( ! wp_is_numeric_array( $import_warnings ) ) { + // error_code => error_data, convert to error_code => human_readable_error. + foreach ( $import_warnings as $error_code => $error_data ) { + $import_warnings[ $error_code ] = Readme_Validator::instance()->translate_code_to_message( $error_code, $error_data ); + } +} else { + // Back-compat; previously this was an array of numeric-indexed human-readable strings. +} + +$warnings = ''; +foreach ( $import_warnings as $error_code => $error_data ) { + $warnings .= sprintf( + '', + 'error', + $error_data + ); +} + +$heading = sprintf( + ' +

    %s

    + ', + esc_attr__( 'Flags', 'wporg-plugins' ) +); + +printf( '
    %2$s
      %3$s
    ', + get_block_wrapper_attributes(), + do_blocks( $heading ), + do_blocks( $warnings ) +); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/functions.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/functions.php index 016ee124c3..8c10ba2b68 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/functions.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/functions.php @@ -24,6 +24,9 @@ require_once( __DIR__ . '/src/blocks/release-checks/index.php' ); require_once( __DIR__ . '/src/blocks/release-confirmation/index.php' ); require_once( __DIR__ . '/src/blocks/release-date/index.php' ); +require_once( __DIR__ . '/src/blocks/release-draft/index.php' ); +require_once( __DIR__ . '/src/blocks/release-check-item/index.php' ); +require_once( __DIR__ . '/src/blocks/release-flags/index.php' ); require_once( __DIR__ . '/src/blocks/release-menu-options/index.php' ); require_once( __DIR__ . '/src/blocks/release-status/index.php' ); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/parts/releases.html b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/parts/releases.html index d681ed58d1..a27f7828af 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/parts/releases.html +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/parts/releases.html @@ -5,6 +5,8 @@

    Releases

    + +
    @@ -19,18 +21,14 @@

    Releases

    -
    -
    - -
    diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-check-item/block.json b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-check-item/block.json new file mode 100644 index 0000000000..53a9116da8 --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-check-item/block.json @@ -0,0 +1,27 @@ +{ + "$schema": "https://schemas.wp.org/trunk/block.json", + "apiVersion": 2, + "name": "wporg/release-check-item", + "version": "0.1.0", + "title": "Release Check Item", + "category": "design", + "icon": "", + "description": "A block to display release draft check item.", + "textdomain": "wporg", + "attributes": { + "text":{ + "type": "string", + "default": "" + }, + "type":{ + "type": "string", + "default": "success" + } + }, + "supports": { + "html": false + }, + "editorScript": "file:./index.js", + "render": "file:./render.php", + "style": "file:./style-index.css" +} \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-check-item/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-check-item/index.js new file mode 100644 index 0000000000..a52cd322ed --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-check-item/index.js @@ -0,0 +1,28 @@ +/** + * WordPress dependencies + */ +import { Disabled } from '@wordpress/components'; +import { registerBlockType } from '@wordpress/blocks'; +import ServerSideRender from '@wordpress/server-side-render'; +import { useBlockProps } from '@wordpress/block-editor'; + +/** + * Internal dependencies + */ +import metadata from './block.json'; +import './style.scss'; + +function Edit( { attributes, name } ) { + return ( +
    + + + +
    + ); +} + +registerBlockType( metadata.name, { + edit: Edit, + save: () => null, +} ); \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-check-item/index.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-check-item/index.php new file mode 100644 index 0000000000..fec62da587 --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-check-item/index.php @@ -0,0 +1,22 @@ +attributes['text'] ) || ! isset( $block->attributes['type'] ) ) { + return; +} + +?> + +
  • > + attributes['text'] ) ?> +
  • \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-check-item/style.scss b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-check-item/style.scss new file mode 100644 index 0000000000..0460de68c2 --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-check-item/style.scss @@ -0,0 +1,18 @@ +.wp-block-wporg-release-check-item { + margin: 0 0 var(--wp--preset--spacing--10) 0 !important; + padding-left: var(--wp--preset--spacing--30); + position: relative; + + &:before { + content: ''; + display: flex; + width: 24px; + height: 24px; + position: absolute; + top: 2px; + left: 0; + background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23E26F56' viewBox='0 0 24 24' width='24' height='24' aria-hidden='true' focusable='false'%3E%3Cpath 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'%3E%3C/path%3E%3C/svg%3E"); + background-repeat: no-repeat; + background-position: center; + } +} diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-checks/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-checks/render.php index 2dcd900726..c53ef055b3 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-checks/render.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-checks/render.php @@ -9,10 +9,6 @@ return; } -if ( 'publish' === get_post_status( $block->context['postId'] ) ) { - return; -} - ?> diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-confirmation/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-confirmation/render.php index b8d0100df8..e3e349a1d7 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-confirmation/render.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-confirmation/render.php @@ -9,10 +9,6 @@ return; } -if( 'publish' === $post->post_status) { - return; -} - $copy = sprintf( 'This release was last updated on %s by %s.', date_i18n( get_option( 'date_format' ) . ' ' . get_option( 'time_format' ), strtotime( $post->post_modified ) ), diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-draft/block.json b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-draft/block.json new file mode 100644 index 0000000000..07fb67e447 --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-draft/block.json @@ -0,0 +1,19 @@ +{ + "$schema": "https://schemas.wp.org/trunk/block.json", + "apiVersion": 2, + "name": "wporg/release-draft", + "version": "0.1.0", + "title": "Release Draft", + "category": "design", + "icon": "", + "description": "A block to display release draft.", + "textdomain": "wporg", + "attributes": {}, + "supports": { + "html": false + }, + "usesContext": [ "postId" ], + "editorScript": "file:./index.js", + "render": "file:./render.php", + "style": "file:./style-index.css" +} \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-draft/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-draft/index.js new file mode 100644 index 0000000000..a52cd322ed --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-draft/index.js @@ -0,0 +1,28 @@ +/** + * WordPress dependencies + */ +import { Disabled } from '@wordpress/components'; +import { registerBlockType } from '@wordpress/blocks'; +import ServerSideRender from '@wordpress/server-side-render'; +import { useBlockProps } from '@wordpress/block-editor'; + +/** + * Internal dependencies + */ +import metadata from './block.json'; +import './style.scss'; + +function Edit( { attributes, name } ) { + return ( +
    + + + +
    + ); +} + +registerBlockType( metadata.name, { + edit: Edit, + save: () => null, +} ); \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-draft/index.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-draft/index.php new file mode 100644 index 0000000000..21d5bc15ba --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-draft/index.php @@ -0,0 +1,22 @@ +context['postId'] ) { + return; +} + +$post = get_post( $block->context['postId'] ); + +if ( ! $post ) { + return; +} + +// get release for the post +$query_args = [ + 'post_type' => 'plugin_release', + 'posts_per_page' => 1, + 'post_parent' => $post->ID, + 'orderby' => 'date', + 'post_status' => 'draft', + 'order' => 'DESC', +]; + +$latest_draft_query = new WP_Query( $query_args ); + +if ( ! $latest_draft_query->have_posts() ) { + return; +} + +// Fetch the latest draft post. +$latest_draft_query->the_post(); +$post_title = get_the_title(); + +$markup = << +
    + +
    + +
    + + +
    + +

    + $post_title +

    + + +
    + + +
    + +
    + + + + + +
    + +HTML; + +printf( + '
    %2$s
    ', + get_block_wrapper_attributes(), + do_blocks( $markup ) +); + +// Reset global post data. +wp_reset_postdata(); + +?> diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-draft/style.scss b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-draft/style.scss new file mode 100644 index 0000000000..3278402e02 --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-draft/style.scss @@ -0,0 +1,9 @@ +.wp-block-wporg-release-draft { + font-size: var(--wp--preset--font-size--small); + + ul { + margin-top: var(--wp--preset--spacing--10); + padding: 0; + list-style: none; + } +} \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-flags/block.json b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-flags/block.json new file mode 100644 index 0000000000..e65204caa4 --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-flags/block.json @@ -0,0 +1,19 @@ +{ + "$schema": "https://schemas.wp.org/trunk/block.json", + "apiVersion": 2, + "name": "wporg/release-flags", + "version": "0.1.0", + "title": "Release Flags", + "category": "design", + "icon": "", + "description": "A block to display release flags.", + "textdomain": "wporg", + "attributes": {}, + "supports": { + "html": false + }, + "usesContext": [ "postId" ], + "editorScript": "file:./index.js", + "render": "file:./render.php", + "style": "file:./style-index.css" +} \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-flags/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-flags/index.js new file mode 100644 index 0000000000..9e4580b21f --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-flags/index.js @@ -0,0 +1,27 @@ +/** + * WordPress dependencies + */ +import { Disabled } from '@wordpress/components'; +import { registerBlockType } from '@wordpress/blocks'; +import ServerSideRender from '@wordpress/server-side-render'; +import { useBlockProps } from '@wordpress/block-editor'; + +/** + * Internal dependencies + */ +import metadata from './block.json'; + +function Edit( { attributes, name } ) { + return ( +
    + + + +
    + ); +} + +registerBlockType( metadata.name, { + edit: Edit, + save: () => null, +} ); \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-flags/index.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-flags/index.php new file mode 100644 index 0000000000..dc67e8ca0a --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-flags/index.php @@ -0,0 +1,22 @@ +context['postId'] ) { + return; +} + +$post = get_post( $block->context['postId'] ); + +if ( 'draft' !== $post->post_status ) { + return; +} + +// Warnings are currently associated to the plugin post, not the release post. +$import_warnings = get_post_meta( $post->post_parent, '_import_warnings', true ); + +if ( ! $import_warnings ) { + return; +} + +if ( ! wp_is_numeric_array( $import_warnings ) ) { + // error_code => error_data, convert to error_code => human_readable_error. + foreach ( $import_warnings as $error_code => $error_data ) { + $import_warnings[ $error_code ] = Readme_Validator::instance()->translate_code_to_message( $error_code, $error_data ); + } +} else { + // Back-compat; previously this was an array of numeric-indexed human-readable strings. +} + +$warnings = ''; +foreach ( $import_warnings as $error_code => $error_data ) { + $warnings .= sprintf( + '', + 'error', + $error_data + ); +} + +$heading = sprintf( + ' +

    %s

    + ', + esc_attr__( 'Flags', 'wporg-plugins' ) +); + +printf( '
    %2$s
      %3$s
    ', + get_block_wrapper_attributes(), + do_blocks( $heading ), + do_blocks( $warnings ) +); From b44f4d96726efbedc1acd366b965f3fdd39c0f95 Mon Sep 17 00:00:00 2001 From: tellyworth Date: Wed, 27 Nov 2024 15:13:50 +1100 Subject: [PATCH 26/84] Add a Plugin_Check class, and run it during svn import for trunk changes. It might be ok to run it synchronously like this; otherwise I'll move it to an async job. The Plugin_Check class isn't quite complete yet. It's copied from the code in the upload handler shortcode; we should replace that with a call to the class when it's complete. --- .../plugin-directory/class-plugin-check.php | 201 ++++++++++++++++++ .../plugin-directory/cli/class-import.php | 15 +- 2 files changed, 215 insertions(+), 1 deletion(-) create mode 100644 wordpress.org/public_html/wp-content/plugins/plugin-directory/class-plugin-check.php diff --git a/wordpress.org/public_html/wp-content/plugins/plugin-directory/class-plugin-check.php b/wordpress.org/public_html/wp-content/plugins/plugin-directory/class-plugin-check.php new file mode 100644 index 0000000000..554c45cac5 --- /dev/null +++ b/wordpress.org/public_html/wp-content/plugins/plugin-directory/class-plugin-check.php @@ -0,0 +1,201 @@ + true, + 'results' => [], + 'html' => '', + ]; + } + + $result = self::run_checks( $plugin_slug, $plugin_root ); + + self::log_to_slack( $result ); // FIXME: need to pass required info. + + return $result; + } + + /** + * Sends a plugin through Plugin Check. + * @param string $plugin_slug The plugin slug. + * @param string $plugin_root The path to the plugin source. + * + * @return array The results of the plugin check. + */ + public static function run_checks( $plugin_slug, $plugin_root ) { + + // Run plugin check via CLI + $start_time = microtime(1); + exec( + 'export WP_CLI_CONFIG_PATH=' . escapeshellarg( WP_CLI_CONFIG_PATH ) . '; ' . + 'timeout 45 ' . // Timeout after 45s if plugin-check is not done. + WPCLI . ' --url=https://wordpress.org/plugins ' . + 'plugin check ' . + '--error-severity=7 --warning-severity=6 --categories=plugin_repo --format=json ' . + '--slug=' . escapeshellarg( $plugin_slug ) . ' ' . + escapeshellarg( $plugin_root ), + $output, + $return_code + ); + $total_time = round( microtime(1) - $start_time, 1 ); + + /** + * Anything that plugin-check outputs that we want to discard completely. + */ + $is_ignored_code = static function( $code ) { + $ignored_codes = [ + ]; + + return ( + in_array( $code, $ignored_codes, true ) || + // All the Readme parser warnings are duplicated, we'll exclude those. + str_starts_with( $code, 'readme_parser_warnings_' ) + ); + }; + + /* + * Convert the output into an array. + * Format: + * FILE: example.extension + * [{.....}] + * + * FILE: example2.extension + * [{.....}] + */ + $verdict = true; + $results = []; + foreach ( array_chunk( $output, 3 ) as $file_result ) { + if ( ! str_starts_with( $file_result[0], 'FILE:' ) ) { + continue; + } + + $filename = trim( explode( ':' , $file_result[0], 2 )[1] ); + $json = json_decode( $file_result[1], true ); + + foreach ( $json as $record ) { + $record['file'] = $filename; + + if ( $is_ignored_code( $record['code'] ) ) { + continue; + } + + $results[] = $record; + + // Record submission stats. + if ( function_exists( 'bump_stats_extra' ) && 'production' === wp_get_environment_type() ) { + bump_stats_extra( 'plugin-check-' . $record['type'], $record['code'] ); + } + + // Determine if it failed the checks. + if ( $verdict && 'ERROR' === $record['type'] ) { + $verdict = false; + } + } + } + + // Generage the HTML for the Plugin Check output. + $html = sprintf( + '' . __( 'Results of Automated Plugin Scanning: %s', 'wporg-plugins' ) . '', + $verdict ? __( 'Pass', 'wporg-plugins' ) : __( 'Fail', 'wporg-plugins' ) + ); + if ( $results ) { + $html .= '
      '; + // Display errors, and then warnings. + foreach ( [ wp_list_filter( $results, [ 'type' => 'ERROR' ] ), wp_list_filter( $results, [ 'type' => 'ERROR' ], 'NOT' ) ] as $result_set ) { + foreach ( $result_set as $result ) { + $html .= sprintf( + '
    • %s %s: %s
    • ', + esc_html( $result['file'] ), + esc_url( $result['docs'] ?? '' ), + esc_html( $result['type'] . ' ' . $result['code'] ), + esc_html( $result['message'] ) + ); + } + } + $html .= '
    '; + } + $html .= __( 'Note: While the automated plugin scan is based on the Plugin Review Guidelines, it is not a complete review. A successful result from the scan does not guarantee that the plugin will be approved, only that it is sufficient to be reviewed. All submitted plugins are checked manually to ensure they meet security and guideline standards before approval.', 'wporg-plugins' ); + + // Return the results. + return [ + 'verdict' => $verdict, + 'results' => $results, + 'html' => $html, + 'runtime' => $total_time, + ]; + } + + public function log_to_slack( $fixme ) { + + // Copypasta, fix refs + + // If the upload is blocked; log it to slack. + if ( ! $verdict ) { + // Slack dm the logs. + $zip_name = reset( $_FILES )['name']; + $failpass = $verdict ? ':white_check_mark: passed' : ':x: failed'; + if ( $return_code > 1 ) { // TODO: Temporary, as we're always hitting this branch. + $failpass = ' :rotating_light: errored: ' . $return_code; + } + + $plugin_name_slug = $this->plugin['Name'] . ' (' . $this->plugin_slug . ')'; + // If we have a post object, link to it. + if ( $this->plugin_post ) { + $edit_post_link = admin_url( 'post.php?post=' . $this->plugin_post->ID . '&action=edit' ); // Can't use get_edit_post_link() as the user can't edit the post. + $plugin_name_slug = "<{$edit_post_link}|{$plugin_name_slug}>"; + } + + $text = "{$failpass} for {$zip_name}: {$plugin_name_slug} took {$total_time}s\n"; + + // Include a simplified / merged version of the results for review. + $group_by_code = [ 'ERROR' => [], 'WARNING' => [] ]; + foreach ( $results as $result ) { + $group_by_code[ $result['type'] ][ $result['code'] ] ??= []; + $group_by_code[ $result['type'] ][ $result['code'] ][] = $result; + } + foreach ( $group_by_code as $type => $codes ) { + foreach ( $codes as $code_results ) { + $text .= "• *{$type}: {$code_results[0]['code']}*"; + if ( 1 === count( $code_results ) ) { + $text .= ": {$code_results[0]['message']}\n"; + } else { + $text .= "\n"; + foreach ( array_unique( wp_list_pluck( $code_results, 'message' ) ) as $i => $message ) { + $multiplier = count( wp_list_filter( $code_results, [ 'message' => $message ] ) ); + $multiplier = $multiplier > 1 ? " {$multiplier}x" : ''; + + $text .= " {$i}. {$multiplier} {$message}\n"; + } + } + } + } + + notify_slack( PLUGIN_CHECK_LOGS_SLACK_CHANNEL, $text, wp_get_current_user(), true ); + } elseif ( $return_code ) { + // Log plugin-check timing out. + $zip_name = reset( $_FILES )['name']; + $text = ":rotating_light: Error: {$return_code} for {$zip_name}: {$this->plugin['Name']} ({$this->plugin_slug}) took {$total_time}s\n"; + notify_slack( PLUGIN_CHECK_LOGS_SLACK_CHANNEL, $text, wp_get_current_user(), true ); + } + + } +} \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/plugins/plugin-directory/cli/class-import.php b/wordpress.org/public_html/wp-content/plugins/plugin-directory/cli/class-import.php index ab4c7d0cf2..a07fabfaca 100644 --- a/wordpress.org/public_html/wp-content/plugins/plugin-directory/cli/class-import.php +++ b/wordpress.org/public_html/wp-content/plugins/plugin-directory/cli/class-import.php @@ -5,6 +5,7 @@ use WordPressdotorg\Plugin_Directory\Jobs\API_Update_Updater; use WordPressdotorg\Plugin_Directory\Jobs\Tide_Sync; use WordPressdotorg\Plugin_Directory\Block_JSON; +use WordPressdotorg\Plugin_Directory\Plugin_Check; use WordPressdotorg\Plugin_Directory\Plugin_Directory; use WordPressdotorg\Plugin_Directory\Email\Release_Confirmation as Release_Confirmation_Email; use WordPressdotorg\Plugin_Directory\Plugin_Release; @@ -173,7 +174,7 @@ public function import_from_svn( $plugin_slug, $svn_changed_tags = array( 'trunk // Create or update a 'draft' release CPT for trunk changes. // Note that this will only create a new draft if the version doesn't already exist as a release. // TODO: refine this behaviour. (Maybe compare revision numbers?) - $r = Plugin_Release::instance()->add_or_update_draft_release( + $release = Plugin_Release::instance()->add_or_update_draft_release( $plugin, [ 'tag' => 'trunk', @@ -183,6 +184,18 @@ public function import_from_svn( $plugin_slug, $svn_changed_tags = array( 'trunk ] ); + // While we're at it, run plugin check and store the results. + // FIXME: Maybe this belongs in export_and_parse_plugin()? The readme checker is run there. + $plugin_export_dir = $data['tmp_dir'] . '/export'; + if ( $release && ! is_wp_error( $release ) ) { + $plugin_check_result = Plugin_Check::run_checks( $plugin->post_name, $plugin_export_dir ); + #var_dump( $plugin_check_result ); + if ( $plugin_check_result ) { + update_post_meta( $release, 'plugin_check_result', $plugin_check_result ); + } else { + delete_post_meta( $release, 'plugin_check_result' ); + } + } } // Release confirmation From 9737eb4fe5e704cd6216de0450f3d3127fdfd718 Mon Sep 17 00:00:00 2001 From: StevenDufresne Date: Wed, 27 Nov 2024 04:57:09 +0000 Subject: [PATCH 27/84] Update confirmation control. --- .../blocks/release-confirmation/render.php | 17 ++-- .../build/blocks/release-draft/render.php | 4 +- .../blocks/release-menu-options/render.php | 43 ++-------- .../pub/wporg-plugins-2024/functions.php | 82 ++++++++++++++++++- .../blocks/release-confirmation/render.php | 17 ++-- .../src/blocks/release-draft/render.php | 4 +- .../blocks/release-menu-options/render.php | 43 ++-------- 7 files changed, 120 insertions(+), 90 deletions(-) diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-confirmation/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-confirmation/render.php index e3e349a1d7..0d7f61bcfa 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-confirmation/render.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-confirmation/render.php @@ -1,18 +1,23 @@ context['postId'] ) { return; } -$post = get_post( $block->context['postId'] ); -if ( ! $post ) { +$release_post = get_post( $block->context['postId'] ); +if ( ! $release_post ) { return; } +$releases = get_releases( $release_post->post_parent ); +$previous_version = get_previous_version( $release_post, $releases ); + $copy = sprintf( - 'This release was last updated on %s by %s.', - date_i18n( get_option( 'date_format' ) . ' ' . get_option( 'time_format' ), strtotime( $post->post_modified ) ), - get_the_author_meta( 'display_name', $post->post_author ) + /* translators: %s: URL to the changeset */ + __( 'You have some unpublished changes. Would you like to release these changes?', 'wporg-plugins'), + get_trac_changeset_link( $release_post->post_parent, $previous_version ) ); ?> @@ -25,7 +30,7 @@ -

    +

    diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft/render.php index c465552a4d..88606aaf58 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft/render.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft/render.php @@ -32,7 +32,7 @@ // Fetch the latest draft post. $latest_draft_query->the_post(); -$post_title = get_the_title(); +$post_title = __( 'Trunk', 'wporg-plugins' ); $markup = << @@ -73,5 +73,3 @@ // Reset global post data. wp_reset_postdata(); - -?> diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-menu-options/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-menu-options/render.php index 4fde8408a5..c46a09738a 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-menu-options/render.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-menu-options/render.php @@ -1,38 +1,18 @@ context['postId'] ) { return; } -$post = get_post( $block->context['postId'] ); -if ( ! $post ) { +$release_post = get_post( $block->context['postId'] ); +if ( ! $release_post ) { return; } -$args = array( - 'post_type' => 'plugin_release', - 'posts_per_page' => -1, - 'post_parent' => $post->post_parent, - 'orderby' => 'date', - 'order' => 'DESC', -); - -$releases = get_posts( $args ); - -$current_version = get_post_meta( $post->ID, 'release_version', true ); -$previous_version = null; - -foreach ( $releases as $key => $release ) { - if ( $release->ID === $post->ID ) { - if ( isset( $releases[ $key + 1 ] ) ) { - $previous_version = get_post_meta( $releases[ $key + 1 ]->ID, 'release_version', true ); - } - break; - } -} - +$current_version = get_post_meta( $release_post->ID, 'release_version', true ); /** * Blueprint is base64 encoded to be passed as a URL parameter. @@ -46,7 +26,7 @@ 'step' => 'installPlugin', 'pluginData' => [ 'resource' => 'url', - 'url' => Template::download_link( $post->post_parent, $current_version ) + 'url' => Template::download_link( $release_post->post_parent, $current_version ) ] ] ] @@ -67,21 +47,14 @@ ); $changes_link = ''; +$releases = get_releases( $release_post->post_parent ); +$previous_version = get_previous_version( $release_post, $releases ); if ( null !== $previous_version ) { - $plugin = get_post( $post->post_parent ); - $changes_link = sprintf( '', esc_html( 'View changes', 'wporg-plugins' ), - esc_url( - sprintf( - 'https://plugins.trac.wordpress.org/changeset?old_path=/%1$s/tags/%2$s&new_path=/%1$s/tags/%3$s', - $plugin->post_name, - $current_version, - $previous_version - ) - ) + esc_url( get_trac_changeset_link( $release_post->post_parent, $previous_version, $current_version ) ) ); } diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/functions.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/functions.php index 8c10ba2b68..5975a7e612 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/functions.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/functions.php @@ -12,6 +12,11 @@ use WordPressdotorg\Plugin_Directory\Plugin_Directory; use WordPressdotorg\Plugin_Directory\Template; +/** + * Custom template tags for this theme. + */ +require get_stylesheet_directory() . '/inc/template-tags.php'; + // Block Files require_once( __DIR__ . '/src/blocks/archive-page/index.php' ); @@ -442,6 +447,79 @@ function update_archive_description( $description ) { add_filter( 'get_the_archive_description', __NAMESPACE__ . '\update_archive_description' ); /** - * Custom template tags for this theme. + * Generates a Trac changeset link for a plugin. + * + * @param string $parent_id The plugin ID. + * @param string $previous_version The previous version of the plugin. + * @param string $current_version The current version of the plugin. Default is 'trunk'. + * + * @return string The Trac changeset link. */ -require get_stylesheet_directory() . '/inc/template-tags.php'; +function get_trac_changeset_link( $parent_id, $previous_version, $current_version = 'trunk' ) { + $plugin = get_post( $parent_id); + + if ( ! $plugin ) { + return ''; + } + + $current_path = ( 'trunk' === $current_version ) + ? 'trunk' + : 'tags/' . $current_version; + + return sprintf( + 'https://plugins.trac.wordpress.org/changeset?old_path=/%1$s/%2$s&new_path=/%1$s/tags/%3$s', + $plugin->post_name, + $current_path, + $previous_version + ); +} + +/** + * Get the releases for a plugin. + * + * @param WP_Post $parent_id The release post. + * + * @return WP_Post[] The releases for the plugin. + */ +function get_releases( $parent_id ) { + $args = array( + 'post_type' => 'plugin_release', + 'posts_per_page' => -1, + 'post_parent' => $parent_id, + 'orderby' => 'date', + 'order' => 'DESC', + ); + + return get_posts( $args ); +} + +/** + * Get the previous version of a plugin. + * + * @param WP_Post $release_post The current release post. + * @param WP_Post[] $release List of releases. + * + * @return string|null The previous version of the plugin. + */ +function get_previous_version( $release_post, $releases ) { + $previous_version = null; + + if ( empty( $releases ) ) { + return $previous_version; + } + + if( 'draft' === $release_post->post_status ) { + return get_post_meta( $releases[0]->ID, 'release_version', true ); + } + + foreach ( $releases as $key => $release ) { + if ( $release->ID === $release_post->ID ) { + if ( isset( $releases[ $key + 1 ] ) ) { + return get_post_meta( $releases[ $key + 1 ]->ID, 'release_version', true ); + } + break; + } + } + + return $previous_version; +} diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-confirmation/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-confirmation/render.php index e3e349a1d7..0d7f61bcfa 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-confirmation/render.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-confirmation/render.php @@ -1,18 +1,23 @@ context['postId'] ) { return; } -$post = get_post( $block->context['postId'] ); -if ( ! $post ) { +$release_post = get_post( $block->context['postId'] ); +if ( ! $release_post ) { return; } +$releases = get_releases( $release_post->post_parent ); +$previous_version = get_previous_version( $release_post, $releases ); + $copy = sprintf( - 'This release was last updated on %s by %s.', - date_i18n( get_option( 'date_format' ) . ' ' . get_option( 'time_format' ), strtotime( $post->post_modified ) ), - get_the_author_meta( 'display_name', $post->post_author ) + /* translators: %s: URL to the changeset */ + __( 'You have some unpublished changes. Would you like to release these changes?', 'wporg-plugins'), + get_trac_changeset_link( $release_post->post_parent, $previous_version ) ); ?> @@ -25,7 +30,7 @@ -

    +

    diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-draft/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-draft/render.php index c465552a4d..88606aaf58 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-draft/render.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-draft/render.php @@ -32,7 +32,7 @@ // Fetch the latest draft post. $latest_draft_query->the_post(); -$post_title = get_the_title(); +$post_title = __( 'Trunk', 'wporg-plugins' ); $markup = << @@ -73,5 +73,3 @@ // Reset global post data. wp_reset_postdata(); - -?> diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-menu-options/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-menu-options/render.php index 4fde8408a5..c46a09738a 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-menu-options/render.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-menu-options/render.php @@ -1,38 +1,18 @@ context['postId'] ) { return; } -$post = get_post( $block->context['postId'] ); -if ( ! $post ) { +$release_post = get_post( $block->context['postId'] ); +if ( ! $release_post ) { return; } -$args = array( - 'post_type' => 'plugin_release', - 'posts_per_page' => -1, - 'post_parent' => $post->post_parent, - 'orderby' => 'date', - 'order' => 'DESC', -); - -$releases = get_posts( $args ); - -$current_version = get_post_meta( $post->ID, 'release_version', true ); -$previous_version = null; - -foreach ( $releases as $key => $release ) { - if ( $release->ID === $post->ID ) { - if ( isset( $releases[ $key + 1 ] ) ) { - $previous_version = get_post_meta( $releases[ $key + 1 ]->ID, 'release_version', true ); - } - break; - } -} - +$current_version = get_post_meta( $release_post->ID, 'release_version', true ); /** * Blueprint is base64 encoded to be passed as a URL parameter. @@ -46,7 +26,7 @@ 'step' => 'installPlugin', 'pluginData' => [ 'resource' => 'url', - 'url' => Template::download_link( $post->post_parent, $current_version ) + 'url' => Template::download_link( $release_post->post_parent, $current_version ) ] ] ] @@ -67,21 +47,14 @@ ); $changes_link = ''; +$releases = get_releases( $release_post->post_parent ); +$previous_version = get_previous_version( $release_post, $releases ); if ( null !== $previous_version ) { - $plugin = get_post( $post->post_parent ); - $changes_link = sprintf( '', esc_html( 'View changes', 'wporg-plugins' ), - esc_url( - sprintf( - 'https://plugins.trac.wordpress.org/changeset?old_path=/%1$s/tags/%2$s&new_path=/%1$s/tags/%3$s', - $plugin->post_name, - $current_version, - $previous_version - ) - ) + esc_url( get_trac_changeset_link( $release_post->post_parent, $previous_version, $current_version ) ) ); } From baff92806369d13f86f3e5866841ab231685e35d Mon Sep 17 00:00:00 2001 From: tellyworth Date: Thu, 28 Nov 2024 09:52:48 +1100 Subject: [PATCH 28/84] Fix bug in get_releases() Turns out WP_Query uses `title` rather than `post_title` as a query param. --- .../plugins/plugin-directory/class-plugin-release.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/wordpress.org/public_html/wp-content/plugins/plugin-directory/class-plugin-release.php b/wordpress.org/public_html/wp-content/plugins/plugin-directory/class-plugin-release.php index 0082c1b66a..d1bdc96c2a 100644 --- a/wordpress.org/public_html/wp-content/plugins/plugin-directory/class-plugin-release.php +++ b/wordpress.org/public_html/wp-content/plugins/plugin-directory/class-plugin-release.php @@ -292,7 +292,7 @@ public function get_release( $plugin, $version ) { 'post_type' => 'plugin_release', 'posts_per_page' => 1, 'post_parent' => $plugin_id, - 'post_title' => $version, + 'title' => $version, 'post_status' => $post_status, 'orderby' => 'date', 'order' => 'DESC', From 301c20c9ea887d22ec895ee81053d601179b94dc Mon Sep 17 00:00:00 2001 From: tellyworth Date: Thu, 28 Nov 2024 12:02:10 +1100 Subject: [PATCH 29/84] Add code to publish a release from a draft, and create the svn tag --- .../plugin-directory/class-plugin-release.php | 67 +++++++++++++++++++ .../plugin-directory/tools/class-svn.php | 55 +++++++++++++++ 2 files changed, 122 insertions(+) diff --git a/wordpress.org/public_html/wp-content/plugins/plugin-directory/class-plugin-release.php b/wordpress.org/public_html/wp-content/plugins/plugin-directory/class-plugin-release.php index d1bdc96c2a..cc17b933d8 100644 --- a/wordpress.org/public_html/wp-content/plugins/plugin-directory/class-plugin-release.php +++ b/wordpress.org/public_html/wp-content/plugins/plugin-directory/class-plugin-release.php @@ -1,6 +1,8 @@ get_release( $plugin, 'trunk' ); + if ( ! $draft ) { + return new \WP_Error( 'no_draft', 'No draft release found' ); + } + + $new_tag = $draft->release_version; + if ( $this->get_release( $plugin, $new_tag ) ) { + return new \WP_Error( 'tag_exists', 'Tag already exists', $new_tag ); + } + + if ( !$draft->plugin_check_result || ! $draft->plugin_check_result['verdict'] ) { + return new \WP_Error( 'plugin_check_failed', 'Plugin check failed' ); + } + + // TODO: Should import warnings exist on the release CPT? + if ( $plugin->_import_warnings ) { + // These warnings are likely (always?) present because the tag hasn't been created yet. + $ignored_warnings = [ + 'stable_tag_invalid_trunk_fallback' => 1, + 'stable_tag_invalid' => 1, + ]; + // Stop here if other warnings are present. + if ( array_diff_key( $plugin->_import_warnings, $ignored_warnings ) ) { + return new \WP_Error( 'import_warnings', 'Import warnings', $plugin->_import_warnings ); + } + } + + // TODO: What sanitizing or cross-checking do we need here? + $trunk_url = 'https://plugins.svn.wordpress.org/' . $plugin->post_name . '/trunk'; + $tag_url = 'https://plugins.svn.wordpress.org/' . $plugin->post_name . '/tags/' . $new_tag; + + // TODO: Decide if we're committing this as a specific user. Also any other options needed. + // Note that since this is a url-to-url copy, the commit happens immediately. + $svn_options = [ + 'message' => 'Tagging ' . $new_tag . ' from trunk@' . reset( $draft->release_revision ), // Commit message. i18n? + ]; + $tag_result = SVN::copy( $trunk_url, $tag_url, $svn_options ); + + if ( !$tag_result || ! $tag_result['result'] ) { + return new \WP_Error( 'svn_error', 'SVN error', $tag_result['errors'] ); + } + + $release_id = wp_update_post( array( + 'ID' => $draft->ID, + 'post_status' => 'publish', + 'post_title' => $new_tag, + 'meta_input' => array( + 'release_tag_revision' => $tag_result['revision'], // Do we need this? + ), + ) ); + + return $release_id; + } + } \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/plugins/plugin-directory/tools/class-svn.php b/wordpress.org/public_html/wp-content/plugins/plugin-directory/tools/class-svn.php index 0178ed857b..2a5dde9d85 100644 --- a/wordpress.org/public_html/wp-content/plugins/plugin-directory/tools/class-svn.php +++ b/wordpress.org/public_html/wp-content/plugins/plugin-directory/tools/class-svn.php @@ -428,6 +428,61 @@ public static function log( $url, $revision = 'HEAD', $options = array() ) { return compact( 'log', 'errors' ); } + /** + * Copy a SVN path (or url). + * + * @static + * + * @param string $from The path of the SVN folder to rename. May be a URL. + * @param string $to The new path of the SVN folder. May be a URL. + * @param array $options Optional. A list of options to pass to SVN. Default: empty array. + * @return array { + * @type bool $result The result of the operation. + * @type int $revision The revision. + * @type false|array $errors Whether any errors or warnings were encountered. + * } + */ + public static function copy( $from, $to, $options = array() ) { + // TODO: consider refactoring this with rename, since the code is almost identical. + $options[] = 'non-interactive'; + $is_url = ( preg_match( '#https?://#i', $from ) && preg_match( '#https?://#i', $to ) ); + + if ( $is_url ) { + // Set the message if not provided. + if ( ! isset( $options['message'] ) && ! isset( $options['m'] ) ) { + $options['message'] = sprintf( "Copy %s to %s.", basename( $from ), basename( $to ) ); + } + + if ( empty( $options['username'] ) ) { + $options['username'] = PLUGIN_SVN_MANAGEMENT_USER; + $options['password'] = PLUGIN_SVN_MANAGEMENT_PASS; + } + } + + $esc_options = self::parse_esc_parameters( $options ); + + $esc_from = escapeshellarg( $from ); + $esc_to = escapeshellarg( $to ); + + $output = self::shell_exec( "svn cp $esc_from $esc_to $esc_options 2>&1" ); + if ( $is_url && preg_match( '/Committed revision (?P\d+)[.]/i', $output, $m ) ) { + $revision = (int) $m['revision']; + $result = true; + $errors = false; + } else { + $errors = self::parse_svn_errors( $output ); + $revision = false; + + if ( $is_url || $errors ) { + $result = false; + } else { + $result = true; + } + } + + return compact( 'result', 'revision', 'errors' ); + } + /** * Rename a SVN path (or url). * From 00657b93d7022283e556c9cd4d54e207907125fc Mon Sep 17 00:00:00 2001 From: tellyworth Date: Thu, 28 Nov 2024 12:02:38 +1100 Subject: [PATCH 30/84] Add a `--publish` option to the update-release-cpt script --- .../plugin-directory/bin/update-release-cpt.php | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/wordpress.org/public_html/wp-content/plugins/plugin-directory/bin/update-release-cpt.php b/wordpress.org/public_html/wp-content/plugins/plugin-directory/bin/update-release-cpt.php index af1e6c1808..09a700e68d 100644 --- a/wordpress.org/public_html/wp-content/plugins/plugin-directory/bin/update-release-cpt.php +++ b/wordpress.org/public_html/wp-content/plugins/plugin-directory/bin/update-release-cpt.php @@ -13,7 +13,7 @@ ob_start(); -$opts = getopt( '', array( 'url:', 'abspath:', 'plugin:', 'changed-tags:', 'async', 'create' ) ); +$opts = getopt( '', array( 'url:', 'abspath:', 'plugin:', 'changed-tags:', 'async', 'publish' ) ); // Guess the default parameters: if ( empty( $opts ) && $argc == 2 ) { @@ -34,7 +34,7 @@ } $opts['async'] = isset( $opts['async'] ); -$opts['create'] = isset( $opts['create'] ); +$opts['publish'] = isset( $opts['publish'] ); foreach ( array( 'url', 'abspath', 'plugin' ) as $opt ) { if ( empty( $opts[ $opt ] ) ) { @@ -84,3 +84,12 @@ } echo "Updated " . number_format( $updated ) . " releases for $plugin_slug\n"; +if ( $opts['publish'] ) { + $published = Plugin_Release::instance()->publish_release( $plugin ); + if ( is_wp_error( $published ) ) { + fwrite( STDERR, "Failed to publish releases for $plugin_slug: " . $published->get_error_message() . "\n" ); + die(); + } + echo "Published release post ID = " . $published . "\n"; +} + From 0ce7e11ef38a4ea8d5060c9c5f6697528ad5e873 Mon Sep 17 00:00:00 2001 From: StevenDufresne Date: Thu, 28 Nov 2024 01:11:49 +0000 Subject: [PATCH 31/84] Start working on release check blocks --- taq | 797 ++++++++++++++++++ .../blocks/release-check-item/block.json | 14 +- .../blocks/release-check-item/index.asset.php | 2 +- .../build/blocks/release-check-item/index.js | 2 +- .../blocks/release-check-item/render.php | 32 +- .../blocks/release-check-item/style-index.css | 20 +- .../build/blocks/release-checks/render.php | 48 +- .../blocks/release-draft-result/block.json | 27 - .../release-draft-result/index.asset.php | 1 - .../blocks/release-draft-result/index.js | 298 ------- .../blocks/release-draft-result/render.php | 11 - .../release-draft-result/style-index.css | 22 - .../build/blocks/release-flags/render.php | 4 +- .../src/blocks/release-check-item/block.json | 10 +- .../src/blocks/release-check-item/render.php | 32 +- .../src/blocks/release-check-item/style.scss | 23 +- .../src/blocks/release-checks/render.php | 48 +- .../src/blocks/release-flags/render.php | 4 +- 18 files changed, 978 insertions(+), 417 deletions(-) create mode 100644 taq delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-result/block.json delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-result/index.asset.php delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-result/index.js delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-result/render.php delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-result/style-index.css diff --git a/taq b/taq new file mode 100644 index 0000000000..b2ed4201fe --- /dev/null +++ b/taq @@ -0,0 +1,797 @@ +diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-check-item/block.json b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-check-item/block.json +index 97daf1101..3177702aa 100644 +--- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-check-item/block.json ++++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-check-item/block.json +@@ -9,13 +9,17 @@ + "description": "A block to display release draft check item.", + "textdomain": "wporg", + "attributes": { +- "text": { +- "type": "string", +- "default": "" +- }, +- "type": { ++ "status": { + "type": "string", ++ "enum": [ ++ "error", ++ "warning", ++ "success" ++ ], + "default": "success" ++ }, ++ "text": { ++ "type": "string" + } + }, + "supports": { +diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-check-item/index.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-check-item/index.asset.php +index 81d0177fd..516638222 100644 +--- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-check-item/index.asset.php ++++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-check-item/index.asset.php +@@ -1 +1 @@ +- array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => '0a4d881342b3ca7e15f3'); ++ array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => '0cc3c274766792eb7ff7'); +diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-check-item/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-check-item/index.js +index 424bc0668..e752b9f1d 100644 +--- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-check-item/index.js ++++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-check-item/index.js +@@ -121,7 +121,7 @@ module.exports = window["wp"]["serverSideRender"]; + \**************************************************/ + /***/ ((module) => { +  +-module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"wporg/release-check-item","version":"0.1.0","title":"Release Check Item","category":"design","icon":"","description":"A block to display release draft check item.","textdomain":"wporg","attributes":{"text":{"type":"string","default":""},"type":{"type":"string","default":"success"}},"supports":{"html":false},"editorScript":"file:./index.js","render":"file:./render.php","style":"file:./style-index.css"}'); ++module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"wporg/release-check-item","version":"0.1.0","title":"Release Check Item","category":"design","icon":"","description":"A block to display release draft check item.","textdomain":"wporg","attributes":{"status":{"type":"string","enum":["error","warning","success"],"default":"success"},"text":{"type":"string"}},"supports":{"html":false},"editorScript":"file:./index.js","render":"file:./render.php","style":"file:./style-index.css"}'); +  + /***/ }) +  +diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-check-item/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-check-item/render.php +index e3b058c92..3e3b63b98 100644 +--- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-check-item/render.php ++++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-check-item/render.php +@@ -1,11 +1,33 @@ + attributes['text'] ) || ! isset( $block->attributes['type'] ) ) { +- return; ++$wrapper_attributes = get_block_wrapper_attributes( ++ [ ++ 'class' => $block->attributes['status'], ++ ] ++); ++ ++ ++// $copy = ''; ++ ++if ( ! empty( $block->inner_html ) ) { ++ var_dump( $block->inner_html ); + } +  + ?> +  +-
  • > +- attributes['text'] ) ?> +-
  •  +\ No newline at end of file ++
  • > ++ 
     ++  ++ attributes['status'] ) : ?> ++  ++ attributes['status'] ) : ?>  ++  ++  ++  ++ 
     ++ ++
  •  +diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-check-item/style-index.css b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-check-item/style-index.css +index bcc237feb..8698abe05 100644 +--- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-check-item/style-index.css ++++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-check-item/style-index.css +@@ -2,21 +2,29 @@ + !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/blocks/release-check-item/style.scss ***! + \*****************************************************************************************************************************************************************************************************************************************************************/ + .wp-block-wporg-release-check-item { +- margin: 0 0 var(--wp--preset--spacing--10) 0 !important; +- padding-left: var(--wp--preset--spacing--30); ++ margin: 0 0 var(--wp--preset--spacing--10) var(--wp--preset--spacing--10) !important; + position: relative; + } +-.wp-block-wporg-release-check-item:before { ++.wp-block-wporg-release-check-item summary { ++ display: flex; ++ cursor: default; ++} ++.wp-block-wporg-release-check-item summary:before { + content: ""; + display: flex; + width: 24px; + height: 24px; +- position: absolute; +- top: 2px; + left: 0; +- background-image: url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 fill=%27%23E26F56%27 viewBox=%270 0 24 24%27 width=%2724%27 height=%2724%27 aria-hidden=%27true%27 focusable=%27false%27%3E%3Cpath d=%27M12 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%27%3E%3C/path%3E%3C/svg%3E"); + background-repeat: no-repeat; + background-position: center; ++ background-image: url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 24 24%27 width=%2724%27 height=%2724%27 aria-hidden=%27true%27 focusable=%27false%27%3E%3Cpath d=%27M10.6 6L9.4 7l4.6 5-4.6 5 1.2 1 5.4-6z%27%3E%3C/path%3E%3C/svg%3E"); ++} ++.wp-block-wporg-release-check-item[open] summary:before { ++ background-image: url("data:image/svg+xml,%3Csvg viewBox=%270 0 24 24%27 xmlns=%27http://www.w3.org/2000/svg%27 width=%2724%27 height=%2724%27 aria-hidden=%27true%27 focusable=%27false%27%3E%3Cpath d=%27M17.5 11.6L12 16l-5.5-4.4.9-1.2L12 14l4.5-3.6 1 1.2z%27%3E%3C/path%3E%3C/svg%3E"); ++} ++.wp-block-wporg-release-check-item summary::marker { ++ display: none; ++ content: ""; + } +  + /*# sourceMappingURL=style-index.css.map*/ +\ No newline at end of file +diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks/render.php +index c53ef055b..29b7d49f0 100644 +--- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks/render.php ++++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks/render.php +@@ -4,18 +4,46 @@ if ( ! current_user_can( 'plugin_admin_edit', $post ) ) { + return; + } +  +-$current_post_id = $block->context['postId']; +-if ( ! $current_post_id ) { ++if ( ! $block->context['postId'] ) { + return; + } +  +-?> ++$release_post = get_post( $block->context['postId'] ); +  +- +-

     +- ++$plugin_check_errors = get_post_meta( $release_post->ID, 'plugin_check_result', true ); +  +-
       +-
    • First Item
    •  +-
    • Second Item
    •  +-
     ++echo do_blocks(  ++ sprintf( ++ ' ++

    %s

     ++ ', ++ __( 'Checks', 'wporg-plugins' ) ++ ) ++); ++ ++if ( empty( $plugin_check_errors ) ) { ++ printf( ++ '

    %s

    ', ++ __( 'No checks were run.', 'wporg-plugins' ) ++ ); ++} ++ ++ ++echo '
      '; ++ ++ ++$blocks = sprintf( ++ '%2$s', ++ esc_attr( 'error' ), ++ sprintf( ++ /* translators: %1$s is a link to the Plugin Check (PCP) tool, %2$s is a "See details" link. */ ++ __('%1$s detected some issues.', 'wporg-plugins'), ++ 'ok' .  ++ esc_html__( 'Plugin Check (PCP)', 'wporg-plugins' ) .  ++ '' ++ ) ++); ++ ++echo do_blocks( $blocks ); ++ ++echo '
    '; +diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-result/block.json b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-result/block.json +deleted file mode 100644 +index 7d9d336f3..000000000 +--- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-result/block.json ++++ /dev/null +@@ -1,27 +0,0 @@ +-{ +- "$schema": "https://schemas.wp.org/trunk/block.json", +- "apiVersion": 2, +- "name": "wporg/release-draft-result", +- "version": "0.1.0", +- "title": "Release Draft Result", +- "category": "design", +- "icon": "", +- "description": "A block to display release draft result item.", +- "textdomain": "wporg", +- "attributes": { +- "text": { +- "type": "string", +- "default": "" +- }, +- "type": { +- "type": "string", +- "default": "success" +- } +- }, +- "supports": { +- "html": false +- }, +- "editorScript": "file:./index.js", +- "render": "file:./render.php", +- "style": "file:./style-index.css" +-} +\ No newline at end of file +diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-result/index.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-result/index.asset.php +deleted file mode 100644 +index 980352550..000000000 +--- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-result/index.asset.php ++++ /dev/null +@@ -1 +0,0 @@ +- array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => '4cff3a5baca3e641f944'); +diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-result/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-result/index.js +deleted file mode 100644 +index 11174c0a7..000000000 +--- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-result/index.js ++++ /dev/null +@@ -1,298 +0,0 @@ +-/******/ (() => { // webpackBootstrap +-/******/ "use strict"; +-/******/ var __webpack_modules__ = ({ +- +-/***/ "./src/blocks/release-draft-result/index.js": +-/*!**************************************************!*\ +- !*** ./src/blocks/release-draft-result/index.js ***! +- \**************************************************/ +-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { +- +-__webpack_require__.r(__webpack_exports__); +-/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); +-/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); +-/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); +-/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__); +-/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/blocks */ "@wordpress/blocks"); +-/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__); +-/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/server-side-render */ "@wordpress/server-side-render"); +-/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__); +-/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/block-editor */ "@wordpress/block-editor"); +-/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__); +-/* harmony import */ var _block_json__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./block.json */ "./src/blocks/release-draft-result/block.json"); +-/* harmony import */ var _style_scss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./style.scss */ "./src/blocks/release-draft-result/style.scss"); +- +-/** +- * WordPress dependencies +- */ +- +- +- +- +- +-/** +- * Internal dependencies +- */ +- +- +-function Edit({ +- attributes, +- name +-}) { +- return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", { +- ...(0,_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__.useBlockProps)() +- }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Disabled, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)((_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default()), { +- block: name, +- attributes: attributes +- }))); +-} +-(0,_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__.registerBlockType)(_block_json__WEBPACK_IMPORTED_MODULE_5__.name, { +- edit: Edit, +- save: () => null +-}); +- +-/***/ }), +- +-/***/ "./src/blocks/release-draft-result/style.scss": +-/*!****************************************************!*\ +- !*** ./src/blocks/release-draft-result/style.scss ***! +- \****************************************************/ +-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { +- +-__webpack_require__.r(__webpack_exports__); +-// extracted by mini-css-extract-plugin +- +- +-/***/ }), +- +-/***/ "react": +-/*!************************!*\ +- !*** external "React" ***! +- \************************/ +-/***/ ((module) => { +- +-module.exports = window["React"]; +- +-/***/ }), +- +-/***/ "@wordpress/block-editor": +-/*!*************************************!*\ +- !*** external ["wp","blockEditor"] ***! +- \*************************************/ +-/***/ ((module) => { +- +-module.exports = window["wp"]["blockEditor"]; +- +-/***/ }), +- +-/***/ "@wordpress/blocks": +-/*!********************************!*\ +- !*** external ["wp","blocks"] ***! +- \********************************/ +-/***/ ((module) => { +- +-module.exports = window["wp"]["blocks"]; +- +-/***/ }), +- +-/***/ "@wordpress/components": +-/*!************************************!*\ +- !*** external ["wp","components"] ***! +- \************************************/ +-/***/ ((module) => { +- +-module.exports = window["wp"]["components"]; +- +-/***/ }), +- +-/***/ "@wordpress/server-side-render": +-/*!******************************************!*\ +- !*** external ["wp","serverSideRender"] ***! +- \******************************************/ +-/***/ ((module) => { +- +-module.exports = window["wp"]["serverSideRender"]; +- +-/***/ }), +- +-/***/ "./src/blocks/release-draft-result/block.json": +-/*!****************************************************!*\ +- !*** ./src/blocks/release-draft-result/block.json ***! +- \****************************************************/ +-/***/ ((module) => { +- +-module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"wporg/release-draft-result","version":"0.1.0","title":"Release Draft Result","category":"design","icon":"","description":"A block to display release draft result item.","textdomain":"wporg","attributes":{"text":{"type":"string","default":""},"type":{"type":"string","default":"success"}},"supports":{"html":false},"editorScript":"file:./index.js","render":"file:./render.php","style":"file:./style-index.css"}'); +- +-/***/ }) +- +-/******/ }); +-/************************************************************************/ +-/******/ // The module cache +-/******/ var __webpack_module_cache__ = {}; +-/******/  +-/******/ // The require function +-/******/ function __webpack_require__(moduleId) { +-/******/ // Check if module is in cache +-/******/ var cachedModule = __webpack_module_cache__[moduleId]; +-/******/ if (cachedModule !== undefined) { +-/******/ return cachedModule.exports; +-/******/ } +-/******/ // Create a new module (and put it into the cache) +-/******/ var module = __webpack_module_cache__[moduleId] = { +-/******/ // no module.id needed +-/******/ // no module.loaded needed +-/******/ exports: {} +-/******/ }; +-/******/  +-/******/ // Execute the module function +-/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); +-/******/  +-/******/ // Return the exports of the module +-/******/ return module.exports; +-/******/ } +-/******/  +-/******/ // expose the modules object (__webpack_modules__) +-/******/ __webpack_require__.m = __webpack_modules__; +-/******/  +-/************************************************************************/ +-/******/ /* webpack/runtime/chunk loaded */ +-/******/ (() => { +-/******/ var deferred = []; +-/******/ __webpack_require__.O = (result, chunkIds, fn, priority) => { +-/******/ if(chunkIds) { +-/******/ priority = priority || 0; +-/******/ for(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1]; +-/******/ deferred[i] = [chunkIds, fn, priority]; +-/******/ return; +-/******/ } +-/******/ var notFulfilled = Infinity; +-/******/ for (var i = 0; i < deferred.length; i++) { +-/******/ var chunkIds = deferred[i][0]; +-/******/ var fn = deferred[i][1]; +-/******/ var priority = deferred[i][2]; +-/******/ var fulfilled = true; +-/******/ for (var j = 0; j < chunkIds.length; j++) { +-/******/ if ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) { +-/******/ chunkIds.splice(j--, 1); +-/******/ } else { +-/******/ fulfilled = false; +-/******/ if(priority < notFulfilled) notFulfilled = priority; +-/******/ } +-/******/ } +-/******/ if(fulfilled) { +-/******/ deferred.splice(i--, 1) +-/******/ var r = fn(); +-/******/ if (r !== undefined) result = r; +-/******/ } +-/******/ } +-/******/ return result; +-/******/ }; +-/******/ })(); +-/******/  +-/******/ /* webpack/runtime/compat get default export */ +-/******/ (() => { +-/******/ // getDefaultExport function for compatibility with non-harmony modules +-/******/ __webpack_require__.n = (module) => { +-/******/ var getter = module && module.__esModule ? +-/******/ () => (module['default']) : +-/******/ () => (module); +-/******/ __webpack_require__.d(getter, { a: getter }); +-/******/ return getter; +-/******/ }; +-/******/ })(); +-/******/  +-/******/ /* webpack/runtime/define property getters */ +-/******/ (() => { +-/******/ // define getter functions for harmony exports +-/******/ __webpack_require__.d = (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 */ +-/******/ (() => { +-/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) +-/******/ })(); +-/******/  +-/******/ /* webpack/runtime/make namespace object */ +-/******/ (() => { +-/******/ // define __esModule on exports +-/******/ __webpack_require__.r = (exports) => { +-/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +-/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +-/******/ } +-/******/ Object.defineProperty(exports, '__esModule', { value: true }); +-/******/ }; +-/******/ })(); +-/******/  +-/******/ /* webpack/runtime/jsonp chunk loading */ +-/******/ (() => { +-/******/ // no baseURI +-/******/  +-/******/ // object to store loaded and loading chunks +-/******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched +-/******/ // [resolve, reject, Promise] = chunk loading, 0 = chunk loaded +-/******/ var installedChunks = { +-/******/ "blocks/release-draft-result/index": 0, +-/******/ "blocks/release-draft-result/style-index": 0 +-/******/ }; +-/******/  +-/******/ // no chunk on demand loading +-/******/  +-/******/ // no prefetching +-/******/  +-/******/ // no preloaded +-/******/  +-/******/ // no HMR +-/******/  +-/******/ // no HMR manifest +-/******/  +-/******/ __webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0); +-/******/  +-/******/ // install a JSONP callback for chunk loading +-/******/ var webpackJsonpCallback = (parentChunkLoadingFunction, data) => { +-/******/ var chunkIds = data[0]; +-/******/ var moreModules = data[1]; +-/******/ var runtime = data[2]; +-/******/ // add "moreModules" to the modules object, +-/******/ // then flag all "chunkIds" as loaded and fire callback +-/******/ var moduleId, chunkId, i = 0; +-/******/ if(chunkIds.some((id) => (installedChunks[id] !== 0))) { +-/******/ for(moduleId in moreModules) { +-/******/ if(__webpack_require__.o(moreModules, moduleId)) { +-/******/ __webpack_require__.m[moduleId] = moreModules[moduleId]; +-/******/ } +-/******/ } +-/******/ if(runtime) var result = runtime(__webpack_require__); +-/******/ } +-/******/ if(parentChunkLoadingFunction) parentChunkLoadingFunction(data); +-/******/ for(;i < chunkIds.length; i++) { +-/******/ chunkId = chunkIds[i]; +-/******/ if(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) { +-/******/ installedChunks[chunkId][0](); +-/******/ } +-/******/ installedChunks[chunkId] = 0; +-/******/ } +-/******/ return __webpack_require__.O(result); +-/******/ } +-/******/  +-/******/ var chunkLoadingGlobal = self["webpackChunkwporg_plugins_2024"] = self["webpackChunkwporg_plugins_2024"] || []; +-/******/ chunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0)); +-/******/ chunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal)); +-/******/ })(); +-/******/  +-/************************************************************************/ +-/******/  +-/******/ // startup +-/******/ // Load entry module and return exports +-/******/ // This entry module depends on other loaded chunks and execution need to be delayed +-/******/ var __webpack_exports__ = __webpack_require__.O(undefined, ["blocks/release-draft-result/style-index"], () => (__webpack_require__("./src/blocks/release-draft-result/index.js"))) +-/******/ __webpack_exports__ = __webpack_require__.O(__webpack_exports__); +-/******/  +-/******/ })() +-; +-//# sourceMappingURL=index.js.map +\ No newline at end of file +diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-result/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-result/render.php +deleted file mode 100644 +index e3b058c92..000000000 +--- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-result/render.php ++++ /dev/null +@@ -1,11 +0,0 @@ +-attributes['text'] ) || ! isset( $block->attributes['type'] ) ) { +- return; +-} +- +-?> +- +-
  • > +- attributes['text'] ) ?> +-
  •  +\ No newline at end of file +diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-result/style-index.css b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-result/style-index.css +deleted file mode 100644 +index fcb6e7a3c..000000000 +--- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-result/style-index.css ++++ /dev/null +@@ -1,22 +0,0 @@ +-/*!*******************************************************************************************************************************************************************************************************************************************************************!*\ +- !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/blocks/release-draft-result/style.scss ***! +- \*******************************************************************************************************************************************************************************************************************************************************************/ +-.wp-block-wporg-release-draft-result { +- margin: 0 0 var(--wp--preset--spacing--10) 0 !important; +- padding-left: var(--wp--preset--spacing--30); +- position: relative; +-} +-.wp-block-wporg-release-draft-result:before { +- content: ""; +- display: flex; +- width: 24px; +- height: 24px; +- position: absolute; +- top: 2px; +- left: 0; +- background-image: url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 fill=%27%23E26F56%27 viewBox=%270 0 24 24%27 width=%2724%27 height=%2724%27 aria-hidden=%27true%27 focusable=%27false%27%3E%3Cpath d=%27M12 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%27%3E%3C/path%3E%3C/svg%3E"); +- background-repeat: no-repeat; +- background-position: center; +-} +- +-/*# sourceMappingURL=style-index.css.map*/ +\ No newline at end of file +diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-flags/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-flags/render.php +index b38e4a542..540aac681 100644 +--- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-flags/render.php ++++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-flags/render.php +@@ -35,8 +35,8 @@ if ( ! wp_is_numeric_array( $import_warnings ) ) { + $warnings = ''; + foreach ( $import_warnings as $error_code => $error_data ) { + $warnings .= sprintf( +- '', +- 'error', ++ '%2$s', ++ 'warning', + $error_data + ); + } +diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/patterns/sidebar.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/patterns/sidebar.php +index 0fe873e55..d7be6e19e 100644 +--- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/patterns/sidebar.php ++++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/patterns/sidebar.php +@@ -11,7 +11,7 @@ +  +
     +  +-

    Ratings

     ++ 

     +  +  +  +diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-check-item/block.json b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-check-item/block.json +index 53a9116da..8fac77140 100644 +--- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-check-item/block.json ++++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-check-item/block.json +@@ -9,13 +9,13 @@ + "description": "A block to display release draft check item.", + "textdomain": "wporg", + "attributes": { +- "text":{ +- "type": "string", +- "default": "" +- }, +- "type":{ ++ "status": { + "type": "string", ++ "enum": [ "error", "warning", "success" ], + "default": "success" ++ }, ++ "text": {  ++ "type": "string" + } + }, + "supports": { +diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-check-item/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-check-item/render.php +index e3b058c92..3e3b63b98 100644 +--- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-check-item/render.php ++++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-check-item/render.php +@@ -1,11 +1,33 @@ + attributes['text'] ) || ! isset( $block->attributes['type'] ) ) { +- return; ++$wrapper_attributes = get_block_wrapper_attributes( ++ [ ++ 'class' => $block->attributes['status'], ++ ] ++); ++ ++ ++// $copy = ''; ++ ++if ( ! empty( $block->inner_html ) ) { ++ var_dump( $block->inner_html ); + } +  + ?> +  +-
  • > +- attributes['text'] ) ?> +-
  •  +\ No newline at end of file ++
  • > ++ 
     ++  ++ attributes['status'] ) : ?> ++  ++ attributes['status'] ) : ?>  ++  ++  ++  ++ 
     ++ ++
  •  +diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-check-item/style.scss b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-check-item/style.scss +index 0460de68c..55dcb48cb 100644 +--- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-check-item/style.scss ++++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-check-item/style.scss +@@ -1,18 +1,29 @@ + .wp-block-wporg-release-check-item { +- margin: 0 0 var(--wp--preset--spacing--10) 0 !important; +- padding-left: var(--wp--preset--spacing--30); ++ margin: 0 0 var(--wp--preset--spacing--10) var(--wp--preset--spacing--10) !important; + position: relative; +  +- &:before { ++ summary { ++ display: flex; ++ cursor: default; ++ } ++ ++ summary:before { + content: ''; + display: flex; + width: 24px; + height: 24px; +- position: absolute; +- top: 2px; + left: 0; +- background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23E26F56' viewBox='0 0 24 24' width='24' height='24' aria-hidden='true' focusable='false'%3E%3Cpath 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'%3E%3C/path%3E%3C/svg%3E"); + background-repeat: no-repeat; + background-position: center; ++ background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24' aria-hidden='true' focusable='false'%3E%3Cpath d='M10.6 6L9.4 7l4.6 5-4.6 5 1.2 1 5.4-6z'%3E%3C/path%3E%3C/svg%3E"); ++ } ++ ++ &[open] summary:before { ++ background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg' width='24' height='24' aria-hidden='true' focusable='false'%3E%3Cpath d='M17.5 11.6L12 16l-5.5-4.4.9-1.2L12 14l4.5-3.6 1 1.2z'%3E%3C/path%3E%3C/svg%3E"); ++ } ++  ++ summary::marker { ++ display: none; ++ content: ''; + } + } +diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-checks/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-checks/render.php +index c53ef055b..29b7d49f0 100644 +--- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-checks/render.php ++++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-checks/render.php +@@ -4,18 +4,46 @@ if ( ! current_user_can( 'plugin_admin_edit', $post ) ) { + return; + } +  +-$current_post_id = $block->context['postId']; +-if ( ! $current_post_id ) { ++if ( ! $block->context['postId'] ) { + return; + } +  +-?> ++$release_post = get_post( $block->context['postId'] ); +  +- +-

     +- ++$plugin_check_errors = get_post_meta( $release_post->ID, 'plugin_check_result', true ); +  +-
       +-
    • First Item
    •  +-
    • Second Item
    •  +-
     ++echo do_blocks(  ++ sprintf( ++ ' ++

    %s

     ++ ', ++ __( 'Checks', 'wporg-plugins' ) ++ ) ++); ++ ++if ( empty( $plugin_check_errors ) ) { ++ printf( ++ '

    %s

    ', ++ __( 'No checks were run.', 'wporg-plugins' ) ++ ); ++} ++ ++ ++echo '
      '; ++ ++ ++$blocks = sprintf( ++ '%2$s', ++ esc_attr( 'error' ), ++ sprintf( ++ /* translators: %1$s is a link to the Plugin Check (PCP) tool, %2$s is a "See details" link. */ ++ __('%1$s detected some issues.', 'wporg-plugins'), ++ 'ok' .  ++ esc_html__( 'Plugin Check (PCP)', 'wporg-plugins' ) .  ++ '' ++ ) ++); ++ ++echo do_blocks( $blocks ); ++ ++echo '
    '; +diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-flags/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-flags/render.php +index b38e4a542..540aac681 100644 +--- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-flags/render.php ++++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-flags/render.php +@@ -35,8 +35,8 @@ if ( ! wp_is_numeric_array( $import_warnings ) ) { + $warnings = ''; + foreach ( $import_warnings as $error_code => $error_data ) { + $warnings .= sprintf( +- '', +- 'error', ++ '%2$s', ++ 'warning', + $error_data + ); + } diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-check-item/block.json b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-check-item/block.json index 97daf1101a..3177702aaf 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-check-item/block.json +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-check-item/block.json @@ -9,13 +9,17 @@ "description": "A block to display release draft check item.", "textdomain": "wporg", "attributes": { - "text": { - "type": "string", - "default": "" - }, - "type": { + "status": { "type": "string", + "enum": [ + "error", + "warning", + "success" + ], "default": "success" + }, + "text": { + "type": "string" } }, "supports": { diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-check-item/index.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-check-item/index.asset.php index 81d0177fd0..516638222e 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-check-item/index.asset.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-check-item/index.asset.php @@ -1 +1 @@ - array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => '0a4d881342b3ca7e15f3'); + array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => '0cc3c274766792eb7ff7'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-check-item/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-check-item/index.js index 424bc0668e..e752b9f1dd 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-check-item/index.js +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-check-item/index.js @@ -121,7 +121,7 @@ module.exports = window["wp"]["serverSideRender"]; \**************************************************/ /***/ ((module) => { -module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"wporg/release-check-item","version":"0.1.0","title":"Release Check Item","category":"design","icon":"","description":"A block to display release draft check item.","textdomain":"wporg","attributes":{"text":{"type":"string","default":""},"type":{"type":"string","default":"success"}},"supports":{"html":false},"editorScript":"file:./index.js","render":"file:./render.php","style":"file:./style-index.css"}'); +module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"wporg/release-check-item","version":"0.1.0","title":"Release Check Item","category":"design","icon":"","description":"A block to display release draft check item.","textdomain":"wporg","attributes":{"status":{"type":"string","enum":["error","warning","success"],"default":"success"},"text":{"type":"string"}},"supports":{"html":false},"editorScript":"file:./index.js","render":"file:./render.php","style":"file:./style-index.css"}'); /***/ }) diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-check-item/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-check-item/render.php index e3b058c928..3e3b63b98d 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-check-item/render.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-check-item/render.php @@ -1,11 +1,33 @@ attributes['text'] ) || ! isset( $block->attributes['type'] ) ) { - return; +$wrapper_attributes = get_block_wrapper_attributes( + [ + 'class' => $block->attributes['status'], + ] +); + + +// $copy = ''; + +if ( ! empty( $block->inner_html ) ) { + var_dump( $block->inner_html ); } ?> -
  • > - attributes['text'] ) ?> -
  • \ No newline at end of file +
  • > +
    + + attributes['status'] ) : ?> + + attributes['status'] ) : ?> + + + +
    + +
  • diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-check-item/style-index.css b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-check-item/style-index.css index bcc237feb4..8698abe05f 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-check-item/style-index.css +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-check-item/style-index.css @@ -2,21 +2,29 @@ !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/blocks/release-check-item/style.scss ***! \*****************************************************************************************************************************************************************************************************************************************************************/ .wp-block-wporg-release-check-item { - margin: 0 0 var(--wp--preset--spacing--10) 0 !important; - padding-left: var(--wp--preset--spacing--30); + margin: 0 0 var(--wp--preset--spacing--10) var(--wp--preset--spacing--10) !important; position: relative; } -.wp-block-wporg-release-check-item:before { +.wp-block-wporg-release-check-item summary { + display: flex; + cursor: default; +} +.wp-block-wporg-release-check-item summary:before { content: ""; display: flex; width: 24px; height: 24px; - position: absolute; - top: 2px; left: 0; - background-image: url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 fill=%27%23E26F56%27 viewBox=%270 0 24 24%27 width=%2724%27 height=%2724%27 aria-hidden=%27true%27 focusable=%27false%27%3E%3Cpath d=%27M12 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%27%3E%3C/path%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: center; + background-image: url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 24 24%27 width=%2724%27 height=%2724%27 aria-hidden=%27true%27 focusable=%27false%27%3E%3Cpath d=%27M10.6 6L9.4 7l4.6 5-4.6 5 1.2 1 5.4-6z%27%3E%3C/path%3E%3C/svg%3E"); +} +.wp-block-wporg-release-check-item[open] summary:before { + background-image: url("data:image/svg+xml,%3Csvg viewBox=%270 0 24 24%27 xmlns=%27http://www.w3.org/2000/svg%27 width=%2724%27 height=%2724%27 aria-hidden=%27true%27 focusable=%27false%27%3E%3Cpath d=%27M17.5 11.6L12 16l-5.5-4.4.9-1.2L12 14l4.5-3.6 1 1.2z%27%3E%3C/path%3E%3C/svg%3E"); +} +.wp-block-wporg-release-check-item summary::marker { + display: none; + content: ""; } /*# sourceMappingURL=style-index.css.map*/ \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks/render.php index c53ef055b3..29b7d49f07 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks/render.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks/render.php @@ -4,18 +4,46 @@ return; } -$current_post_id = $block->context['postId']; -if ( ! $current_post_id ) { +if ( ! $block->context['postId'] ) { return; } -?> +$release_post = get_post( $block->context['postId'] ); - -

    - +$plugin_check_errors = get_post_meta( $release_post->ID, 'plugin_check_result', true ); -
      -
    • First Item
    • -
    • Second Item
    • -
    +echo do_blocks( + sprintf( + ' +

    %s

    + ', + __( 'Checks', 'wporg-plugins' ) + ) +); + +if ( empty( $plugin_check_errors ) ) { + printf( + '

    %s

    ', + __( 'No checks were run.', 'wporg-plugins' ) + ); +} + + +echo '
      '; + + +$blocks = sprintf( + '%2$s', + esc_attr( 'error' ), + sprintf( + /* translators: %1$s is a link to the Plugin Check (PCP) tool, %2$s is a "See details" link. */ + __('%1$s detected some issues.', 'wporg-plugins'), + 'ok' . + esc_html__( 'Plugin Check (PCP)', 'wporg-plugins' ) . + '' + ) +); + +echo do_blocks( $blocks ); + +echo '
    '; diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-result/block.json b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-result/block.json deleted file mode 100644 index 7d9d336f3a..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-result/block.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "$schema": "https://schemas.wp.org/trunk/block.json", - "apiVersion": 2, - "name": "wporg/release-draft-result", - "version": "0.1.0", - "title": "Release Draft Result", - "category": "design", - "icon": "", - "description": "A block to display release draft result item.", - "textdomain": "wporg", - "attributes": { - "text": { - "type": "string", - "default": "" - }, - "type": { - "type": "string", - "default": "success" - } - }, - "supports": { - "html": false - }, - "editorScript": "file:./index.js", - "render": "file:./render.php", - "style": "file:./style-index.css" -} \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-result/index.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-result/index.asset.php deleted file mode 100644 index 980352550f..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-result/index.asset.php +++ /dev/null @@ -1 +0,0 @@ - array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => '4cff3a5baca3e641f944'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-result/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-result/index.js deleted file mode 100644 index 11174c0a76..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-result/index.js +++ /dev/null @@ -1,298 +0,0 @@ -/******/ (() => { // webpackBootstrap -/******/ "use strict"; -/******/ var __webpack_modules__ = ({ - -/***/ "./src/blocks/release-draft-result/index.js": -/*!**************************************************!*\ - !*** ./src/blocks/release-draft-result/index.js ***! - \**************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); -/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/blocks */ "@wordpress/blocks"); -/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/server-side-render */ "@wordpress/server-side-render"); -/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/block-editor */ "@wordpress/block-editor"); -/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__); -/* harmony import */ var _block_json__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./block.json */ "./src/blocks/release-draft-result/block.json"); -/* harmony import */ var _style_scss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./style.scss */ "./src/blocks/release-draft-result/style.scss"); - -/** - * WordPress dependencies - */ - - - - - -/** - * Internal dependencies - */ - - -function Edit({ - attributes, - name -}) { - return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", { - ...(0,_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__.useBlockProps)() - }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Disabled, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)((_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default()), { - block: name, - attributes: attributes - }))); -} -(0,_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__.registerBlockType)(_block_json__WEBPACK_IMPORTED_MODULE_5__.name, { - edit: Edit, - save: () => null -}); - -/***/ }), - -/***/ "./src/blocks/release-draft-result/style.scss": -/*!****************************************************!*\ - !*** ./src/blocks/release-draft-result/style.scss ***! - \****************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -// extracted by mini-css-extract-plugin - - -/***/ }), - -/***/ "react": -/*!************************!*\ - !*** external "React" ***! - \************************/ -/***/ ((module) => { - -module.exports = window["React"]; - -/***/ }), - -/***/ "@wordpress/block-editor": -/*!*************************************!*\ - !*** external ["wp","blockEditor"] ***! - \*************************************/ -/***/ ((module) => { - -module.exports = window["wp"]["blockEditor"]; - -/***/ }), - -/***/ "@wordpress/blocks": -/*!********************************!*\ - !*** external ["wp","blocks"] ***! - \********************************/ -/***/ ((module) => { - -module.exports = window["wp"]["blocks"]; - -/***/ }), - -/***/ "@wordpress/components": -/*!************************************!*\ - !*** external ["wp","components"] ***! - \************************************/ -/***/ ((module) => { - -module.exports = window["wp"]["components"]; - -/***/ }), - -/***/ "@wordpress/server-side-render": -/*!******************************************!*\ - !*** external ["wp","serverSideRender"] ***! - \******************************************/ -/***/ ((module) => { - -module.exports = window["wp"]["serverSideRender"]; - -/***/ }), - -/***/ "./src/blocks/release-draft-result/block.json": -/*!****************************************************!*\ - !*** ./src/blocks/release-draft-result/block.json ***! - \****************************************************/ -/***/ ((module) => { - -module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"wporg/release-draft-result","version":"0.1.0","title":"Release Draft Result","category":"design","icon":"","description":"A block to display release draft result item.","textdomain":"wporg","attributes":{"text":{"type":"string","default":""},"type":{"type":"string","default":"success"}},"supports":{"html":false},"editorScript":"file:./index.js","render":"file:./render.php","style":"file:./style-index.css"}'); - -/***/ }) - -/******/ }); -/************************************************************************/ -/******/ // The module cache -/******/ var __webpack_module_cache__ = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ // Check if module is in cache -/******/ var cachedModule = __webpack_module_cache__[moduleId]; -/******/ if (cachedModule !== undefined) { -/******/ return cachedModule.exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = __webpack_module_cache__[moduleId] = { -/******/ // no module.id needed -/******/ // no module.loaded needed -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = __webpack_modules__; -/******/ -/************************************************************************/ -/******/ /* webpack/runtime/chunk loaded */ -/******/ (() => { -/******/ var deferred = []; -/******/ __webpack_require__.O = (result, chunkIds, fn, priority) => { -/******/ if(chunkIds) { -/******/ priority = priority || 0; -/******/ for(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1]; -/******/ deferred[i] = [chunkIds, fn, priority]; -/******/ return; -/******/ } -/******/ var notFulfilled = Infinity; -/******/ for (var i = 0; i < deferred.length; i++) { -/******/ var chunkIds = deferred[i][0]; -/******/ var fn = deferred[i][1]; -/******/ var priority = deferred[i][2]; -/******/ var fulfilled = true; -/******/ for (var j = 0; j < chunkIds.length; j++) { -/******/ if ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) { -/******/ chunkIds.splice(j--, 1); -/******/ } else { -/******/ fulfilled = false; -/******/ if(priority < notFulfilled) notFulfilled = priority; -/******/ } -/******/ } -/******/ if(fulfilled) { -/******/ deferred.splice(i--, 1) -/******/ var r = fn(); -/******/ if (r !== undefined) result = r; -/******/ } -/******/ } -/******/ return result; -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/compat get default export */ -/******/ (() => { -/******/ // getDefaultExport function for compatibility with non-harmony modules -/******/ __webpack_require__.n = (module) => { -/******/ var getter = module && module.__esModule ? -/******/ () => (module['default']) : -/******/ () => (module); -/******/ __webpack_require__.d(getter, { a: getter }); -/******/ return getter; -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/define property getters */ -/******/ (() => { -/******/ // define getter functions for harmony exports -/******/ __webpack_require__.d = (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 */ -/******/ (() => { -/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) -/******/ })(); -/******/ -/******/ /* webpack/runtime/make namespace object */ -/******/ (() => { -/******/ // define __esModule on exports -/******/ __webpack_require__.r = (exports) => { -/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { -/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); -/******/ } -/******/ Object.defineProperty(exports, '__esModule', { value: true }); -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/jsonp chunk loading */ -/******/ (() => { -/******/ // no baseURI -/******/ -/******/ // object to store loaded and loading chunks -/******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched -/******/ // [resolve, reject, Promise] = chunk loading, 0 = chunk loaded -/******/ var installedChunks = { -/******/ "blocks/release-draft-result/index": 0, -/******/ "blocks/release-draft-result/style-index": 0 -/******/ }; -/******/ -/******/ // no chunk on demand loading -/******/ -/******/ // no prefetching -/******/ -/******/ // no preloaded -/******/ -/******/ // no HMR -/******/ -/******/ // no HMR manifest -/******/ -/******/ __webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0); -/******/ -/******/ // install a JSONP callback for chunk loading -/******/ var webpackJsonpCallback = (parentChunkLoadingFunction, data) => { -/******/ var chunkIds = data[0]; -/******/ var moreModules = data[1]; -/******/ var runtime = data[2]; -/******/ // add "moreModules" to the modules object, -/******/ // then flag all "chunkIds" as loaded and fire callback -/******/ var moduleId, chunkId, i = 0; -/******/ if(chunkIds.some((id) => (installedChunks[id] !== 0))) { -/******/ for(moduleId in moreModules) { -/******/ if(__webpack_require__.o(moreModules, moduleId)) { -/******/ __webpack_require__.m[moduleId] = moreModules[moduleId]; -/******/ } -/******/ } -/******/ if(runtime) var result = runtime(__webpack_require__); -/******/ } -/******/ if(parentChunkLoadingFunction) parentChunkLoadingFunction(data); -/******/ for(;i < chunkIds.length; i++) { -/******/ chunkId = chunkIds[i]; -/******/ if(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) { -/******/ installedChunks[chunkId][0](); -/******/ } -/******/ installedChunks[chunkId] = 0; -/******/ } -/******/ return __webpack_require__.O(result); -/******/ } -/******/ -/******/ var chunkLoadingGlobal = self["webpackChunkwporg_plugins_2024"] = self["webpackChunkwporg_plugins_2024"] || []; -/******/ chunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0)); -/******/ chunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal)); -/******/ })(); -/******/ -/************************************************************************/ -/******/ -/******/ // startup -/******/ // Load entry module and return exports -/******/ // This entry module depends on other loaded chunks and execution need to be delayed -/******/ var __webpack_exports__ = __webpack_require__.O(undefined, ["blocks/release-draft-result/style-index"], () => (__webpack_require__("./src/blocks/release-draft-result/index.js"))) -/******/ __webpack_exports__ = __webpack_require__.O(__webpack_exports__); -/******/ -/******/ })() -; -//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-result/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-result/render.php deleted file mode 100644 index e3b058c928..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-result/render.php +++ /dev/null @@ -1,11 +0,0 @@ -attributes['text'] ) || ! isset( $block->attributes['type'] ) ) { - return; -} - -?> - -
  • > - attributes['text'] ) ?> -
  • \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-result/style-index.css b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-result/style-index.css deleted file mode 100644 index fcb6e7a3cb..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-result/style-index.css +++ /dev/null @@ -1,22 +0,0 @@ -/*!*******************************************************************************************************************************************************************************************************************************************************************!*\ - !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/blocks/release-draft-result/style.scss ***! - \*******************************************************************************************************************************************************************************************************************************************************************/ -.wp-block-wporg-release-draft-result { - margin: 0 0 var(--wp--preset--spacing--10) 0 !important; - padding-left: var(--wp--preset--spacing--30); - position: relative; -} -.wp-block-wporg-release-draft-result:before { - content: ""; - display: flex; - width: 24px; - height: 24px; - position: absolute; - top: 2px; - left: 0; - background-image: url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 fill=%27%23E26F56%27 viewBox=%270 0 24 24%27 width=%2724%27 height=%2724%27 aria-hidden=%27true%27 focusable=%27false%27%3E%3Cpath d=%27M12 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%27%3E%3C/path%3E%3C/svg%3E"); - background-repeat: no-repeat; - background-position: center; -} - -/*# sourceMappingURL=style-index.css.map*/ \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-flags/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-flags/render.php index b38e4a5427..540aac6818 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-flags/render.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-flags/render.php @@ -35,8 +35,8 @@ $warnings = ''; foreach ( $import_warnings as $error_code => $error_data ) { $warnings .= sprintf( - '', - 'error', + '%2$s', + 'warning', $error_data ); } diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-check-item/block.json b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-check-item/block.json index 53a9116da8..8fac771403 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-check-item/block.json +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-check-item/block.json @@ -9,13 +9,13 @@ "description": "A block to display release draft check item.", "textdomain": "wporg", "attributes": { - "text":{ - "type": "string", - "default": "" - }, - "type":{ + "status": { "type": "string", + "enum": [ "error", "warning", "success" ], "default": "success" + }, + "text": { + "type": "string" } }, "supports": { diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-check-item/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-check-item/render.php index e3b058c928..3e3b63b98d 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-check-item/render.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-check-item/render.php @@ -1,11 +1,33 @@ attributes['text'] ) || ! isset( $block->attributes['type'] ) ) { - return; +$wrapper_attributes = get_block_wrapper_attributes( + [ + 'class' => $block->attributes['status'], + ] +); + + +// $copy = ''; + +if ( ! empty( $block->inner_html ) ) { + var_dump( $block->inner_html ); } ?> -
  • > - attributes['text'] ) ?> -
  • \ No newline at end of file +
  • > +
    + + attributes['status'] ) : ?> + + attributes['status'] ) : ?> + + + +
    + +
  • diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-check-item/style.scss b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-check-item/style.scss index 0460de68c2..55dcb48cb0 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-check-item/style.scss +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-check-item/style.scss @@ -1,18 +1,29 @@ .wp-block-wporg-release-check-item { - margin: 0 0 var(--wp--preset--spacing--10) 0 !important; - padding-left: var(--wp--preset--spacing--30); + margin: 0 0 var(--wp--preset--spacing--10) var(--wp--preset--spacing--10) !important; position: relative; - &:before { + summary { + display: flex; + cursor: default; + } + + summary:before { content: ''; display: flex; width: 24px; height: 24px; - position: absolute; - top: 2px; left: 0; - background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23E26F56' viewBox='0 0 24 24' width='24' height='24' aria-hidden='true' focusable='false'%3E%3Cpath 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'%3E%3C/path%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: center; + background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24' aria-hidden='true' focusable='false'%3E%3Cpath d='M10.6 6L9.4 7l4.6 5-4.6 5 1.2 1 5.4-6z'%3E%3C/path%3E%3C/svg%3E"); + } + + &[open] summary:before { + background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg' width='24' height='24' aria-hidden='true' focusable='false'%3E%3Cpath d='M17.5 11.6L12 16l-5.5-4.4.9-1.2L12 14l4.5-3.6 1 1.2z'%3E%3C/path%3E%3C/svg%3E"); + } + + summary::marker { + display: none; + content: ''; } } diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-checks/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-checks/render.php index c53ef055b3..29b7d49f07 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-checks/render.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-checks/render.php @@ -4,18 +4,46 @@ return; } -$current_post_id = $block->context['postId']; -if ( ! $current_post_id ) { +if ( ! $block->context['postId'] ) { return; } -?> +$release_post = get_post( $block->context['postId'] ); - -

    - +$plugin_check_errors = get_post_meta( $release_post->ID, 'plugin_check_result', true ); -
      -
    • First Item
    • -
    • Second Item
    • -
    +echo do_blocks( + sprintf( + ' +

    %s

    + ', + __( 'Checks', 'wporg-plugins' ) + ) +); + +if ( empty( $plugin_check_errors ) ) { + printf( + '

    %s

    ', + __( 'No checks were run.', 'wporg-plugins' ) + ); +} + + +echo '
      '; + + +$blocks = sprintf( + '%2$s', + esc_attr( 'error' ), + sprintf( + /* translators: %1$s is a link to the Plugin Check (PCP) tool, %2$s is a "See details" link. */ + __('%1$s detected some issues.', 'wporg-plugins'), + 'ok' . + esc_html__( 'Plugin Check (PCP)', 'wporg-plugins' ) . + '' + ) +); + +echo do_blocks( $blocks ); + +echo '
    '; diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-flags/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-flags/render.php index b38e4a5427..540aac6818 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-flags/render.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-flags/render.php @@ -35,8 +35,8 @@ $warnings = ''; foreach ( $import_warnings as $error_code => $error_data ) { $warnings .= sprintf( - '', - 'error', + '%2$s', + 'warning', $error_data ); } From b03e024eb5d20cb17c36a2a5fc2c71d2301ed791 Mon Sep 17 00:00:00 2001 From: tellyworth Date: Thu, 28 Nov 2024 12:44:24 +1100 Subject: [PATCH 32/84] Update the release tag after successfully tagging a release --- .../wp-content/plugins/plugin-directory/class-plugin-release.php | 1 + 1 file changed, 1 insertion(+) diff --git a/wordpress.org/public_html/wp-content/plugins/plugin-directory/class-plugin-release.php b/wordpress.org/public_html/wp-content/plugins/plugin-directory/class-plugin-release.php index cc17b933d8..c3de668234 100644 --- a/wordpress.org/public_html/wp-content/plugins/plugin-directory/class-plugin-release.php +++ b/wordpress.org/public_html/wp-content/plugins/plugin-directory/class-plugin-release.php @@ -362,6 +362,7 @@ public function publish_release( $plugin ) { 'post_title' => $new_tag, 'meta_input' => array( 'release_tag_revision' => $tag_result['revision'], // Do we need this? + 'release_tag' => $new_tag, // Was 'trunk' ), ) ); From 49cc9687486ca7cd857cad4ed0a926acf4892704 Mon Sep 17 00:00:00 2001 From: tellyworth Date: Thu, 28 Nov 2024 13:01:49 +1100 Subject: [PATCH 33/84] Update draft post and run plugin-check on any `trunk` commit --- .../wp-content/plugins/plugin-directory/cli/class-import.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/wordpress.org/public_html/wp-content/plugins/plugin-directory/cli/class-import.php b/wordpress.org/public_html/wp-content/plugins/plugin-directory/cli/class-import.php index a07fabfaca..e22688e1b5 100644 --- a/wordpress.org/public_html/wp-content/plugins/plugin-directory/cli/class-import.php +++ b/wordpress.org/public_html/wp-content/plugins/plugin-directory/cli/class-import.php @@ -170,7 +170,7 @@ public function import_from_svn( $plugin_slug, $svn_changed_tags = array( 'trunk } // TODO: Test and confirm that this is the correct behavior. - if ( 'trunk' === $stable_tag ) { + if ( in_array( 'trunk', $svn_changed_tags ) ) { // Create or update a 'draft' release CPT for trunk changes. // Note that this will only create a new draft if the version doesn't already exist as a release. // TODO: refine this behaviour. (Maybe compare revision numbers?) From bb788d2fd0be6c57aad1646d2eadad1d9bead3ee Mon Sep 17 00:00:00 2001 From: StevenDufresne Date: Thu, 28 Nov 2024 04:50:10 +0000 Subject: [PATCH 34/84] Add in plugin check errors to checks section. --- .../blocks/release-check-item/block.json | 3 - .../blocks/release-check-item/index.asset.php | 2 +- .../build/blocks/release-check-item/index.js | 2 +- .../blocks/release-check-item/render.php | 47 ++-- .../blocks/release-check-item/style-index.css | 26 +-- .../blocks/release-checks/index.asset.php | 2 +- .../build/blocks/release-checks/index.js | 211 ++++++++++++++---- .../build/blocks/release-checks/render.php | 111 ++++++--- .../blocks/release-checks/style-index.css | 16 ++ .../build/blocks/release-draft/render.php | 16 +- .../blocks/release-draft/style-index.css | 1 - .../build/blocks/release-flags/render.php | 2 +- .../src/blocks/release-check-item/block.json | 3 - .../src/blocks/release-check-item/render.php | 47 ++-- .../src/blocks/release-check-item/style.scss | 35 +-- .../src/blocks/release-checks/index.js | 1 + .../src/blocks/release-checks/render.php | 111 ++++++--- .../src/blocks/release-checks/style.scss | 12 + .../src/blocks/release-draft/render.php | 16 +- .../src/blocks/release-draft/style.scss | 11 +- .../src/blocks/release-flags/render.php | 2 +- 21 files changed, 431 insertions(+), 246 deletions(-) create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks/style-index.css create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-checks/style.scss diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-check-item/block.json b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-check-item/block.json index 3177702aaf..f289508ad9 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-check-item/block.json +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-check-item/block.json @@ -17,9 +17,6 @@ "success" ], "default": "success" - }, - "text": { - "type": "string" } }, "supports": { diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-check-item/index.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-check-item/index.asset.php index 516638222e..591a50b059 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-check-item/index.asset.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-check-item/index.asset.php @@ -1 +1 @@ - array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => '0cc3c274766792eb7ff7'); + array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => 'b879c0e3fcd6270e7442'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-check-item/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-check-item/index.js index e752b9f1dd..edb1b05b11 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-check-item/index.js +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-check-item/index.js @@ -121,7 +121,7 @@ module.exports = window["wp"]["serverSideRender"]; \**************************************************/ /***/ ((module) => { -module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"wporg/release-check-item","version":"0.1.0","title":"Release Check Item","category":"design","icon":"","description":"A block to display release draft check item.","textdomain":"wporg","attributes":{"status":{"type":"string","enum":["error","warning","success"],"default":"success"},"text":{"type":"string"}},"supports":{"html":false},"editorScript":"file:./index.js","render":"file:./render.php","style":"file:./style-index.css"}'); +module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"wporg/release-check-item","version":"0.1.0","title":"Release Check Item","category":"design","icon":"","description":"A block to display release draft check item.","textdomain":"wporg","attributes":{"status":{"type":"string","enum":["error","warning","success"],"default":"success"}},"supports":{"html":false},"editorScript":"file:./index.js","render":"file:./render.php","style":"file:./style-index.css"}'); /***/ }) diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-check-item/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-check-item/render.php index 3e3b63b98d..0578eaa9f3 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-check-item/render.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-check-item/render.php @@ -1,33 +1,22 @@ - $block->attributes['status'], - ] -); - - -// $copy = ''; - -if ( ! empty( $block->inner_html ) ) { - var_dump( $block->inner_html ); -} - -?> - -
  • > -
    - - attributes['status'] ) : ?> -
  • > +
    + attributes['status'] ) : ?> + + + + + + attributes['status'] ) : ?> + + - attributes['status'] ) : ?> -
  • -
    + +
  • + inner_html ); ?> diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-check-item/style-index.css b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-check-item/style-index.css index 8698abe05f..1d9b4a1de2 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-check-item/style-index.css +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-check-item/style-index.css @@ -2,29 +2,15 @@ !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/blocks/release-check-item/style.scss ***! \*****************************************************************************************************************************************************************************************************************************************************************/ .wp-block-wporg-release-check-item { - margin: 0 0 var(--wp--preset--spacing--10) var(--wp--preset--spacing--10) !important; - position: relative; -} -.wp-block-wporg-release-check-item summary { display: flex; - cursor: default; + margin: 0 !important; + position: relative; + gap: 8px; } -.wp-block-wporg-release-check-item summary:before { - content: ""; +.wp-block-wporg-release-check-item > div:first-child { + height: 25px; display: flex; - width: 24px; - height: 24px; - left: 0; - background-repeat: no-repeat; - background-position: center; - background-image: url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 24 24%27 width=%2724%27 height=%2724%27 aria-hidden=%27true%27 focusable=%27false%27%3E%3Cpath d=%27M10.6 6L9.4 7l4.6 5-4.6 5 1.2 1 5.4-6z%27%3E%3C/path%3E%3C/svg%3E"); -} -.wp-block-wporg-release-check-item[open] summary:before { - background-image: url("data:image/svg+xml,%3Csvg viewBox=%270 0 24 24%27 xmlns=%27http://www.w3.org/2000/svg%27 width=%2724%27 height=%2724%27 aria-hidden=%27true%27 focusable=%27false%27%3E%3Cpath d=%27M17.5 11.6L12 16l-5.5-4.4.9-1.2L12 14l4.5-3.6 1 1.2z%27%3E%3C/path%3E%3C/svg%3E"); -} -.wp-block-wporg-release-check-item summary::marker { - display: none; - content: ""; + align-items: center; } /*# sourceMappingURL=style-index.css.map*/ \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks/index.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks/index.asset.php index 2b70d6ca89..a727359a89 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks/index.asset.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks/index.asset.php @@ -1 +1 @@ - array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => 'e320f31767af4d3aa990'); + array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => 'e264093d240f158ddead'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks/index.js index 48e6a3f16a..406f7ccc3c 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks/index.js +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks/index.js @@ -2,6 +2,69 @@ /******/ "use strict"; /******/ var __webpack_modules__ = ({ +/***/ "./src/blocks/release-checks/index.js": +/*!********************************************!*\ + !*** ./src/blocks/release-checks/index.js ***! + \********************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); +/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/blocks */ "@wordpress/blocks"); +/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/server-side-render */ "@wordpress/server-side-render"); +/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/block-editor */ "@wordpress/block-editor"); +/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__); +/* harmony import */ var _block_json__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./block.json */ "./src/blocks/release-checks/block.json"); +/* harmony import */ var _style_scss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./style.scss */ "./src/blocks/release-checks/style.scss"); + +/** + * WordPress dependencies + */ + + + + + +/** + * Internal dependencies + */ + + +function Edit({ + attributes, + name +}) { + return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", { + ...(0,_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__.useBlockProps)() + }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Disabled, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)((_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default()), { + block: name, + attributes: attributes + }))); +} +(0,_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__.registerBlockType)(_block_json__WEBPACK_IMPORTED_MODULE_5__.name, { + edit: Edit, + save: () => null +}); + +/***/ }), + +/***/ "./src/blocks/release-checks/style.scss": +/*!**********************************************!*\ + !*** ./src/blocks/release-checks/style.scss ***! + \**********************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +// extracted by mini-css-extract-plugin + + +/***/ }), + /***/ "react": /*!************************!*\ !*** external "React" ***! @@ -88,7 +151,44 @@ module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json /******/ return module.exports; /******/ } /******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = __webpack_modules__; +/******/ /************************************************************************/ +/******/ /* webpack/runtime/chunk loaded */ +/******/ (() => { +/******/ var deferred = []; +/******/ __webpack_require__.O = (result, chunkIds, fn, priority) => { +/******/ if(chunkIds) { +/******/ priority = priority || 0; +/******/ for(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1]; +/******/ deferred[i] = [chunkIds, fn, priority]; +/******/ return; +/******/ } +/******/ var notFulfilled = Infinity; +/******/ for (var i = 0; i < deferred.length; i++) { +/******/ var chunkIds = deferred[i][0]; +/******/ var fn = deferred[i][1]; +/******/ var priority = deferred[i][2]; +/******/ var fulfilled = true; +/******/ for (var j = 0; j < chunkIds.length; j++) { +/******/ if ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) { +/******/ chunkIds.splice(j--, 1); +/******/ } else { +/******/ fulfilled = false; +/******/ if(priority < notFulfilled) notFulfilled = priority; +/******/ } +/******/ } +/******/ if(fulfilled) { +/******/ deferred.splice(i--, 1) +/******/ var r = fn(); +/******/ if (r !== undefined) result = r; +/******/ } +/******/ } +/******/ return result; +/******/ }; +/******/ })(); +/******/ /******/ /* webpack/runtime/compat get default export */ /******/ (() => { /******/ // getDefaultExport function for compatibility with non-harmony modules @@ -129,55 +229,70 @@ module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json /******/ }; /******/ })(); /******/ +/******/ /* webpack/runtime/jsonp chunk loading */ +/******/ (() => { +/******/ // no baseURI +/******/ +/******/ // object to store loaded and loading chunks +/******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched +/******/ // [resolve, reject, Promise] = chunk loading, 0 = chunk loaded +/******/ var installedChunks = { +/******/ "blocks/release-checks/index": 0, +/******/ "blocks/release-checks/style-index": 0 +/******/ }; +/******/ +/******/ // no chunk on demand loading +/******/ +/******/ // no prefetching +/******/ +/******/ // no preloaded +/******/ +/******/ // no HMR +/******/ +/******/ // no HMR manifest +/******/ +/******/ __webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0); +/******/ +/******/ // install a JSONP callback for chunk loading +/******/ var webpackJsonpCallback = (parentChunkLoadingFunction, data) => { +/******/ var chunkIds = data[0]; +/******/ var moreModules = data[1]; +/******/ var runtime = data[2]; +/******/ // add "moreModules" to the modules object, +/******/ // then flag all "chunkIds" as loaded and fire callback +/******/ var moduleId, chunkId, i = 0; +/******/ if(chunkIds.some((id) => (installedChunks[id] !== 0))) { +/******/ for(moduleId in moreModules) { +/******/ if(__webpack_require__.o(moreModules, moduleId)) { +/******/ __webpack_require__.m[moduleId] = moreModules[moduleId]; +/******/ } +/******/ } +/******/ if(runtime) var result = runtime(__webpack_require__); +/******/ } +/******/ if(parentChunkLoadingFunction) parentChunkLoadingFunction(data); +/******/ for(;i < chunkIds.length; i++) { +/******/ chunkId = chunkIds[i]; +/******/ if(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) { +/******/ installedChunks[chunkId][0](); +/******/ } +/******/ installedChunks[chunkId] = 0; +/******/ } +/******/ return __webpack_require__.O(result); +/******/ } +/******/ +/******/ var chunkLoadingGlobal = self["webpackChunkwporg_plugins_2024"] = self["webpackChunkwporg_plugins_2024"] || []; +/******/ chunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0)); +/******/ chunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal)); +/******/ })(); +/******/ /************************************************************************/ -var __webpack_exports__ = {}; -// This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk. -(() => { -/*!********************************************!*\ - !*** ./src/blocks/release-checks/index.js ***! - \********************************************/ -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); -/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/blocks */ "@wordpress/blocks"); -/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/server-side-render */ "@wordpress/server-side-render"); -/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/block-editor */ "@wordpress/block-editor"); -/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__); -/* harmony import */ var _block_json__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./block.json */ "./src/blocks/release-checks/block.json"); - -/** - * WordPress dependencies - */ - - - - - -/** - * Internal dependencies - */ - -function Edit({ - attributes, - name -}) { - return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", { - ...(0,_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__.useBlockProps)() - }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Disabled, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)((_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default()), { - block: name, - attributes: attributes - }))); -} -(0,_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__.registerBlockType)(_block_json__WEBPACK_IMPORTED_MODULE_5__.name, { - edit: Edit, - save: () => null -}); -})(); - +/******/ +/******/ // startup +/******/ // Load entry module and return exports +/******/ // This entry module depends on other loaded chunks and execution need to be delayed +/******/ var __webpack_exports__ = __webpack_require__.O(undefined, ["blocks/release-checks/style-index"], () => (__webpack_require__("./src/blocks/release-checks/index.js"))) +/******/ __webpack_exports__ = __webpack_require__.O(__webpack_exports__); +/******/ /******/ })() ; //# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks/render.php index 29b7d49f07..03eaf77a0f 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks/render.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks/render.php @@ -1,49 +1,100 @@ context['postId'] ) { +if ( empty( $block->context['postId'] ) ) { return; } -$release_post = get_post( $block->context['postId'] ); +/** + * Formats plugin check results into an HTML list. + * + * @param array $results The plugin check results. + * @return string HTML formatted results. + */ +function format_plugin_check_results( $results ) { + if ( empty( $results ) ) { + return '

    ' . __( 'No issues found.', 'wporg-plugins' ) . '

    '; + } + + $output = '
      '; + + foreach ( $results as $result ) { + $type_class = isset( $result['type'] ) ? strtolower( $result['type'] ) : ''; + + $output .= sprintf( + '
    • %1$s %2$s
    • ', + esc_html( $result['message'] ), + ! empty( $result['docs'] ) + ? sprintf( + '%s', + esc_url( $result['docs'] ), + __( 'More Information', 'wporg-plugins' ) + ) + : '' + ); + } + + $output .= '
    '; + + return $output; +} +$release_post = get_post( $block->context['postId'] ); $plugin_check_errors = get_post_meta( $release_post->ID, 'plugin_check_result', true ); -echo do_blocks( - sprintf( - ' -

    %s

    - ', - __( 'Checks', 'wporg-plugins' ) - ) +echo do_blocks( + sprintf( + ' +

    %s

    + ', + esc_html__( 'Checks', 'wporg-plugins' ) + ) ); if ( empty( $plugin_check_errors ) ) { - printf( - '

    %s

    ', - __( 'No checks were run.', 'wporg-plugins' ) - ); + printf( + '

    %s

    ', + esc_html__( 'No checks were run.', 'wporg-plugins' ) + ); + return; } +$plugin_check_link = sprintf( + '%s', + esc_url( 'https://wordpress.org/plugins/plugin-check' ), + esc_html__( 'Plugin Check (PCP)', 'wporg-plugins' ) +); -echo '
      '; - +$message = ''; +if ( ! empty( $plugin_check_errors->verdict ) ) { + $message = sprintf( + /* translators: %1$s is a link to the Plugin Check (PCP) tool. */ + '

      ' . __( 'Passed the %1$s.', 'wporg-plugins' ) . '

      ', + $plugin_check_link + ); +} else { + $message = sprintf( + '
      %1$s%2$s
      ', + sprintf( + /* translators: %1$s is a link to the Plugin Check (PCP) tool. */ + __( '%1$s detected issues.', 'wporg-plugins' ), + $plugin_check_link + ), + format_plugin_check_results( $plugin_check_errors['results'] ) + ); +} -$blocks = sprintf( - '%2$s', - esc_attr( 'error' ), - sprintf( - /* translators: %1$s is a link to the Plugin Check (PCP) tool, %2$s is a "See details" link. */ - __('%1$s detected some issues.', 'wporg-plugins'), - 'ok' . - esc_html__( 'Plugin Check (PCP)', 'wporg-plugins' ) . - '' - ) +// Create a block with the overall status. +$status_block = sprintf( + '%2$s', + $plugin_check_errors->verdict ? 'success' : 'error', + $message ); -echo do_blocks( $blocks ); - -echo '
    '; +printf( + '
      %2$s
    ', + wp_kses_data( get_block_wrapper_attributes() ), + do_blocks( $status_block ) +); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks/style-index.css b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks/style-index.css new file mode 100644 index 0000000000..50b379f3ab --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks/style-index.css @@ -0,0 +1,16 @@ +/*!*************************************************************************************************************************************************************************************************************************************************************!*\ + !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/blocks/release-checks/style.scss ***! + \*************************************************************************************************************************************************************************************************************************************************************/ +.wp-block-wporg-release-checks summary { + cursor: default; +} + +.wp-block-wporg-release-checks-results { + margin-left: 16px; + list-style: disc; +} +.wp-block-wporg-release-checks-results li:not(:last-child) { + margin-bottom: 8px; +} + +/*# sourceMappingURL=style-index.css.map*/ \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft/render.php index 88606aaf58..a22d322184 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft/render.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft/render.php @@ -1,7 +1,7 @@ context['postId'] ) { @@ -16,18 +16,18 @@ // get release for the post $query_args = [ - 'post_type' => 'plugin_release', - 'posts_per_page' => 1, - 'post_parent' => $post->ID, - 'orderby' => 'date', - 'post_status' => 'draft', - 'order' => 'DESC', + 'post_type' => 'plugin_release', + 'posts_per_page' => 1, + 'post_parent' => $post->ID, + 'orderby' => 'date', + 'post_status' => 'draft', + 'order' => 'DESC', ]; $latest_draft_query = new WP_Query( $query_args ); if ( ! $latest_draft_query->have_posts() ) { - return; + return; } // Fetch the latest draft post. diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft/style-index.css b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft/style-index.css index 89f3615b0f..c3646bdf7f 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft/style-index.css +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft/style-index.css @@ -7,7 +7,6 @@ .wp-block-wporg-release-draft ul { margin-top: var(--wp--preset--spacing--10); padding: 0; - list-style: none; } /*# sourceMappingURL=style-index.css.map*/ \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-flags/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-flags/render.php index 540aac6818..bc3c2e2470 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-flags/render.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-flags/render.php @@ -35,7 +35,7 @@ $warnings = ''; foreach ( $import_warnings as $error_code => $error_data ) { $warnings .= sprintf( - '%2$s', + '

    %2$s

    ', 'warning', $error_data ); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-check-item/block.json b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-check-item/block.json index 8fac771403..4751ae42a8 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-check-item/block.json +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-check-item/block.json @@ -13,9 +13,6 @@ "type": "string", "enum": [ "error", "warning", "success" ], "default": "success" - }, - "text": { - "type": "string" } }, "supports": { diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-check-item/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-check-item/render.php index 3e3b63b98d..0578eaa9f3 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-check-item/render.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-check-item/render.php @@ -1,33 +1,22 @@ - $block->attributes['status'], - ] -); - - -// $copy = ''; - -if ( ! empty( $block->inner_html ) ) { - var_dump( $block->inner_html ); -} - -?> - -
  • > -
    - - attributes['status'] ) : ?> -
  • > +
    + attributes['status'] ) : ?> + + + + + + attributes['status'] ) : ?> + + - attributes['status'] ) : ?> -
  • -
    + +
  • + inner_html ); ?> diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-check-item/style.scss b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-check-item/style.scss index 55dcb48cb0..d9e289e4e4 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-check-item/style.scss +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-check-item/style.scss @@ -1,29 +1,12 @@ .wp-block-wporg-release-check-item { - margin: 0 0 var(--wp--preset--spacing--10) var(--wp--preset--spacing--10) !important; - position: relative; + display: flex; + margin: 0 !important; + position: relative; + gap: 8px; - summary { - display: flex; - cursor: default; - } - - summary:before { - content: ''; - display: flex; - width: 24px; - height: 24px; - left: 0; - background-repeat: no-repeat; - background-position: center; - background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24' aria-hidden='true' focusable='false'%3E%3Cpath d='M10.6 6L9.4 7l4.6 5-4.6 5 1.2 1 5.4-6z'%3E%3C/path%3E%3C/svg%3E"); - } - - &[open] summary:before { - background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg' width='24' height='24' aria-hidden='true' focusable='false'%3E%3Cpath d='M17.5 11.6L12 16l-5.5-4.4.9-1.2L12 14l4.5-3.6 1 1.2z'%3E%3C/path%3E%3C/svg%3E"); - } - - summary::marker { - display: none; - content: ''; - } + > div:first-child { + height: 25px; + display: flex; + align-items: center; + } } diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-checks/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-checks/index.js index 9e4580b21f..a52cd322ed 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-checks/index.js +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-checks/index.js @@ -10,6 +10,7 @@ import { useBlockProps } from '@wordpress/block-editor'; * Internal dependencies */ import metadata from './block.json'; +import './style.scss'; function Edit( { attributes, name } ) { return ( diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-checks/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-checks/render.php index 29b7d49f07..03eaf77a0f 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-checks/render.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-checks/render.php @@ -1,49 +1,100 @@ context['postId'] ) { +if ( empty( $block->context['postId'] ) ) { return; } -$release_post = get_post( $block->context['postId'] ); +/** + * Formats plugin check results into an HTML list. + * + * @param array $results The plugin check results. + * @return string HTML formatted results. + */ +function format_plugin_check_results( $results ) { + if ( empty( $results ) ) { + return '

    ' . __( 'No issues found.', 'wporg-plugins' ) . '

    '; + } + + $output = '
      '; + + foreach ( $results as $result ) { + $type_class = isset( $result['type'] ) ? strtolower( $result['type'] ) : ''; + + $output .= sprintf( + '
    • %1$s %2$s
    • ', + esc_html( $result['message'] ), + ! empty( $result['docs'] ) + ? sprintf( + '%s', + esc_url( $result['docs'] ), + __( 'More Information', 'wporg-plugins' ) + ) + : '' + ); + } + + $output .= '
    '; + + return $output; +} +$release_post = get_post( $block->context['postId'] ); $plugin_check_errors = get_post_meta( $release_post->ID, 'plugin_check_result', true ); -echo do_blocks( - sprintf( - ' -

    %s

    - ', - __( 'Checks', 'wporg-plugins' ) - ) +echo do_blocks( + sprintf( + ' +

    %s

    + ', + esc_html__( 'Checks', 'wporg-plugins' ) + ) ); if ( empty( $plugin_check_errors ) ) { - printf( - '

    %s

    ', - __( 'No checks were run.', 'wporg-plugins' ) - ); + printf( + '

    %s

    ', + esc_html__( 'No checks were run.', 'wporg-plugins' ) + ); + return; } +$plugin_check_link = sprintf( + '%s', + esc_url( 'https://wordpress.org/plugins/plugin-check' ), + esc_html__( 'Plugin Check (PCP)', 'wporg-plugins' ) +); -echo '
      '; - +$message = ''; +if ( ! empty( $plugin_check_errors->verdict ) ) { + $message = sprintf( + /* translators: %1$s is a link to the Plugin Check (PCP) tool. */ + '

      ' . __( 'Passed the %1$s.', 'wporg-plugins' ) . '

      ', + $plugin_check_link + ); +} else { + $message = sprintf( + '
      %1$s%2$s
      ', + sprintf( + /* translators: %1$s is a link to the Plugin Check (PCP) tool. */ + __( '%1$s detected issues.', 'wporg-plugins' ), + $plugin_check_link + ), + format_plugin_check_results( $plugin_check_errors['results'] ) + ); +} -$blocks = sprintf( - '%2$s', - esc_attr( 'error' ), - sprintf( - /* translators: %1$s is a link to the Plugin Check (PCP) tool, %2$s is a "See details" link. */ - __('%1$s detected some issues.', 'wporg-plugins'), - 'ok' . - esc_html__( 'Plugin Check (PCP)', 'wporg-plugins' ) . - '' - ) +// Create a block with the overall status. +$status_block = sprintf( + '%2$s', + $plugin_check_errors->verdict ? 'success' : 'error', + $message ); -echo do_blocks( $blocks ); - -echo '
    '; +printf( + '
      %2$s
    ', + wp_kses_data( get_block_wrapper_attributes() ), + do_blocks( $status_block ) +); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-checks/style.scss b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-checks/style.scss new file mode 100644 index 0000000000..e3a0c280bd --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-checks/style.scss @@ -0,0 +1,12 @@ +.wp-block-wporg-release-checks summary { + cursor: default; +} + +.wp-block-wporg-release-checks-results { + margin-left: 16px; + list-style: disc; + + li:not(:last-child) { + margin-bottom: 8px; + } +} \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-draft/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-draft/render.php index 88606aaf58..a22d322184 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-draft/render.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-draft/render.php @@ -1,7 +1,7 @@ context['postId'] ) { @@ -16,18 +16,18 @@ // get release for the post $query_args = [ - 'post_type' => 'plugin_release', - 'posts_per_page' => 1, - 'post_parent' => $post->ID, - 'orderby' => 'date', - 'post_status' => 'draft', - 'order' => 'DESC', + 'post_type' => 'plugin_release', + 'posts_per_page' => 1, + 'post_parent' => $post->ID, + 'orderby' => 'date', + 'post_status' => 'draft', + 'order' => 'DESC', ]; $latest_draft_query = new WP_Query( $query_args ); if ( ! $latest_draft_query->have_posts() ) { - return; + return; } // Fetch the latest draft post. diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-draft/style.scss b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-draft/style.scss index 3278402e02..aca0d16f71 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-draft/style.scss +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-draft/style.scss @@ -1,9 +1,8 @@ .wp-block-wporg-release-draft { - font-size: var(--wp--preset--font-size--small); + font-size: var(--wp--preset--font-size--small); - ul { - margin-top: var(--wp--preset--spacing--10); - padding: 0; - list-style: none; - } + ul { + margin-top: var(--wp--preset--spacing--10); + padding: 0; + } } \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-flags/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-flags/render.php index 540aac6818..bc3c2e2470 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-flags/render.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-flags/render.php @@ -35,7 +35,7 @@ $warnings = ''; foreach ( $import_warnings as $error_code => $error_data ) { $warnings .= sprintf( - '%2$s', + '

    %2$s

    ', 'warning', $error_data ); From 7722c0f2d0c3cac8b6b91be28eabab7c4fffed6e Mon Sep 17 00:00:00 2001 From: StevenDufresne Date: Thu, 28 Nov 2024 06:16:10 +0000 Subject: [PATCH 35/84] Update the release tag and not the version for trunk urls. --- .../wp-content/themes/pub/wporg-plugins-2024/functions.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/functions.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/functions.php index 5975a7e612..a13d22a0b3 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/functions.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/functions.php @@ -509,13 +509,13 @@ function get_previous_version( $release_post, $releases ) { } if( 'draft' === $release_post->post_status ) { - return get_post_meta( $releases[0]->ID, 'release_version', true ); + return get_post_meta( $releases[0]->ID, 'release_tag', true ); } foreach ( $releases as $key => $release ) { if ( $release->ID === $release_post->ID ) { if ( isset( $releases[ $key + 1 ] ) ) { - return get_post_meta( $releases[ $key + 1 ]->ID, 'release_version', true ); + return get_post_meta( $releases[ $key + 1 ]->ID, 'release_tag', true ); } break; } From 4fa1b0f6a9e7c8691940c285493045ff470b6b07 Mon Sep 17 00:00:00 2001 From: tellyworth Date: Fri, 29 Nov 2024 14:17:58 +1100 Subject: [PATCH 36/84] Store `release_commit_log` postmeta for drafts Will include the full commit log for trunk since the last published release. --- .../plugin-directory/class-plugin-release.php | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/wordpress.org/public_html/wp-content/plugins/plugin-directory/class-plugin-release.php b/wordpress.org/public_html/wp-content/plugins/plugin-directory/class-plugin-release.php index c3de668234..2b60dfe06c 100644 --- a/wordpress.org/public_html/wp-content/plugins/plugin-directory/class-plugin-release.php +++ b/wordpress.org/public_html/wp-content/plugins/plugin-directory/class-plugin-release.php @@ -2,6 +2,7 @@ namespace WordPressdotorg\Plugin_Directory; use WordPressdotorg\Plugin_Directory\Tools\SVN; +use WordPressdotorg\Plugin_Directory\Cli\Import; /** * The Plugin Release class encapsulates the plugin release CPT and related code. @@ -106,6 +107,7 @@ public function add_release( $plugin, $release ) { 'release_zips_built' => $release['zips_built'], 'release_confirmations_required' => $release['confirmations_required'], 'release_revision' => $release['revision'], + 'release_commit_log' => $release['commit_log'] ?? null, ), // TODO: what else? Could store the changelog or other content at the point of release for comparison purposes. ) ); @@ -154,6 +156,7 @@ public function update_release( $release_id, $release ) { 'release_zips_built' => $release['zips_built'], 'release_confirmations_required' => $release['confirmations_required'], 'release_revision' => $release['revision'], + 'release_commit_log' => $release['commit_log'] ?? null, ), // TODO: what else? Could store the changelog or other content at the point of release for comparison purposes. ) ); @@ -193,6 +196,13 @@ public function add_or_update_draft_release( $plugin, $release ) { } } + // Store the commit log in postmeta. We'll only do this for drafts. + $last_release_revision = max( $last_release->release_revision ); + if ( $last_release_revision && $release['revision'] ) { + $trunk_url = Import::PLUGIN_SVN_BASE . '/' . $plugin->post_name . '/trunk'; + $commit_log = SVN::log( $trunk_url, [ $last_release_revision, max( $release['revision'] ) ] ); + $release['commit_log'] = $commit_log['log'] ?? null; + } $draft_id = $this->get_release( $plugin, 'trunk' ); if ( $draft_id ) { $release_id = $this->update_release( $draft_id, $release ); @@ -356,12 +366,17 @@ public function publish_release( $plugin ) { return new \WP_Error( 'svn_error', 'SVN error', $tag_result['errors'] ); } + // Include the tag revision in the release post list of revisions. + // This is so that we can easily tell if there are trunk commits after the release. + $release_revisions = array_merge( $draft->release_revision, [ $tag_result['revision'] ] ); + $release_id = wp_update_post( array( 'ID' => $draft->ID, 'post_status' => 'publish', 'post_title' => $new_tag, 'meta_input' => array( - 'release_tag_revision' => $tag_result['revision'], // Do we need this? + 'release_revision' => $release_revisions, + #'release_tag_revision' => $tag_result['revision'], // Do we need this? Probably not. 'release_tag' => $new_tag, // Was 'trunk' ), ) ); From 7660a7ce2c89587fa1cbbbc96bdf71a4fa8b3047 Mon Sep 17 00:00:00 2001 From: tellyworth Date: Mon, 2 Dec 2024 19:49:38 +1100 Subject: [PATCH 37/84] Store tested/requires headers during import --- .../plugin-directory/class-plugin-release.php | 4 ++++ .../plugins/plugin-directory/cli/class-import.php | 14 +++++++++----- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/wordpress.org/public_html/wp-content/plugins/plugin-directory/class-plugin-release.php b/wordpress.org/public_html/wp-content/plugins/plugin-directory/class-plugin-release.php index 2b60dfe06c..12b3bbf140 100644 --- a/wordpress.org/public_html/wp-content/plugins/plugin-directory/class-plugin-release.php +++ b/wordpress.org/public_html/wp-content/plugins/plugin-directory/class-plugin-release.php @@ -157,6 +157,10 @@ public function update_release( $release_id, $release ) { 'release_confirmations_required' => $release['confirmations_required'], 'release_revision' => $release['revision'], 'release_commit_log' => $release['commit_log'] ?? null, + 'release_tested' => $release['tested'] ?? null, + 'release_requires_php' => $release['requires_php'] ?? null, + 'release_requires_wp' => $release['requires_wp'] ?? null, + 'release_requires_plugins' => $release['requires_plugins'] ?? null, ), // TODO: what else? Could store the changelog or other content at the point of release for comparison purposes. ) ); diff --git a/wordpress.org/public_html/wp-content/plugins/plugin-directory/cli/class-import.php b/wordpress.org/public_html/wp-content/plugins/plugin-directory/cli/class-import.php index e22688e1b5..ba78aaa617 100644 --- a/wordpress.org/public_html/wp-content/plugins/plugin-directory/cli/class-import.php +++ b/wordpress.org/public_html/wp-content/plugins/plugin-directory/cli/class-import.php @@ -177,12 +177,16 @@ public function import_from_svn( $plugin_slug, $svn_changed_tags = array( 'trunk $release = Plugin_Release::instance()->add_or_update_draft_release( $plugin, [ - 'tag' => 'trunk', - 'version' => $version, // TODO: Is this correct? - 'committer' => [ $last_committer ], - 'revision' => [ $last_revision ] + 'tag' => 'trunk', + 'version' => $version, // TODO: Is this correct? + 'committer' => [$last_committer], + 'revision' => [$last_revision], + 'tested' => $readme->tested, + 'requires' => $headers->RequiresWP, + 'requires_php' => $headers->RequiresPHP, + 'requires_plugins' => $requires_plugins, ] - ); + ); // While we're at it, run plugin check and store the results. // FIXME: Maybe this belongs in export_and_parse_plugin()? The readme checker is run there. From e2d726707b5ea617e49966288db232a1754af5e4 Mon Sep 17 00:00:00 2001 From: tellyworth Date: Tue, 3 Dec 2024 16:18:29 +1100 Subject: [PATCH 38/84] Remove unused var --- .../wp-content/plugins/plugin-directory/class-plugin-release.php | 1 - 1 file changed, 1 deletion(-) diff --git a/wordpress.org/public_html/wp-content/plugins/plugin-directory/class-plugin-release.php b/wordpress.org/public_html/wp-content/plugins/plugin-directory/class-plugin-release.php index 12b3bbf140..b5eeab3637 100644 --- a/wordpress.org/public_html/wp-content/plugins/plugin-directory/class-plugin-release.php +++ b/wordpress.org/public_html/wp-content/plugins/plugin-directory/class-plugin-release.php @@ -173,7 +173,6 @@ public function update_release( $release_id, $release ) { */ public function add_or_update_draft_release( $plugin, $release ) { $plugin = get_post( $plugin ); - $plugin_id = $plugin->ID; // Tag must be 'trunk' for this to be a draft release. if ( 'trunk' !== $release['tag'] ) { From f5cc81acb3d27296637e9ef6b70eafc4e7c40520 Mon Sep 17 00:00:00 2001 From: tellyworth Date: Tue, 3 Dec 2024 16:47:33 +1100 Subject: [PATCH 39/84] Backfill release CPTs during import This also adds a `maybe_backfill_releases()` function that could be called elsewhere eg from a one-time script. --- .../class-plugin-directory.php | 6 ---- .../plugin-directory/class-plugin-release.php | 30 +++++++++++++++++++ .../plugin-directory/cli/class-import.php | 4 +++ 3 files changed, 34 insertions(+), 6 deletions(-) diff --git a/wordpress.org/public_html/wp-content/plugins/plugin-directory/class-plugin-directory.php b/wordpress.org/public_html/wp-content/plugins/plugin-directory/class-plugin-directory.php index cb5166a785..62ccc5fa3e 100644 --- a/wordpress.org/public_html/wp-content/plugins/plugin-directory/class-plugin-directory.php +++ b/wordpress.org/public_html/wp-content/plugins/plugin-directory/class-plugin-directory.php @@ -1740,12 +1740,6 @@ public static function get_releases( $plugin ) { // Data doesn't exist yet? Lets fill it out. if ( false === $releases || ! is_array( $releases ) ) { $releases = self::prefill_releases_meta( $plugin ); - - // FIXME: limit creation of data while we're testing. Remove this for production. - // For now we'll mirror the releases postmeta into the CPT. If/when we're confident the behaviour is identical, we can remove the postmeta part. - if ( false && in_array( 'wordpressdotorg', Tools::get_plugin_committers( $plugin->ID ) ) ) { - Plugin_Release::instance()->update_releases( $plugin, $releases ); - } } /** diff --git a/wordpress.org/public_html/wp-content/plugins/plugin-directory/class-plugin-release.php b/wordpress.org/public_html/wp-content/plugins/plugin-directory/class-plugin-release.php index b5eeab3637..57795a8f35 100644 --- a/wordpress.org/public_html/wp-content/plugins/plugin-directory/class-plugin-release.php +++ b/wordpress.org/public_html/wp-content/plugins/plugin-directory/class-plugin-release.php @@ -71,6 +71,36 @@ public function get_releases( $plugin ) { return $releases; } + /** + * Check if a plugin has any release CPTs stored. + * Note that this intentionally does not count draft releases. If needed, we can add a parameter to support that. + */ + public function has_releases( $plugin ) { + $release = $this->get_release( $plugin, null ); + return ! empty( $release ); + } + + /** + * Backfill releases for a plugin, if none exist. This uses the releases postmeta to populate the CPTs. + */ + public function maybe_backfill_releases( $plugin ) { + $plugin = get_post( $plugin ); + + if ( !$plugin || 'plugin' !== $plugin->post_type ) { + return new \WP_Error( 'invalid_plugin', 'Invalid plugin' ); + } + + // This will backfill the releases postmeta if needed. + $releases_postmeta = Plugin_Directory::get_releases( $plugin ); + + // Add or update the release CPTs using postmeta. + if ( $releases_postmeta && ! $this->has_releases( $plugin ) ) { + return $this->update_releases( $plugin, $releases_postmeta ); + } + + return false; + } + /** * Add release info for a plugin. */ diff --git a/wordpress.org/public_html/wp-content/plugins/plugin-directory/cli/class-import.php b/wordpress.org/public_html/wp-content/plugins/plugin-directory/cli/class-import.php index ba78aaa617..e57ab78844 100644 --- a/wordpress.org/public_html/wp-content/plugins/plugin-directory/cli/class-import.php +++ b/wordpress.org/public_html/wp-content/plugins/plugin-directory/cli/class-import.php @@ -171,6 +171,10 @@ public function import_from_svn( $plugin_slug, $svn_changed_tags = array( 'trunk // TODO: Test and confirm that this is the correct behavior. if ( in_array( 'trunk', $svn_changed_tags ) ) { + // Backfill Release CPTs if needed. This should only happen once per plugin. + // Doing this here as a relatively safe way to distribute the load of backfilling. + Plugin_Release::instance()->maybe_backfill_releases( $plugin ); + // Create or update a 'draft' release CPT for trunk changes. // Note that this will only create a new draft if the version doesn't already exist as a release. // TODO: refine this behaviour. (Maybe compare revision numbers?) From 373d7a11b89f9ddb3a482d70fbd6c70341be8f0a Mon Sep 17 00:00:00 2001 From: StevenDufresne Date: Thu, 28 Nov 2024 06:24:20 +0000 Subject: [PATCH 40/84] Fix formatting. --- .../build/blocks/release-check-item/render.php | 2 +- .../build/blocks/release-confirmation/render.php | 4 ++-- .../wporg-plugins-2024/build/blocks/release-date/render.php | 2 -- .../wporg-plugins-2024/build/blocks/release-status/render.php | 2 +- .../src/blocks/release-check-item/render.php | 2 +- .../src/blocks/release-confirmation/render.php | 4 ++-- .../pub/wporg-plugins-2024/src/blocks/release-date/render.php | 2 -- .../wporg-plugins-2024/src/blocks/release-status/render.php | 2 +- 8 files changed, 8 insertions(+), 12 deletions(-) diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-check-item/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-check-item/render.php index 0578eaa9f3..1df49ea1ef 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-check-item/render.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-check-item/render.php @@ -1,4 +1,4 @@ -
  • > +
  • >
    attributes['status'] ) : ?> diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-confirmation/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-confirmation/render.php index 0d7f61bcfa..6e248dfe18 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-confirmation/render.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-confirmation/render.php @@ -16,12 +16,12 @@ $copy = sprintf( /* translators: %s: URL to the changeset */ - __( 'You have some unpublished changes. Would you like to release these changes?', 'wporg-plugins'), + __( 'You have some unpublished changes. Would you like to release these changes?', 'wporg-plugins' ), get_trac_changeset_link( $release_post->post_parent, $previous_version ) ); ?> -
    > +
    >
    > +
    > post_status )->label; ?>
    diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-check-item/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-check-item/render.php index 0578eaa9f3..1df49ea1ef 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-check-item/render.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-check-item/render.php @@ -1,4 +1,4 @@ -
  • > +
  • >
    attributes['status'] ) : ?> diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-confirmation/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-confirmation/render.php index 0d7f61bcfa..6e248dfe18 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-confirmation/render.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-confirmation/render.php @@ -16,12 +16,12 @@ $copy = sprintf( /* translators: %s: URL to the changeset */ - __( 'You have some unpublished changes. Would you like to release these changes?', 'wporg-plugins'), + __( 'You have some unpublished changes. Would you like to release these changes?', 'wporg-plugins' ), get_trac_changeset_link( $release_post->post_parent, $previous_version ) ); ?> -
    > +
    >
    > +
    > post_status )->label; ?>
    From db00205b283e14c9e8bba1fdca8e0678980828c5 Mon Sep 17 00:00:00 2001 From: StevenDufresne Date: Mon, 2 Dec 2024 00:30:21 +0000 Subject: [PATCH 41/84] Add a commit section. --- .../blocks/release-check-item/style-index.css | 1 + .../build/blocks/release-checks/render.php | 127 +++++--- .../blocks/release-checks/style-index.css | 4 - .../build/blocks/release-commits/block.json | 21 ++ .../blocks/release-commits/index.asset.php | 1 + .../build/blocks/release-commits/index.js | 298 ++++++++++++++++++ .../build/blocks/release-commits/render.php | 160 ++++++++++ .../blocks/release-commits/style-index.css | 25 ++ .../blocks/release-confirmation/render.php | 13 +- .../build/blocks/release-date/render.php | 4 +- .../build/blocks/release-draft/render.php | 8 +- .../build/blocks/release-flags/render.php | 21 +- .../build/blocks/release-status/render.php | 3 +- .../pub/wporg-plugins-2024/functions.php | 1 + .../src/blocks/release-check-item/style.scss | 1 + .../src/blocks/release-checks/render.php | 127 +++++--- .../src/blocks/release-checks/style.scss | 4 - .../src/blocks/release-commits/block.json | 19 ++ .../src/blocks/release-commits/index.js | 28 ++ .../src/blocks/release-commits/index.php | 22 ++ .../src/blocks/release-commits/render.php | 160 ++++++++++ .../src/blocks/release-commits/style.scss | 22 ++ .../blocks/release-confirmation/render.php | 13 +- .../src/blocks/release-date/render.php | 4 +- .../src/blocks/release-draft/render.php | 8 +- .../src/blocks/release-flags/render.php | 21 +- .../src/blocks/release-status/render.php | 3 +- 27 files changed, 989 insertions(+), 130 deletions(-) create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-commits/block.json create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-commits/index.asset.php create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-commits/index.js create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-commits/render.php create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-commits/style-index.css create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-commits/block.json create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-commits/index.js create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-commits/index.php create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-commits/render.php create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-commits/style.scss diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-check-item/style-index.css b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-check-item/style-index.css index 1d9b4a1de2..287cb2caa7 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-check-item/style-index.css +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-check-item/style-index.css @@ -6,6 +6,7 @@ margin: 0 !important; position: relative; gap: 8px; + list-style: none; } .wp-block-wporg-release-check-item > div:first-child { height: 25px; diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks/render.php index 03eaf77a0f..c8c0684631 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks/render.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks/render.php @@ -1,4 +1,8 @@ context['postId'] ); -$plugin_check_errors = get_post_meta( $release_post->ID, 'plugin_check_result', true ); +/** + * Get the counts of each error type. + * + * @param array $result The plugin check result. + * + * @return array Array of error type counts. + */ +function get_error_type_counts( $result ) { + return array_reduce( + $result ?? array(), + function ( $carry, $item ) { + if ( isset( $item['type'] ) ) { + $carry[ $item['type'] ] = ( $carry[ $item['type'] ] ?? 0 ) + 1; + } + return $carry; + }, + array( + 'ERROR' => 0, + 'WARNING' => 0, + ) + ); +} + +/** + * Get the test run message. + * + * @return string The test run message. + */ +function get_test_run_message( $plugin_check_errors ) { + + $plugin_check_link = sprintf( + '%s', + esc_url( 'https://wordpress.org/plugins/plugin-check' ), + esc_html__( 'Plugin Check (PCP)', 'wporg-plugins' ) + ); + + if ( $plugin_check_errors->verdict ) { + return sprintf( + /* translators: %1$s is a link to the Plugin Check (PCP) tool. */ + __( 'Passed the %1$s.', 'wporg-plugins' ), + $plugin_check_link + ); + } + + $counts = get_error_type_counts( $plugin_check_errors['results'] ); + + $error_message = sprintf( _n( '%s error', '%s errors', $counts['ERROR'], 'wporg-plugins' ), $counts['ERROR'] ); + $warning_message = sprintf( _n( '%s warning', '%s warnings', $counts['WARNING'], 'wporg-plugins' ), $counts['WARNING'] ); + $message = ''; + + if ( empty( $counts['ERROR'] ) ) { + $message = $warning_message; + } elseif ( empty( $counts['WARNING'] ) ) { + $message = $error_message; + } else { + /* translators: %1$s: number of errors, %2$s: number of warnings */ + $message = sprintf( + '%1$s and %2$s', + $error_message, + $warning_message + ); + } + + $mm = sprintf( + /* translators: %1$s is a link to the Plugin Check (PCP) tool. */ + __( '%1$s completed with %2$s.', 'wporg-plugins' ), + $plugin_check_link, + $message + ); + + return sprintf( + '
    %1$s
      %2$s
    ', + $mm, + format_plugin_check_results( $plugin_check_errors['results'] ), + ); +} + +$plugin_check_errors = get_post_meta( get_post( $block->context['postId'] )->ID, 'plugin_check_result', true ); -echo do_blocks( - sprintf( - ' -

    %s

    - ', - esc_html__( 'Checks', 'wporg-plugins' ) - ) +$heading = sprintf( + ' +

    %s

    + ', + esc_html__( 'Checks', 'wporg-plugins' ) ); +echo do_blocks( $heading ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped + if ( empty( $plugin_check_errors ) ) { printf( '

    %s

    ', @@ -61,40 +141,15 @@ function format_plugin_check_results( $results ) { return; } -$plugin_check_link = sprintf( - '%s', - esc_url( 'https://wordpress.org/plugins/plugin-check' ), - esc_html__( 'Plugin Check (PCP)', 'wporg-plugins' ) -); - -$message = ''; -if ( ! empty( $plugin_check_errors->verdict ) ) { - $message = sprintf( - /* translators: %1$s is a link to the Plugin Check (PCP) tool. */ - '

    ' . __( 'Passed the %1$s.', 'wporg-plugins' ) . '

    ', - $plugin_check_link - ); -} else { - $message = sprintf( - '
    %1$s%2$s
    ', - sprintf( - /* translators: %1$s is a link to the Plugin Check (PCP) tool. */ - __( '%1$s detected issues.', 'wporg-plugins' ), - $plugin_check_link - ), - format_plugin_check_results( $plugin_check_errors['results'] ) - ); -} - // Create a block with the overall status. $status_block = sprintf( '%2$s', $plugin_check_errors->verdict ? 'success' : 'error', - $message + get_test_run_message( $plugin_check_errors ) ); printf( '
      %2$s
    ', wp_kses_data( get_block_wrapper_attributes() ), - do_blocks( $status_block ) + do_blocks( $status_block ) // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks/style-index.css b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks/style-index.css index 50b379f3ab..8206df05fe 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks/style-index.css +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks/style-index.css @@ -1,10 +1,6 @@ /*!*************************************************************************************************************************************************************************************************************************************************************!*\ !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/blocks/release-checks/style.scss ***! \*************************************************************************************************************************************************************************************************************************************************************/ -.wp-block-wporg-release-checks summary { - cursor: default; -} - .wp-block-wporg-release-checks-results { margin-left: 16px; list-style: disc; diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-commits/block.json b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-commits/block.json new file mode 100644 index 0000000000..a4a2c00385 --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-commits/block.json @@ -0,0 +1,21 @@ +{ + "$schema": "https://schemas.wp.org/trunk/block.json", + "apiVersion": 2, + "name": "wporg/release-commits", + "version": "0.1.0", + "title": "Release Commits", + "category": "design", + "icon": "", + "description": "A block to display release commits.", + "textdomain": "wporg", + "attributes": {}, + "supports": { + "html": false + }, + "usesContext": [ + "postId" + ], + "editorScript": "file:./index.js", + "render": "file:./render.php", + "style": "file:./style-index.css" +} \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-commits/index.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-commits/index.asset.php new file mode 100644 index 0000000000..c7ee00d1f1 --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-commits/index.asset.php @@ -0,0 +1 @@ + array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => '5b31c659da768cc49abf'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-commits/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-commits/index.js new file mode 100644 index 0000000000..5b053c073b --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-commits/index.js @@ -0,0 +1,298 @@ +/******/ (() => { // webpackBootstrap +/******/ "use strict"; +/******/ var __webpack_modules__ = ({ + +/***/ "./src/blocks/release-commits/index.js": +/*!*********************************************!*\ + !*** ./src/blocks/release-commits/index.js ***! + \*********************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); +/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/blocks */ "@wordpress/blocks"); +/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/server-side-render */ "@wordpress/server-side-render"); +/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/block-editor */ "@wordpress/block-editor"); +/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__); +/* harmony import */ var _block_json__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./block.json */ "./src/blocks/release-commits/block.json"); +/* harmony import */ var _style_scss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./style.scss */ "./src/blocks/release-commits/style.scss"); + +/** + * WordPress dependencies + */ + + + + + +/** + * Internal dependencies + */ + + +function Edit({ + attributes, + name +}) { + return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", { + ...(0,_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__.useBlockProps)() + }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Disabled, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)((_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default()), { + block: name, + attributes: attributes + }))); +} +(0,_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__.registerBlockType)(_block_json__WEBPACK_IMPORTED_MODULE_5__.name, { + edit: Edit, + save: () => null +}); + +/***/ }), + +/***/ "./src/blocks/release-commits/style.scss": +/*!***********************************************!*\ + !*** ./src/blocks/release-commits/style.scss ***! + \***********************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +// extracted by mini-css-extract-plugin + + +/***/ }), + +/***/ "react": +/*!************************!*\ + !*** external "React" ***! + \************************/ +/***/ ((module) => { + +module.exports = window["React"]; + +/***/ }), + +/***/ "@wordpress/block-editor": +/*!*************************************!*\ + !*** external ["wp","blockEditor"] ***! + \*************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["blockEditor"]; + +/***/ }), + +/***/ "@wordpress/blocks": +/*!********************************!*\ + !*** external ["wp","blocks"] ***! + \********************************/ +/***/ ((module) => { + +module.exports = window["wp"]["blocks"]; + +/***/ }), + +/***/ "@wordpress/components": +/*!************************************!*\ + !*** external ["wp","components"] ***! + \************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["components"]; + +/***/ }), + +/***/ "@wordpress/server-side-render": +/*!******************************************!*\ + !*** external ["wp","serverSideRender"] ***! + \******************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["serverSideRender"]; + +/***/ }), + +/***/ "./src/blocks/release-commits/block.json": +/*!***********************************************!*\ + !*** ./src/blocks/release-commits/block.json ***! + \***********************************************/ +/***/ ((module) => { + +module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"wporg/release-commits","version":"0.1.0","title":"Release Commits","category":"design","icon":"","description":"A block to display release commits.","textdomain":"wporg","attributes":{},"supports":{"html":false},"usesContext":["postId"],"editorScript":"file:./index.js","render":"file:./render.php","style":"file:./style-index.css"}'); + +/***/ }) + +/******/ }); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ // no module.id needed +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = __webpack_modules__; +/******/ +/************************************************************************/ +/******/ /* webpack/runtime/chunk loaded */ +/******/ (() => { +/******/ var deferred = []; +/******/ __webpack_require__.O = (result, chunkIds, fn, priority) => { +/******/ if(chunkIds) { +/******/ priority = priority || 0; +/******/ for(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1]; +/******/ deferred[i] = [chunkIds, fn, priority]; +/******/ return; +/******/ } +/******/ var notFulfilled = Infinity; +/******/ for (var i = 0; i < deferred.length; i++) { +/******/ var chunkIds = deferred[i][0]; +/******/ var fn = deferred[i][1]; +/******/ var priority = deferred[i][2]; +/******/ var fulfilled = true; +/******/ for (var j = 0; j < chunkIds.length; j++) { +/******/ if ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) { +/******/ chunkIds.splice(j--, 1); +/******/ } else { +/******/ fulfilled = false; +/******/ if(priority < notFulfilled) notFulfilled = priority; +/******/ } +/******/ } +/******/ if(fulfilled) { +/******/ deferred.splice(i--, 1) +/******/ var r = fn(); +/******/ if (r !== undefined) result = r; +/******/ } +/******/ } +/******/ return result; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/compat get default export */ +/******/ (() => { +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = (module) => { +/******/ var getter = module && module.__esModule ? +/******/ () => (module['default']) : +/******/ () => (module); +/******/ __webpack_require__.d(getter, { a: getter }); +/******/ return getter; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/define property getters */ +/******/ (() => { +/******/ // define getter functions for harmony exports +/******/ __webpack_require__.d = (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 */ +/******/ (() => { +/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) +/******/ })(); +/******/ +/******/ /* webpack/runtime/make namespace object */ +/******/ (() => { +/******/ // define __esModule on exports +/******/ __webpack_require__.r = (exports) => { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/jsonp chunk loading */ +/******/ (() => { +/******/ // no baseURI +/******/ +/******/ // object to store loaded and loading chunks +/******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched +/******/ // [resolve, reject, Promise] = chunk loading, 0 = chunk loaded +/******/ var installedChunks = { +/******/ "blocks/release-commits/index": 0, +/******/ "blocks/release-commits/style-index": 0 +/******/ }; +/******/ +/******/ // no chunk on demand loading +/******/ +/******/ // no prefetching +/******/ +/******/ // no preloaded +/******/ +/******/ // no HMR +/******/ +/******/ // no HMR manifest +/******/ +/******/ __webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0); +/******/ +/******/ // install a JSONP callback for chunk loading +/******/ var webpackJsonpCallback = (parentChunkLoadingFunction, data) => { +/******/ var chunkIds = data[0]; +/******/ var moreModules = data[1]; +/******/ var runtime = data[2]; +/******/ // add "moreModules" to the modules object, +/******/ // then flag all "chunkIds" as loaded and fire callback +/******/ var moduleId, chunkId, i = 0; +/******/ if(chunkIds.some((id) => (installedChunks[id] !== 0))) { +/******/ for(moduleId in moreModules) { +/******/ if(__webpack_require__.o(moreModules, moduleId)) { +/******/ __webpack_require__.m[moduleId] = moreModules[moduleId]; +/******/ } +/******/ } +/******/ if(runtime) var result = runtime(__webpack_require__); +/******/ } +/******/ if(parentChunkLoadingFunction) parentChunkLoadingFunction(data); +/******/ for(;i < chunkIds.length; i++) { +/******/ chunkId = chunkIds[i]; +/******/ if(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) { +/******/ installedChunks[chunkId][0](); +/******/ } +/******/ installedChunks[chunkId] = 0; +/******/ } +/******/ return __webpack_require__.O(result); +/******/ } +/******/ +/******/ var chunkLoadingGlobal = self["webpackChunkwporg_plugins_2024"] = self["webpackChunkwporg_plugins_2024"] || []; +/******/ chunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0)); +/******/ chunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal)); +/******/ })(); +/******/ +/************************************************************************/ +/******/ +/******/ // startup +/******/ // Load entry module and return exports +/******/ // This entry module depends on other loaded chunks and execution need to be delayed +/******/ var __webpack_exports__ = __webpack_require__.O(undefined, ["blocks/release-commits/style-index"], () => (__webpack_require__("./src/blocks/release-commits/index.js"))) +/******/ __webpack_exports__ = __webpack_require__.O(__webpack_exports__); +/******/ +/******/ })() +; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-commits/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-commits/render.php new file mode 100644 index 0000000000..1f7388593b --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-commits/render.php @@ -0,0 +1,160 @@ +context['postId'] ) { + return; +} + +$commits = get_post_meta( $block->context['postId'], 'release_commit_log', true ); + +if ( empty( $commits ) ) { + return '

    ' . __( 'No commits found.', 'wporg-plugins' ) . '

    '; +} + +/** + * Count the number of files edited, added, and deleted in the given commits. + * + * @param array $commits Array of commits. + * @return array Associative array with keys 'edited', 'added', and 'deleted'. + */ +function count_file_changes( $commits ) { + $file_actions = array(); + + ksort( $commits ); + + foreach ( $commits as $commit ) { + if ( ! isset( $commit['actions'] ) || ! is_array( $commit['actions'] ) ) { + continue; + } + + foreach ( $commit['actions'] as $file_path => $action ) { + $file_actions[ $file_path ] = $action; + } + } + + $edited_files = array(); + $added_files = array(); + $deleted_files = array(); + + foreach ( $file_actions as $file_path => $action ) { + switch ( $action ) { + case 'M': + $edited_files[ $file_path ] = true; + break; + case 'A': + $added_files[ $file_path ] = true; + break; + case 'D': + $deleted_files[ $file_path ] = true; + break; + } + } + + return array( + 'edited' => count( $edited_files ), + 'added' => count( $added_files ), + 'deleted' => count( $deleted_files ), + ); +} + +/** + * Generate a summary of the changes made in the given commits. + * + * @param array $change_counts Associative array with keys 'edited', 'added', and 'deleted'. + * @return string Summary of the changes. + */ +function generate_summary( $change_counts ) { + $parts = array(); + + if ( $change_counts['added'] > 0 ) { + $parts[] = sprintf( '%d added', $change_counts['added'] ); + } + + if ( $change_counts['deleted'] > 0 ) { + $parts[] = sprintf( '%d deleted', $change_counts['deleted'] ); + } + + if ( $change_counts['edited'] > 0 ) { + $parts[] = sprintf( '%d edited', $change_counts['edited'] ); + } + + if ( empty( $parts ) ) { + return ''; + } + + return implode( ', ', $parts ); +} + +?> + +
    > + +

    %s

    + ', + esc_attr__( 'Commits', 'wporg-plugins' ) + ); + + $change_counts = count_file_changes( $commits ); + $summary = generate_summary( $change_counts ); + + $subheading = sprintf( + ' + + ', + $summary + ); + + echo do_blocks( $heading ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped + echo do_blocks( $subheading ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped + + ?> + +
      + +
    • + + ID, 20 ); ?> + display_name ); ?> + + + + context['postId'] ); + $parent_post = get_post( $release_post->post_parent ); + + if ( $parent_post ) { + printf( + '%2$s', + esc_url( + sprintf( + 'https://plugins.trac.wordpress.org/changeset/%1$s/%2$s/trunk', + $commit['revision'], + $parent_post->post_name + ) + ), + esc_html( $commit['message'] ) + ); + } + + ?> + +
    • + +
    +
    diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-commits/style-index.css b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-commits/style-index.css new file mode 100644 index 0000000000..466d264c4f --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-commits/style-index.css @@ -0,0 +1,25 @@ +/*!**************************************************************************************************************************************************************************************************************************************************************!*\ + !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/blocks/release-commits/style.scss ***! + \**************************************************************************************************************************************************************************************************************************************************************/ +.wp-block-wporg-release-commits { + margin-top: 0 !important; +} +.wp-block-wporg-release-commits ul { + display: flex; + flex-direction: column; + gap: 8px; + list-style: none; +} +.wp-block-wporg-release-commits li { + display: flex; + gap: 8px; +} + +.wp-block-wporg-release-commit-author { + display: flex; + align-items: center; + gap: 8px; + font-weight: 500; +} + +/*# sourceMappingURL=style-index.css.map*/ \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-confirmation/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-confirmation/render.php index 6e248dfe18..2d7180ab05 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-confirmation/render.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-confirmation/render.php @@ -1,6 +1,6 @@ context['postId'] ) { return; @@ -11,15 +11,6 @@ return; } -$releases = get_releases( $release_post->post_parent ); -$previous_version = get_previous_version( $release_post, $releases ); - -$copy = sprintf( - /* translators: %s: URL to the changeset */ - __( 'You have some unpublished changes. Would you like to release these changes?', 'wporg-plugins' ), - get_trac_changeset_link( $release_post->post_parent, $previous_version ) -); - ?>
    > @@ -30,7 +21,7 @@ -

    +

    diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-date/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-date/render.php index 5846cc9862..9a98437739 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-date/render.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-date/render.php @@ -9,8 +9,8 @@ return; } -if( 'publish' !== $post->post_status ) { - return; +if ( 'publish' !== $post->post_status ) { + return 3; } echo do_blocks( '' ); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft/render.php index a22d322184..8bf496ac36 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft/render.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft/render.php @@ -33,6 +33,7 @@ // Fetch the latest draft post. $latest_draft_query->the_post(); $post_title = __( 'Trunk', 'wporg-plugins' ); +$intro_text = __( 'There are unpublished changes in your trunk folder.', 'wporg-plugins' ); $markup = << @@ -53,14 +54,19 @@
    + +

    $intro_text

    + +
  • - + +
    HTML; diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-flags/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-flags/render.php index bc3c2e2470..ead61b7095 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-flags/render.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-flags/render.php @@ -1,4 +1,7 @@ context['postId'] ); +$release_post = get_post( $block->context['postId'] ); -if ( 'draft' !== $post->post_status ) { +if ( 'draft' !== $release_post->post_status ) { return; } // Warnings are currently associated to the plugin post, not the release post. -$import_warnings = get_post_meta( $post->post_parent, '_import_warnings', true ); +$import_warnings = get_post_meta( $release_post->post_parent, '_import_warnings', true ); if ( ! $import_warnings ) { return; } +// Back-compat; previously this was an array of numeric-indexed human-readable strings. if ( ! wp_is_numeric_array( $import_warnings ) ) { // error_code => error_data, convert to error_code => human_readable_error. foreach ( $import_warnings as $error_code => $error_data ) { $import_warnings[ $error_code ] = Readme_Validator::instance()->translate_code_to_message( $error_code, $error_data ); } -} else { - // Back-compat; previously this was an array of numeric-indexed human-readable strings. } $warnings = ''; @@ -48,8 +50,9 @@ esc_attr__( 'Flags', 'wporg-plugins' ) ); -printf( '
    %2$s
      %3$s
    ', - get_block_wrapper_attributes(), - do_blocks( $heading ), - do_blocks( $warnings ) +printf( + '
    %2$s
      %3$s
    ', + wp_kses_data( get_block_wrapper_attributes() ), + do_blocks( $heading ), //phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped + do_blocks( $warnings ) //phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status/render.php index 332fa3e0b3..0517e2e2f2 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status/render.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status/render.php @@ -9,10 +9,9 @@ return; } -if( 'draft' !== $post->post_status ) { +if('draft' != $post->post_s) { return; } - ?>
    > diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/functions.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/functions.php index a13d22a0b3..f8616d7f00 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/functions.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/functions.php @@ -27,6 +27,7 @@ require_once( __DIR__ . '/src/blocks/single-plugin/index.php' ); require_once( __DIR__ . '/src/blocks/plugin-card/index.php' ); require_once( __DIR__ . '/src/blocks/release-checks/index.php' ); +require_once( __DIR__ . '/src/blocks/release-commits/index.php' ); require_once( __DIR__ . '/src/blocks/release-confirmation/index.php' ); require_once( __DIR__ . '/src/blocks/release-date/index.php' ); require_once( __DIR__ . '/src/blocks/release-draft/index.php' ); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-check-item/style.scss b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-check-item/style.scss index d9e289e4e4..beed3b601f 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-check-item/style.scss +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-check-item/style.scss @@ -3,6 +3,7 @@ margin: 0 !important; position: relative; gap: 8px; + list-style: none; > div:first-child { height: 25px; diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-checks/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-checks/render.php index 03eaf77a0f..c8c0684631 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-checks/render.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-checks/render.php @@ -1,4 +1,8 @@ context['postId'] ); -$plugin_check_errors = get_post_meta( $release_post->ID, 'plugin_check_result', true ); +/** + * Get the counts of each error type. + * + * @param array $result The plugin check result. + * + * @return array Array of error type counts. + */ +function get_error_type_counts( $result ) { + return array_reduce( + $result ?? array(), + function ( $carry, $item ) { + if ( isset( $item['type'] ) ) { + $carry[ $item['type'] ] = ( $carry[ $item['type'] ] ?? 0 ) + 1; + } + return $carry; + }, + array( + 'ERROR' => 0, + 'WARNING' => 0, + ) + ); +} + +/** + * Get the test run message. + * + * @return string The test run message. + */ +function get_test_run_message( $plugin_check_errors ) { + + $plugin_check_link = sprintf( + '%s', + esc_url( 'https://wordpress.org/plugins/plugin-check' ), + esc_html__( 'Plugin Check (PCP)', 'wporg-plugins' ) + ); + + if ( $plugin_check_errors->verdict ) { + return sprintf( + /* translators: %1$s is a link to the Plugin Check (PCP) tool. */ + __( 'Passed the %1$s.', 'wporg-plugins' ), + $plugin_check_link + ); + } + + $counts = get_error_type_counts( $plugin_check_errors['results'] ); + + $error_message = sprintf( _n( '%s error', '%s errors', $counts['ERROR'], 'wporg-plugins' ), $counts['ERROR'] ); + $warning_message = sprintf( _n( '%s warning', '%s warnings', $counts['WARNING'], 'wporg-plugins' ), $counts['WARNING'] ); + $message = ''; + + if ( empty( $counts['ERROR'] ) ) { + $message = $warning_message; + } elseif ( empty( $counts['WARNING'] ) ) { + $message = $error_message; + } else { + /* translators: %1$s: number of errors, %2$s: number of warnings */ + $message = sprintf( + '%1$s and %2$s', + $error_message, + $warning_message + ); + } + + $mm = sprintf( + /* translators: %1$s is a link to the Plugin Check (PCP) tool. */ + __( '%1$s completed with %2$s.', 'wporg-plugins' ), + $plugin_check_link, + $message + ); + + return sprintf( + '
    %1$s
      %2$s
    ', + $mm, + format_plugin_check_results( $plugin_check_errors['results'] ), + ); +} + +$plugin_check_errors = get_post_meta( get_post( $block->context['postId'] )->ID, 'plugin_check_result', true ); -echo do_blocks( - sprintf( - ' -

    %s

    - ', - esc_html__( 'Checks', 'wporg-plugins' ) - ) +$heading = sprintf( + ' +

    %s

    + ', + esc_html__( 'Checks', 'wporg-plugins' ) ); +echo do_blocks( $heading ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped + if ( empty( $plugin_check_errors ) ) { printf( '

    %s

    ', @@ -61,40 +141,15 @@ function format_plugin_check_results( $results ) { return; } -$plugin_check_link = sprintf( - '%s', - esc_url( 'https://wordpress.org/plugins/plugin-check' ), - esc_html__( 'Plugin Check (PCP)', 'wporg-plugins' ) -); - -$message = ''; -if ( ! empty( $plugin_check_errors->verdict ) ) { - $message = sprintf( - /* translators: %1$s is a link to the Plugin Check (PCP) tool. */ - '

    ' . __( 'Passed the %1$s.', 'wporg-plugins' ) . '

    ', - $plugin_check_link - ); -} else { - $message = sprintf( - '
    %1$s%2$s
    ', - sprintf( - /* translators: %1$s is a link to the Plugin Check (PCP) tool. */ - __( '%1$s detected issues.', 'wporg-plugins' ), - $plugin_check_link - ), - format_plugin_check_results( $plugin_check_errors['results'] ) - ); -} - // Create a block with the overall status. $status_block = sprintf( '%2$s', $plugin_check_errors->verdict ? 'success' : 'error', - $message + get_test_run_message( $plugin_check_errors ) ); printf( '
      %2$s
    ', wp_kses_data( get_block_wrapper_attributes() ), - do_blocks( $status_block ) + do_blocks( $status_block ) // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-checks/style.scss b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-checks/style.scss index e3a0c280bd..ea945baa0f 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-checks/style.scss +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-checks/style.scss @@ -1,7 +1,3 @@ -.wp-block-wporg-release-checks summary { - cursor: default; -} - .wp-block-wporg-release-checks-results { margin-left: 16px; list-style: disc; diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-commits/block.json b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-commits/block.json new file mode 100644 index 0000000000..cf617d9e76 --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-commits/block.json @@ -0,0 +1,19 @@ +{ + "$schema": "https://schemas.wp.org/trunk/block.json", + "apiVersion": 2, + "name": "wporg/release-commits", + "version": "0.1.0", + "title": "Release Commits", + "category": "design", + "icon": "", + "description": "A block to display release commits.", + "textdomain": "wporg", + "attributes": {}, + "supports": { + "html": false + }, + "usesContext": [ "postId" ], + "editorScript": "file:./index.js", + "render": "file:./render.php", + "style": "file:./style-index.css" +} \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-commits/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-commits/index.js new file mode 100644 index 0000000000..a52cd322ed --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-commits/index.js @@ -0,0 +1,28 @@ +/** + * WordPress dependencies + */ +import { Disabled } from '@wordpress/components'; +import { registerBlockType } from '@wordpress/blocks'; +import ServerSideRender from '@wordpress/server-side-render'; +import { useBlockProps } from '@wordpress/block-editor'; + +/** + * Internal dependencies + */ +import metadata from './block.json'; +import './style.scss'; + +function Edit( { attributes, name } ) { + return ( +
    + + + +
    + ); +} + +registerBlockType( metadata.name, { + edit: Edit, + save: () => null, +} ); \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-commits/index.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-commits/index.php new file mode 100644 index 0000000000..8dcd70f684 --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-commits/index.php @@ -0,0 +1,22 @@ +context['postId'] ) { + return; +} + +$commits = get_post_meta( $block->context['postId'], 'release_commit_log', true ); + +if ( empty( $commits ) ) { + return '

    ' . __( 'No commits found.', 'wporg-plugins' ) . '

    '; +} + +/** + * Count the number of files edited, added, and deleted in the given commits. + * + * @param array $commits Array of commits. + * @return array Associative array with keys 'edited', 'added', and 'deleted'. + */ +function count_file_changes( $commits ) { + $file_actions = array(); + + ksort( $commits ); + + foreach ( $commits as $commit ) { + if ( ! isset( $commit['actions'] ) || ! is_array( $commit['actions'] ) ) { + continue; + } + + foreach ( $commit['actions'] as $file_path => $action ) { + $file_actions[ $file_path ] = $action; + } + } + + $edited_files = array(); + $added_files = array(); + $deleted_files = array(); + + foreach ( $file_actions as $file_path => $action ) { + switch ( $action ) { + case 'M': + $edited_files[ $file_path ] = true; + break; + case 'A': + $added_files[ $file_path ] = true; + break; + case 'D': + $deleted_files[ $file_path ] = true; + break; + } + } + + return array( + 'edited' => count( $edited_files ), + 'added' => count( $added_files ), + 'deleted' => count( $deleted_files ), + ); +} + +/** + * Generate a summary of the changes made in the given commits. + * + * @param array $change_counts Associative array with keys 'edited', 'added', and 'deleted'. + * @return string Summary of the changes. + */ +function generate_summary( $change_counts ) { + $parts = array(); + + if ( $change_counts['added'] > 0 ) { + $parts[] = sprintf( '%d added', $change_counts['added'] ); + } + + if ( $change_counts['deleted'] > 0 ) { + $parts[] = sprintf( '%d deleted', $change_counts['deleted'] ); + } + + if ( $change_counts['edited'] > 0 ) { + $parts[] = sprintf( '%d edited', $change_counts['edited'] ); + } + + if ( empty( $parts ) ) { + return ''; + } + + return implode( ', ', $parts ); +} + +?> + +
    > + +

    %s

    + ', + esc_attr__( 'Commits', 'wporg-plugins' ) + ); + + $change_counts = count_file_changes( $commits ); + $summary = generate_summary( $change_counts ); + + $subheading = sprintf( + ' + + ', + $summary + ); + + echo do_blocks( $heading ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped + echo do_blocks( $subheading ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped + + ?> + +
      + +
    • + + ID, 20 ); ?> + display_name ); ?> + + + + context['postId'] ); + $parent_post = get_post( $release_post->post_parent ); + + if ( $parent_post ) { + printf( + '%2$s', + esc_url( + sprintf( + 'https://plugins.trac.wordpress.org/changeset/%1$s/%2$s/trunk', + $commit['revision'], + $parent_post->post_name + ) + ), + esc_html( $commit['message'] ) + ); + } + + ?> + +
    • + +
    +
    diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-commits/style.scss b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-commits/style.scss new file mode 100644 index 0000000000..90f8d10051 --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-commits/style.scss @@ -0,0 +1,22 @@ +.wp-block-wporg-release-commits { + margin-top: 0 !important; + + ul { + display: flex; + flex-direction: column; + gap: 8px; + list-style: none; + } + + li { + display: flex; + gap: 8px; + } +} + +.wp-block-wporg-release-commit-author { + display: flex; + align-items: center; + gap: 8px; + font-weight: 500; +} \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-confirmation/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-confirmation/render.php index 6e248dfe18..2d7180ab05 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-confirmation/render.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-confirmation/render.php @@ -1,6 +1,6 @@ context['postId'] ) { return; @@ -11,15 +11,6 @@ return; } -$releases = get_releases( $release_post->post_parent ); -$previous_version = get_previous_version( $release_post, $releases ); - -$copy = sprintf( - /* translators: %s: URL to the changeset */ - __( 'You have some unpublished changes. Would you like to release these changes?', 'wporg-plugins' ), - get_trac_changeset_link( $release_post->post_parent, $previous_version ) -); - ?> > @@ -30,7 +21,7 @@ -

    +

    diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-date/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-date/render.php index 5846cc9862..9a98437739 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-date/render.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-date/render.php @@ -9,8 +9,8 @@ return; } -if( 'publish' !== $post->post_status ) { - return; +if ( 'publish' !== $post->post_status ) { + return 3; } echo do_blocks( '' ); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-draft/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-draft/render.php index a22d322184..8bf496ac36 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-draft/render.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-draft/render.php @@ -33,6 +33,7 @@ // Fetch the latest draft post. $latest_draft_query->the_post(); $post_title = __( 'Trunk', 'wporg-plugins' ); +$intro_text = __( 'There are unpublished changes in your trunk folder.', 'wporg-plugins' ); $markup = << @@ -53,14 +54,19 @@
    + +

    $intro_text

    + +
    - + +
    HTML; diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-flags/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-flags/render.php index bc3c2e2470..ead61b7095 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-flags/render.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-flags/render.php @@ -1,4 +1,7 @@ context['postId'] ); +$release_post = get_post( $block->context['postId'] ); -if ( 'draft' !== $post->post_status ) { +if ( 'draft' !== $release_post->post_status ) { return; } // Warnings are currently associated to the plugin post, not the release post. -$import_warnings = get_post_meta( $post->post_parent, '_import_warnings', true ); +$import_warnings = get_post_meta( $release_post->post_parent, '_import_warnings', true ); if ( ! $import_warnings ) { return; } +// Back-compat; previously this was an array of numeric-indexed human-readable strings. if ( ! wp_is_numeric_array( $import_warnings ) ) { // error_code => error_data, convert to error_code => human_readable_error. foreach ( $import_warnings as $error_code => $error_data ) { $import_warnings[ $error_code ] = Readme_Validator::instance()->translate_code_to_message( $error_code, $error_data ); } -} else { - // Back-compat; previously this was an array of numeric-indexed human-readable strings. } $warnings = ''; @@ -48,8 +50,9 @@ esc_attr__( 'Flags', 'wporg-plugins' ) ); -printf( '
    %2$s
      %3$s
    ', - get_block_wrapper_attributes(), - do_blocks( $heading ), - do_blocks( $warnings ) +printf( + '
    %2$s
      %3$s
    ', + wp_kses_data( get_block_wrapper_attributes() ), + do_blocks( $heading ), //phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped + do_blocks( $warnings ) //phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-status/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-status/render.php index 332fa3e0b3..0517e2e2f2 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-status/render.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-status/render.php @@ -9,10 +9,9 @@ return; } -if( 'draft' !== $post->post_status ) { +if('draft' != $post->post_s) { return; } - ?>
    > From 08c957fa09ff983f7d52c3a5d8ebfc1e367d450c Mon Sep 17 00:00:00 2001 From: StevenDufresne Date: Wed, 4 Dec 2024 05:24:49 +0000 Subject: [PATCH 42/84] Big ui changes. --- .../build/blocks/release-checks/render.php | 18 +- .../release-confirmation copy/block.json | 22 ++ .../release-confirmation copy/index.asset.php | 1 + .../blocks/release-confirmation copy/index.js | 298 ++++++++++++++++++ .../release-confirmation copy/render.php | 48 +++ .../release-confirmation copy/style-index.css | 9 + .../blocks/release-confirmation/block.json | 3 +- .../release-confirmation/index.asset.php | 2 +- .../blocks/release-confirmation/index.js | 2 +- .../blocks/release-confirmation/render.php | 2 +- .../release-confirmation/view.asset.php | 1 + .../build/blocks/release-confirmation/view.js | 112 +++++++ .../blocks/release-details-form/block.json | 22 ++ .../release-details-form/index.asset.php | 1 + .../blocks/release-details-form/index.js | 298 ++++++++++++++++++ .../blocks/release-details-form/render.php | 209 ++++++++++++ .../release-details-form/style-index.css | 17 + .../build/blocks/release-details/block.json | 22 ++ .../blocks/release-details/index.asset.php | 1 + .../build/blocks/release-details/index.js | 298 ++++++++++++++++++ .../build/blocks/release-details/render.php | 48 +++ .../blocks/release-details/style-index.css | 9 + .../blocks/release-draft copy/block.json | 23 ++ .../blocks/release-draft copy/index.asset.php | 1 + .../build/blocks/release-draft copy/index.js | 298 ++++++++++++++++++ .../blocks/release-draft copy/render.php | 121 +++++++ .../blocks/release-draft copy/style-index.css | 12 + .../build/blocks/release-draft/block.json | 3 +- .../blocks/release-draft/index.asset.php | 2 +- .../build/blocks/release-draft/index.js | 2 +- .../build/blocks/release-draft/render.php | 96 ++++-- .../blocks/release-draft/style-index.css | 3 + .../build/blocks/release-draft/view.asset.php | 1 + .../build/blocks/release-draft/view.js | 124 ++++++++ .../blocks/release-menu-options/render.php | 28 +- .../build/blocks/release-page/block.json | 23 ++ .../build/blocks/release-page/index.asset.php | 1 + .../build/blocks/release-page/index.js | 298 ++++++++++++++++++ .../build/blocks/release-page/render.php | 88 ++++++ .../build/blocks/release-page/style-index.css | 12 + .../build/blocks/release-page/view.asset.php | 1 + .../build/blocks/release-page/view.js | 136 ++++++++ .../pub/wporg-plugins-2024/functions.php | 200 ++++++++---- .../pub/wporg-plugins-2024/package.json | 4 +- .../parts/release-page.html | 5 + .../wporg-plugins-2024/parts/releases.html | 51 --- .../src/blocks/release-checks/render.php | 18 +- .../blocks/release-confirmation/block.json | 3 +- .../blocks/release-confirmation/render.php | 2 +- .../blocks/release-details-form/block.json | 20 ++ .../src/blocks/release-details-form/index.js | 28 ++ .../src/blocks/release-details-form/index.php | 22 ++ .../blocks/release-details-form/render.php | 209 ++++++++++++ .../blocks/release-details-form/style.scss | 15 + .../src/blocks/release-draft/block.json | 3 +- .../src/blocks/release-draft/render.php | 96 ++++-- .../src/blocks/release-draft/style.scss | 3 + .../blocks/release-menu-options/render.php | 28 +- .../src/blocks/release-page/block.json | 21 ++ .../src/blocks/release-page/index.js | 28 ++ .../src/blocks/release-page/index.php | 22 ++ .../src/blocks/release-page/render.php | 88 ++++++ .../src/blocks/release-page/style.scss | 8 + .../src/blocks/release-page/view.js | 75 +++++ .../template-parts/plugin-single.php | 2 +- 65 files changed, 3414 insertions(+), 253 deletions(-) create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-confirmation copy/block.json create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-confirmation copy/index.asset.php create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-confirmation copy/index.js create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-confirmation copy/render.php create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-confirmation copy/style-index.css create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-confirmation/view.asset.php create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-confirmation/view.js create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-details-form/block.json create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-details-form/index.asset.php create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-details-form/index.js create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-details-form/render.php create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-details-form/style-index.css create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-details/block.json create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-details/index.asset.php create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-details/index.js create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-details/render.php create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-details/style-index.css create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft copy/block.json create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft copy/index.asset.php create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft copy/index.js create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft copy/render.php create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft copy/style-index.css create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft/view.asset.php create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft/view.js create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-page/block.json create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-page/index.asset.php create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-page/index.js create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-page/render.php create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-page/style-index.css create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-page/view.asset.php create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-page/view.js create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/parts/release-page.html delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/parts/releases.html create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-details-form/block.json create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-details-form/index.js create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-details-form/index.php create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-details-form/render.php create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-details-form/style.scss create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-page/block.json create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-page/index.js create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-page/index.php create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-page/render.php create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-page/style.scss create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-page/view.js diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks/render.php index c8c0684631..b7a4b97b90 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks/render.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks/render.php @@ -70,6 +70,8 @@ function ( $carry, $item ) { /** * Get the test run message. + * + * @param object $plugin_check_errors The plugin check errors. * * @return string The test run message. */ @@ -108,16 +110,14 @@ function get_test_run_message( $plugin_check_errors ) { ); } - $mm = sprintf( - /* translators: %1$s is a link to the Plugin Check (PCP) tool. */ - __( '%1$s completed with %2$s.', 'wporg-plugins' ), - $plugin_check_link, - $message - ); - return sprintf( - '
    %1$s
      %2$s
    ', - $mm, + '
    %1$s%2$s
    ', + sprintf( + /* translators: %1$s is a link to the Plugin Check (PCP) tool. */ + __( '%1$s completed with %2$s.', 'wporg-plugins' ), + $plugin_check_link, + $message + ), format_plugin_check_results( $plugin_check_errors['results'] ), ); } diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-confirmation copy/block.json b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-confirmation copy/block.json new file mode 100644 index 0000000000..28d4349901 --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-confirmation copy/block.json @@ -0,0 +1,22 @@ +{ + "$schema": "https://schemas.wp.org/trunk/block.json", + "apiVersion": 2, + "name": "wporg/release-confirmation", + "version": "0.1.0", + "title": "Release Confirmation Banner.", + "category": "design", + "icon": "", + "description": "A block to display release confirmation banner.", + "textdomain": "wporg", + "attributes": {}, + "supports": { + "html": false, + "interactivity": true + }, + "usesContext": [ + "postId" + ], + "editorScript": "file:./index.js", + "render": "file:./render.php", + "style": "file:./style-index.css" +} \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-confirmation copy/index.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-confirmation copy/index.asset.php new file mode 100644 index 0000000000..2110d7526b --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-confirmation copy/index.asset.php @@ -0,0 +1 @@ + array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => '5a5bde97bad068aa014f'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-confirmation copy/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-confirmation copy/index.js new file mode 100644 index 0000000000..821030be92 --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-confirmation copy/index.js @@ -0,0 +1,298 @@ +/******/ (() => { // webpackBootstrap +/******/ "use strict"; +/******/ var __webpack_modules__ = ({ + +/***/ "./src/blocks/release-confirmation copy/index.js": +/*!*******************************************************!*\ + !*** ./src/blocks/release-confirmation copy/index.js ***! + \*******************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); +/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/blocks */ "@wordpress/blocks"); +/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/server-side-render */ "@wordpress/server-side-render"); +/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/block-editor */ "@wordpress/block-editor"); +/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__); +/* harmony import */ var _block_json__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./block.json */ "./src/blocks/release-confirmation copy/block.json"); +/* harmony import */ var _style_scss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./style.scss */ "./src/blocks/release-confirmation copy/style.scss"); + +/** + * WordPress dependencies + */ + + + + + +/** + * Internal dependencies + */ + + +function Edit({ + attributes, + name +}) { + return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", { + ...(0,_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__.useBlockProps)() + }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Disabled, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)((_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default()), { + block: name, + attributes: attributes + }))); +} +(0,_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__.registerBlockType)(_block_json__WEBPACK_IMPORTED_MODULE_5__.name, { + edit: Edit, + save: () => null +}); + +/***/ }), + +/***/ "./src/blocks/release-confirmation copy/style.scss": +/*!*********************************************************!*\ + !*** ./src/blocks/release-confirmation copy/style.scss ***! + \*********************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +// extracted by mini-css-extract-plugin + + +/***/ }), + +/***/ "react": +/*!************************!*\ + !*** external "React" ***! + \************************/ +/***/ ((module) => { + +module.exports = window["React"]; + +/***/ }), + +/***/ "@wordpress/block-editor": +/*!*************************************!*\ + !*** external ["wp","blockEditor"] ***! + \*************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["blockEditor"]; + +/***/ }), + +/***/ "@wordpress/blocks": +/*!********************************!*\ + !*** external ["wp","blocks"] ***! + \********************************/ +/***/ ((module) => { + +module.exports = window["wp"]["blocks"]; + +/***/ }), + +/***/ "@wordpress/components": +/*!************************************!*\ + !*** external ["wp","components"] ***! + \************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["components"]; + +/***/ }), + +/***/ "@wordpress/server-side-render": +/*!******************************************!*\ + !*** external ["wp","serverSideRender"] ***! + \******************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["serverSideRender"]; + +/***/ }), + +/***/ "./src/blocks/release-confirmation copy/block.json": +/*!*********************************************************!*\ + !*** ./src/blocks/release-confirmation copy/block.json ***! + \*********************************************************/ +/***/ ((module) => { + +module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"wporg/release-confirmation","version":"0.1.0","title":"Release Confirmation Banner.","category":"design","icon":"","description":"A block to display release confirmation banner.","textdomain":"wporg","attributes":{},"supports":{"html":false,"interactivity":true},"usesContext":["postId"],"editorScript":"file:./index.js","render":"file:./render.php","style":"file:./style-index.css"}'); + +/***/ }) + +/******/ }); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ // no module.id needed +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = __webpack_modules__; +/******/ +/************************************************************************/ +/******/ /* webpack/runtime/chunk loaded */ +/******/ (() => { +/******/ var deferred = []; +/******/ __webpack_require__.O = (result, chunkIds, fn, priority) => { +/******/ if(chunkIds) { +/******/ priority = priority || 0; +/******/ for(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1]; +/******/ deferred[i] = [chunkIds, fn, priority]; +/******/ return; +/******/ } +/******/ var notFulfilled = Infinity; +/******/ for (var i = 0; i < deferred.length; i++) { +/******/ var chunkIds = deferred[i][0]; +/******/ var fn = deferred[i][1]; +/******/ var priority = deferred[i][2]; +/******/ var fulfilled = true; +/******/ for (var j = 0; j < chunkIds.length; j++) { +/******/ if ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) { +/******/ chunkIds.splice(j--, 1); +/******/ } else { +/******/ fulfilled = false; +/******/ if(priority < notFulfilled) notFulfilled = priority; +/******/ } +/******/ } +/******/ if(fulfilled) { +/******/ deferred.splice(i--, 1) +/******/ var r = fn(); +/******/ if (r !== undefined) result = r; +/******/ } +/******/ } +/******/ return result; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/compat get default export */ +/******/ (() => { +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = (module) => { +/******/ var getter = module && module.__esModule ? +/******/ () => (module['default']) : +/******/ () => (module); +/******/ __webpack_require__.d(getter, { a: getter }); +/******/ return getter; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/define property getters */ +/******/ (() => { +/******/ // define getter functions for harmony exports +/******/ __webpack_require__.d = (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 */ +/******/ (() => { +/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) +/******/ })(); +/******/ +/******/ /* webpack/runtime/make namespace object */ +/******/ (() => { +/******/ // define __esModule on exports +/******/ __webpack_require__.r = (exports) => { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/jsonp chunk loading */ +/******/ (() => { +/******/ // no baseURI +/******/ +/******/ // object to store loaded and loading chunks +/******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched +/******/ // [resolve, reject, Promise] = chunk loading, 0 = chunk loaded +/******/ var installedChunks = { +/******/ "blocks/release-confirmation copy/index": 0, +/******/ "blocks/release-confirmation copy/style-index": 0 +/******/ }; +/******/ +/******/ // no chunk on demand loading +/******/ +/******/ // no prefetching +/******/ +/******/ // no preloaded +/******/ +/******/ // no HMR +/******/ +/******/ // no HMR manifest +/******/ +/******/ __webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0); +/******/ +/******/ // install a JSONP callback for chunk loading +/******/ var webpackJsonpCallback = (parentChunkLoadingFunction, data) => { +/******/ var chunkIds = data[0]; +/******/ var moreModules = data[1]; +/******/ var runtime = data[2]; +/******/ // add "moreModules" to the modules object, +/******/ // then flag all "chunkIds" as loaded and fire callback +/******/ var moduleId, chunkId, i = 0; +/******/ if(chunkIds.some((id) => (installedChunks[id] !== 0))) { +/******/ for(moduleId in moreModules) { +/******/ if(__webpack_require__.o(moreModules, moduleId)) { +/******/ __webpack_require__.m[moduleId] = moreModules[moduleId]; +/******/ } +/******/ } +/******/ if(runtime) var result = runtime(__webpack_require__); +/******/ } +/******/ if(parentChunkLoadingFunction) parentChunkLoadingFunction(data); +/******/ for(;i < chunkIds.length; i++) { +/******/ chunkId = chunkIds[i]; +/******/ if(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) { +/******/ installedChunks[chunkId][0](); +/******/ } +/******/ installedChunks[chunkId] = 0; +/******/ } +/******/ return __webpack_require__.O(result); +/******/ } +/******/ +/******/ var chunkLoadingGlobal = self["webpackChunkwporg_plugins_2024"] = self["webpackChunkwporg_plugins_2024"] || []; +/******/ chunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0)); +/******/ chunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal)); +/******/ })(); +/******/ +/************************************************************************/ +/******/ +/******/ // startup +/******/ // Load entry module and return exports +/******/ // This entry module depends on other loaded chunks and execution need to be delayed +/******/ var __webpack_exports__ = __webpack_require__.O(undefined, ["blocks/release-confirmation copy/style-index"], () => (__webpack_require__("./src/blocks/release-confirmation copy/index.js"))) +/******/ __webpack_exports__ = __webpack_require__.O(__webpack_exports__); +/******/ +/******/ })() +; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-confirmation copy/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-confirmation copy/render.php new file mode 100644 index 0000000000..88d2157e4e --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-confirmation copy/render.php @@ -0,0 +1,48 @@ +context['postId'] ) { + return; +} + +$release_post = get_post( $block->context['postId'] ); +if ( ! $release_post ) { + return; +} + +?> + +> + + + +
    +

    + + + +

    + + + +
    +
    + +
    + +
    + +
    +
    + + +
    + + diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-confirmation copy/style-index.css b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-confirmation copy/style-index.css new file mode 100644 index 0000000000..02603a1907 --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-confirmation copy/style-index.css @@ -0,0 +1,9 @@ +/*!************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/blocks/release-confirmation copy/style.scss ***! + \************************************************************************************************************************************************************************************************************************************************************************/ +.wp-block-wporg-release-confirmation .wporg-release-confirmation-actions { + display: flex; + gap: 8px; +} + +/*# sourceMappingURL=style-index.css.map*/ \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-confirmation/block.json b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-confirmation/block.json index 67d3946f1a..28d4349901 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-confirmation/block.json +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-confirmation/block.json @@ -10,7 +10,8 @@ "textdomain": "wporg", "attributes": {}, "supports": { - "html": false + "html": false, + "interactivity": true }, "usesContext": [ "postId" diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-confirmation/index.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-confirmation/index.asset.php index 2579a68552..c5dbd58a58 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-confirmation/index.asset.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-confirmation/index.asset.php @@ -1 +1 @@ - array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => '334449955bb75f1aa05a'); + array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => '9ffd986d7d7a6a67b997'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-confirmation/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-confirmation/index.js index 7565502244..cba007e3da 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-confirmation/index.js +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-confirmation/index.js @@ -121,7 +121,7 @@ module.exports = window["wp"]["serverSideRender"]; \****************************************************/ /***/ ((module) => { -module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"wporg/release-confirmation","version":"0.1.0","title":"Release Confirmation Banner.","category":"design","icon":"","description":"A block to display release confirmation banner.","textdomain":"wporg","attributes":{},"supports":{"html":false},"usesContext":["postId"],"editorScript":"file:./index.js","render":"file:./render.php","style":"file:./style-index.css"}'); +module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"wporg/release-confirmation","version":"0.1.0","title":"Release Confirmation Banner.","category":"design","icon":"","description":"A block to display release confirmation banner.","textdomain":"wporg","attributes":{},"supports":{"html":false,"interactivity":true},"usesContext":["postId"],"editorScript":"file:./index.js","render":"file:./render.php","style":"file:./style-index.css"}'); /***/ }) diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-confirmation/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-confirmation/render.php index 2d7180ab05..33ed2547e4 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-confirmation/render.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-confirmation/render.php @@ -12,7 +12,7 @@ } ?> -
    > +> diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-confirmation/view.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-confirmation/view.asset.php new file mode 100644 index 0000000000..d9d000774c --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-confirmation/view.asset.php @@ -0,0 +1 @@ + array('@wordpress/interactivity'), 'version' => '8b7df3a3fcdd5f0dfa36', 'type' => 'module'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-confirmation/view.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-confirmation/view.js new file mode 100644 index 0000000000..4c1cb46c1c --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-confirmation/view.js @@ -0,0 +1,112 @@ +import * as __WEBPACK_EXTERNAL_MODULE__wordpress_interactivity_8e89b257__ from "@wordpress/interactivity"; +/******/ var __webpack_modules__ = ({ + +/***/ "@wordpress/interactivity": +/*!*******************************************!*\ + !*** external "@wordpress/interactivity" ***! + \*******************************************/ +/***/ ((module) => { + +var x = y => { var x = {}; __webpack_require__.d(x, y); return x; } +var y = x => () => x +module.exports = __WEBPACK_EXTERNAL_MODULE__wordpress_interactivity_8e89b257__; + +/***/ }) + +/******/ }); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ // no module.id needed +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/************************************************************************/ +/******/ /* webpack/runtime/make namespace object */ +/******/ (() => { +/******/ // define __esModule on exports +/******/ __webpack_require__.r = (exports) => { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ })(); +/******/ +/************************************************************************/ +var __webpack_exports__ = {}; +// This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk. +(() => { +/*!*************************************************!*\ + !*** ./src/blocks/release-confirmation/view.js ***! + \*************************************************/ +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _wordpress_interactivity__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/interactivity */ "@wordpress/interactivity"); + +const { + state +} = (0,_wordpress_interactivity__WEBPACK_IMPORTED_MODULE_0__.store)('async-action-block', { + state: { + isWaiting: false, + isComplete: false, + errorMessage: '' + }, + actions: { + *handleSubmit(event) { + // Prevent default form submission + event.preventDefault(); + + // Set waiting state + state.isWaiting = true; + state.isComplete = false; + state.errorMessage = ''; + state.btnText = 'Processing...'; + try { + const response = yield fetch('/wp-json/async-action/v1/perform-action', { + method: 'POST', + headers: { + 'Content-Type': 'application/json' + } + }); + const data = yield response.json(); + + // Update state based on response + if (data.success) { + state.isComplete = true; + } else { + state.errorMessage = data.message || 'Action failed'; + state.btnText = 'failed'; + } + } catch (error) { + debugger; + state.btnText = 'failed...'; + state.errorMessage = 'Network error occurred'; + } finally { + // Reset waiting state + state.isWaiting = false; + } + } + } +}); +})(); + + +//# sourceMappingURL=view.js.map \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-details-form/block.json b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-details-form/block.json new file mode 100644 index 0000000000..46b5c89954 --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-details-form/block.json @@ -0,0 +1,22 @@ +{ + "$schema": "https://schemas.wp.org/trunk/block.json", + "apiVersion": 2, + "name": "wporg/release-details-form", + "version": "0.1.0", + "title": "Release Details Form", + "category": "design", + "icon": "", + "description": "A block to display release details form.", + "textdomain": "wporg", + "attributes": {}, + "supports": { + "html": false, + "interactivity": true + }, + "usesContext": [ + "postId" + ], + "editorScript": "file:./index.js", + "render": "file:./render.php", + "style": "file:./style-index.css" +} \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-details-form/index.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-details-form/index.asset.php new file mode 100644 index 0000000000..6e0f2c76c1 --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-details-form/index.asset.php @@ -0,0 +1 @@ + array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => '314ffa4356c58663de23'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-details-form/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-details-form/index.js new file mode 100644 index 0000000000..81a050b9a2 --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-details-form/index.js @@ -0,0 +1,298 @@ +/******/ (() => { // webpackBootstrap +/******/ "use strict"; +/******/ var __webpack_modules__ = ({ + +/***/ "./src/blocks/release-details-form/index.js": +/*!**************************************************!*\ + !*** ./src/blocks/release-details-form/index.js ***! + \**************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); +/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/blocks */ "@wordpress/blocks"); +/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/server-side-render */ "@wordpress/server-side-render"); +/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/block-editor */ "@wordpress/block-editor"); +/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__); +/* harmony import */ var _block_json__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./block.json */ "./src/blocks/release-details-form/block.json"); +/* harmony import */ var _style_scss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./style.scss */ "./src/blocks/release-details-form/style.scss"); + +/** + * WordPress dependencies + */ + + + + + +/** + * Internal dependencies + */ + + +function Edit({ + attributes, + name +}) { + return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", { + ...(0,_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__.useBlockProps)() + }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Disabled, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)((_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default()), { + block: name, + attributes: attributes + }))); +} +(0,_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__.registerBlockType)(_block_json__WEBPACK_IMPORTED_MODULE_5__.name, { + edit: Edit, + save: () => null +}); + +/***/ }), + +/***/ "./src/blocks/release-details-form/style.scss": +/*!****************************************************!*\ + !*** ./src/blocks/release-details-form/style.scss ***! + \****************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +// extracted by mini-css-extract-plugin + + +/***/ }), + +/***/ "react": +/*!************************!*\ + !*** external "React" ***! + \************************/ +/***/ ((module) => { + +module.exports = window["React"]; + +/***/ }), + +/***/ "@wordpress/block-editor": +/*!*************************************!*\ + !*** external ["wp","blockEditor"] ***! + \*************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["blockEditor"]; + +/***/ }), + +/***/ "@wordpress/blocks": +/*!********************************!*\ + !*** external ["wp","blocks"] ***! + \********************************/ +/***/ ((module) => { + +module.exports = window["wp"]["blocks"]; + +/***/ }), + +/***/ "@wordpress/components": +/*!************************************!*\ + !*** external ["wp","components"] ***! + \************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["components"]; + +/***/ }), + +/***/ "@wordpress/server-side-render": +/*!******************************************!*\ + !*** external ["wp","serverSideRender"] ***! + \******************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["serverSideRender"]; + +/***/ }), + +/***/ "./src/blocks/release-details-form/block.json": +/*!****************************************************!*\ + !*** ./src/blocks/release-details-form/block.json ***! + \****************************************************/ +/***/ ((module) => { + +module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"wporg/release-details-form","version":"0.1.0","title":"Release Details Form","category":"design","icon":"","description":"A block to display release details form.","textdomain":"wporg","attributes":{},"supports":{"html":false,"interactivity":true},"usesContext":["postId"],"editorScript":"file:./index.js","render":"file:./render.php","style":"file:./style-index.css"}'); + +/***/ }) + +/******/ }); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ // no module.id needed +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = __webpack_modules__; +/******/ +/************************************************************************/ +/******/ /* webpack/runtime/chunk loaded */ +/******/ (() => { +/******/ var deferred = []; +/******/ __webpack_require__.O = (result, chunkIds, fn, priority) => { +/******/ if(chunkIds) { +/******/ priority = priority || 0; +/******/ for(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1]; +/******/ deferred[i] = [chunkIds, fn, priority]; +/******/ return; +/******/ } +/******/ var notFulfilled = Infinity; +/******/ for (var i = 0; i < deferred.length; i++) { +/******/ var chunkIds = deferred[i][0]; +/******/ var fn = deferred[i][1]; +/******/ var priority = deferred[i][2]; +/******/ var fulfilled = true; +/******/ for (var j = 0; j < chunkIds.length; j++) { +/******/ if ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) { +/******/ chunkIds.splice(j--, 1); +/******/ } else { +/******/ fulfilled = false; +/******/ if(priority < notFulfilled) notFulfilled = priority; +/******/ } +/******/ } +/******/ if(fulfilled) { +/******/ deferred.splice(i--, 1) +/******/ var r = fn(); +/******/ if (r !== undefined) result = r; +/******/ } +/******/ } +/******/ return result; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/compat get default export */ +/******/ (() => { +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = (module) => { +/******/ var getter = module && module.__esModule ? +/******/ () => (module['default']) : +/******/ () => (module); +/******/ __webpack_require__.d(getter, { a: getter }); +/******/ return getter; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/define property getters */ +/******/ (() => { +/******/ // define getter functions for harmony exports +/******/ __webpack_require__.d = (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 */ +/******/ (() => { +/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) +/******/ })(); +/******/ +/******/ /* webpack/runtime/make namespace object */ +/******/ (() => { +/******/ // define __esModule on exports +/******/ __webpack_require__.r = (exports) => { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/jsonp chunk loading */ +/******/ (() => { +/******/ // no baseURI +/******/ +/******/ // object to store loaded and loading chunks +/******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched +/******/ // [resolve, reject, Promise] = chunk loading, 0 = chunk loaded +/******/ var installedChunks = { +/******/ "blocks/release-details-form/index": 0, +/******/ "blocks/release-details-form/style-index": 0 +/******/ }; +/******/ +/******/ // no chunk on demand loading +/******/ +/******/ // no prefetching +/******/ +/******/ // no preloaded +/******/ +/******/ // no HMR +/******/ +/******/ // no HMR manifest +/******/ +/******/ __webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0); +/******/ +/******/ // install a JSONP callback for chunk loading +/******/ var webpackJsonpCallback = (parentChunkLoadingFunction, data) => { +/******/ var chunkIds = data[0]; +/******/ var moreModules = data[1]; +/******/ var runtime = data[2]; +/******/ // add "moreModules" to the modules object, +/******/ // then flag all "chunkIds" as loaded and fire callback +/******/ var moduleId, chunkId, i = 0; +/******/ if(chunkIds.some((id) => (installedChunks[id] !== 0))) { +/******/ for(moduleId in moreModules) { +/******/ if(__webpack_require__.o(moreModules, moduleId)) { +/******/ __webpack_require__.m[moduleId] = moreModules[moduleId]; +/******/ } +/******/ } +/******/ if(runtime) var result = runtime(__webpack_require__); +/******/ } +/******/ if(parentChunkLoadingFunction) parentChunkLoadingFunction(data); +/******/ for(;i < chunkIds.length; i++) { +/******/ chunkId = chunkIds[i]; +/******/ if(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) { +/******/ installedChunks[chunkId][0](); +/******/ } +/******/ installedChunks[chunkId] = 0; +/******/ } +/******/ return __webpack_require__.O(result); +/******/ } +/******/ +/******/ var chunkLoadingGlobal = self["webpackChunkwporg_plugins_2024"] = self["webpackChunkwporg_plugins_2024"] || []; +/******/ chunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0)); +/******/ chunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal)); +/******/ })(); +/******/ +/************************************************************************/ +/******/ +/******/ // startup +/******/ // Load entry module and return exports +/******/ // This entry module depends on other loaded chunks and execution need to be delayed +/******/ var __webpack_exports__ = __webpack_require__.O(undefined, ["blocks/release-details-form/style-index"], () => (__webpack_require__("./src/blocks/release-details-form/index.js"))) +/******/ __webpack_exports__ = __webpack_require__.O(__webpack_exports__); +/******/ +/******/ })() +; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-details-form/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-details-form/render.php new file mode 100644 index 0000000000..7d35e07a2a --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-details-form/render.php @@ -0,0 +1,209 @@ +context['postId'] ) ) { + return; +} + +$release_post = get_post( $block->context['postId'] ); +$current_version = get_post_meta( $block->context['postId'], 'release_version', true ); +$tested_up_to = get_post_meta( $block->context['postId'], 'release_tested', true ); + +// Bail if the release post does not exist. +if ( ! $release_post ) { + return; +} + +/** + * Returns whether the tested_up_to value is recent. + * + * @param string $tested_up_to The tested up to value. + * + * @return bool Whether the tested up to value is recent. + */ +function has_recently_been_tested( $tested_up_to ) { + global $wp_version; + + // If the tested up to value is empty, it's not recent. + if ( empty( $tested_up_to ) ) { + return false; + } + + $latest_release = $wp_version; + + if ( defined( 'WP_CORE_STABLE_BRANCH' ) ) { + $latest_release = WP_CORE_STABLE_BRANCH; + } + + $tested_major = (int) explode( '.', $tested_up_to )[0]; + $latest_major = (int) explode( '.', $latest_release )[0]; + + return $tested_major >= $latest_major; +} + + +/** + * Generate the HTML for a release item content block. + * + * @param string $label The label for the item. + * @param string $value The value for the item. + * @param string $content The additional content or description. + * @return string The formatted HTML content for the release item. + */ +function get_release_item_content( $label, $value, $content ) { + return sprintf( + '
    %1$s: %2$s
    %3$s
    ', + wp_kses_post( $label ), + wp_kses_post( $value ), + wp_kses_post( $content ) + ); +} + +/** + * Generate a release check item block with a specific status. + * + * @param string $status The status of the check item ('success' or 'error'). + * @param string $content The content to display inside the block. + * @return string The formatted block content. + */ +function get_release_check_item( $status, $content ) { + return do_blocks( + sprintf( + '%2$s', + esc_attr( $status ), + $content + ) + ); +} + +/** + * Generate the block content for the version number check item. + * + * @param bool $verdict Whether the version number is valid. + * @param string $value The current version number. + * @param WP_Post $release_post The release post object. + * + * @return string The block content. + */ +function get_version_number_check_item( $verdict, $value, $release_post ) { + $label = __( 'Version number', 'wporg-plugins' ); + $info_text = __( 'It looks like plugin version was incremented appropriately.', 'wporg-plugins' ); + $status = 'success'; + + if ( ! $verdict ) { + $status = 'error'; + $info_text = __( 'Please increment your plugin\'s version number.', 'wporg-plugins' ); + } + + $content = get_release_item_content( $label, $value, $info_text ); + + return get_release_check_item( $status, $content ); +} + +/** + * Generate the block content for the "Tested up to" check item. + * + * @param string $value The tested up to value. + * @return string The block content. + */ +function get_tested_up_to_check_item( $verdict, $value, $release_post ) { + $label = __( + 'Tested up to', + 'wporg-plugins' + ); + $status = 'success'; + + $parent = get_post( $release_post->post_parent ); + + $blueprint_url = get_blueprint_url( + sprintf( + 'https://downloads.wordpress.org/plugin/%s.zip', + $parent->post_name, + ) + ); + + $info_text = sprintf( + /* translators: %s: URL to the plugin in the Plugin Directory */ + __( 'Everything looks great! Playground makes testing easy. If needed, you can test it here.', 'wporg-plugins' ), + esc_url( $blueprint_url ) + ); + + if ( empty( $value ) ) { + $value = __( 'Unknown', 'wporg-plugins' ); + $status = 'error'; + $info_text = __( 'We weren\'t able to determine your "Tested up to" value.', 'wporg-plugins' ); + } elseif ( ! $verdict ) { + $status = 'warning'; + $info_text = sprintf( + /* translators: %s: URL to the plugin in the Plugin Directory */ + __( 'Your plugin has been tested with recent versions of WordPress! Test it now in Playground.', 'wporg-plugins' ), + esc_url( $blueprint_url ) + ); + } + + $content = get_release_item_content( $label, $value, $info_text ); + + return get_release_check_item( $status, $content ); +} + +$latest_release = get_latest_release( $release_post->post_parent ); +$last_version = get_post_meta( $latest_release->ID, 'release_version', true ); +$version_pass = version_compare( $current_version, $last_version, '>' ); +$tested_up_to_pass = has_recently_been_tested( $tested_up_to ); + +?> + + +> + +

    %s

    + ', + esc_html__( 'Headers', 'wporg-plugins' ) + ) + ); +?> + +
      + + +
    + +
    +
    + +
    + +
    + +
    +
    +
    diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-details-form/style-index.css b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-details-form/style-index.css new file mode 100644 index 0000000000..c77b19ae0f --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-details-form/style-index.css @@ -0,0 +1,17 @@ +/*!*******************************************************************************************************************************************************************************************************************************************************************!*\ + !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/blocks/release-details-form/style.scss ***! + \*******************************************************************************************************************************************************************************************************************************************************************/ +.wp-block-wporg-release-details-form label { + display: block; +} +.wp-block-wporg-release-details-form ul { + padding-left: var(--wp--preset--spacing--20) !important; +} + +.wp-block-wporg-release-details-form-actions { + display: flex; + margin-top: var(--wp--preset--spacing--20); + gap: 8px; +} + +/*# sourceMappingURL=style-index.css.map*/ \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-details/block.json b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-details/block.json new file mode 100644 index 0000000000..b795ec0776 --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-details/block.json @@ -0,0 +1,22 @@ +{ + "$schema": "https://schemas.wp.org/trunk/block.json", + "apiVersion": 2, + "name": "wporg/release-details-form", + "version": "0.1.0", + "title": "Release Confirmation Banner.", + "category": "design", + "icon": "", + "description": "A block to display release confirmation banner.", + "textdomain": "wporg", + "attributes": {}, + "supports": { + "html": false, + "interactivity": true + }, + "usesContext": [ + "postId" + ], + "editorScript": "file:./index.js", + "render": "file:./render.php", + "style": "file:./style-index.css" +} \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-details/index.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-details/index.asset.php new file mode 100644 index 0000000000..36468b5ed6 --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-details/index.asset.php @@ -0,0 +1 @@ + array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => 'a8cd79e05f5d711aeba7'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-details/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-details/index.js new file mode 100644 index 0000000000..768182083e --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-details/index.js @@ -0,0 +1,298 @@ +/******/ (() => { // webpackBootstrap +/******/ "use strict"; +/******/ var __webpack_modules__ = ({ + +/***/ "./src/blocks/release-details/index.js": +/*!*********************************************!*\ + !*** ./src/blocks/release-details/index.js ***! + \*********************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); +/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/blocks */ "@wordpress/blocks"); +/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/server-side-render */ "@wordpress/server-side-render"); +/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/block-editor */ "@wordpress/block-editor"); +/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__); +/* harmony import */ var _block_json__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./block.json */ "./src/blocks/release-details/block.json"); +/* harmony import */ var _style_scss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./style.scss */ "./src/blocks/release-details/style.scss"); + +/** + * WordPress dependencies + */ + + + + + +/** + * Internal dependencies + */ + + +function Edit({ + attributes, + name +}) { + return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", { + ...(0,_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__.useBlockProps)() + }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Disabled, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)((_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default()), { + block: name, + attributes: attributes + }))); +} +(0,_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__.registerBlockType)(_block_json__WEBPACK_IMPORTED_MODULE_5__.name, { + edit: Edit, + save: () => null +}); + +/***/ }), + +/***/ "./src/blocks/release-details/style.scss": +/*!***********************************************!*\ + !*** ./src/blocks/release-details/style.scss ***! + \***********************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +// extracted by mini-css-extract-plugin + + +/***/ }), + +/***/ "react": +/*!************************!*\ + !*** external "React" ***! + \************************/ +/***/ ((module) => { + +module.exports = window["React"]; + +/***/ }), + +/***/ "@wordpress/block-editor": +/*!*************************************!*\ + !*** external ["wp","blockEditor"] ***! + \*************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["blockEditor"]; + +/***/ }), + +/***/ "@wordpress/blocks": +/*!********************************!*\ + !*** external ["wp","blocks"] ***! + \********************************/ +/***/ ((module) => { + +module.exports = window["wp"]["blocks"]; + +/***/ }), + +/***/ "@wordpress/components": +/*!************************************!*\ + !*** external ["wp","components"] ***! + \************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["components"]; + +/***/ }), + +/***/ "@wordpress/server-side-render": +/*!******************************************!*\ + !*** external ["wp","serverSideRender"] ***! + \******************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["serverSideRender"]; + +/***/ }), + +/***/ "./src/blocks/release-details/block.json": +/*!***********************************************!*\ + !*** ./src/blocks/release-details/block.json ***! + \***********************************************/ +/***/ ((module) => { + +module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"wporg/release-details-form","version":"0.1.0","title":"Release Confirmation Banner.","category":"design","icon":"","description":"A block to display release confirmation banner.","textdomain":"wporg","attributes":{},"supports":{"html":false,"interactivity":true},"usesContext":["postId"],"editorScript":"file:./index.js","render":"file:./render.php","style":"file:./style-index.css"}'); + +/***/ }) + +/******/ }); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ // no module.id needed +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = __webpack_modules__; +/******/ +/************************************************************************/ +/******/ /* webpack/runtime/chunk loaded */ +/******/ (() => { +/******/ var deferred = []; +/******/ __webpack_require__.O = (result, chunkIds, fn, priority) => { +/******/ if(chunkIds) { +/******/ priority = priority || 0; +/******/ for(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1]; +/******/ deferred[i] = [chunkIds, fn, priority]; +/******/ return; +/******/ } +/******/ var notFulfilled = Infinity; +/******/ for (var i = 0; i < deferred.length; i++) { +/******/ var chunkIds = deferred[i][0]; +/******/ var fn = deferred[i][1]; +/******/ var priority = deferred[i][2]; +/******/ var fulfilled = true; +/******/ for (var j = 0; j < chunkIds.length; j++) { +/******/ if ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) { +/******/ chunkIds.splice(j--, 1); +/******/ } else { +/******/ fulfilled = false; +/******/ if(priority < notFulfilled) notFulfilled = priority; +/******/ } +/******/ } +/******/ if(fulfilled) { +/******/ deferred.splice(i--, 1) +/******/ var r = fn(); +/******/ if (r !== undefined) result = r; +/******/ } +/******/ } +/******/ return result; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/compat get default export */ +/******/ (() => { +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = (module) => { +/******/ var getter = module && module.__esModule ? +/******/ () => (module['default']) : +/******/ () => (module); +/******/ __webpack_require__.d(getter, { a: getter }); +/******/ return getter; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/define property getters */ +/******/ (() => { +/******/ // define getter functions for harmony exports +/******/ __webpack_require__.d = (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 */ +/******/ (() => { +/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) +/******/ })(); +/******/ +/******/ /* webpack/runtime/make namespace object */ +/******/ (() => { +/******/ // define __esModule on exports +/******/ __webpack_require__.r = (exports) => { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/jsonp chunk loading */ +/******/ (() => { +/******/ // no baseURI +/******/ +/******/ // object to store loaded and loading chunks +/******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched +/******/ // [resolve, reject, Promise] = chunk loading, 0 = chunk loaded +/******/ var installedChunks = { +/******/ "blocks/release-details/index": 0, +/******/ "blocks/release-details/style-index": 0 +/******/ }; +/******/ +/******/ // no chunk on demand loading +/******/ +/******/ // no prefetching +/******/ +/******/ // no preloaded +/******/ +/******/ // no HMR +/******/ +/******/ // no HMR manifest +/******/ +/******/ __webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0); +/******/ +/******/ // install a JSONP callback for chunk loading +/******/ var webpackJsonpCallback = (parentChunkLoadingFunction, data) => { +/******/ var chunkIds = data[0]; +/******/ var moreModules = data[1]; +/******/ var runtime = data[2]; +/******/ // add "moreModules" to the modules object, +/******/ // then flag all "chunkIds" as loaded and fire callback +/******/ var moduleId, chunkId, i = 0; +/******/ if(chunkIds.some((id) => (installedChunks[id] !== 0))) { +/******/ for(moduleId in moreModules) { +/******/ if(__webpack_require__.o(moreModules, moduleId)) { +/******/ __webpack_require__.m[moduleId] = moreModules[moduleId]; +/******/ } +/******/ } +/******/ if(runtime) var result = runtime(__webpack_require__); +/******/ } +/******/ if(parentChunkLoadingFunction) parentChunkLoadingFunction(data); +/******/ for(;i < chunkIds.length; i++) { +/******/ chunkId = chunkIds[i]; +/******/ if(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) { +/******/ installedChunks[chunkId][0](); +/******/ } +/******/ installedChunks[chunkId] = 0; +/******/ } +/******/ return __webpack_require__.O(result); +/******/ } +/******/ +/******/ var chunkLoadingGlobal = self["webpackChunkwporg_plugins_2024"] = self["webpackChunkwporg_plugins_2024"] || []; +/******/ chunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0)); +/******/ chunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal)); +/******/ })(); +/******/ +/************************************************************************/ +/******/ +/******/ // startup +/******/ // Load entry module and return exports +/******/ // This entry module depends on other loaded chunks and execution need to be delayed +/******/ var __webpack_exports__ = __webpack_require__.O(undefined, ["blocks/release-details/style-index"], () => (__webpack_require__("./src/blocks/release-details/index.js"))) +/******/ __webpack_exports__ = __webpack_require__.O(__webpack_exports__); +/******/ +/******/ })() +; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-details/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-details/render.php new file mode 100644 index 0000000000..88d2157e4e --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-details/render.php @@ -0,0 +1,48 @@ +context['postId'] ) { + return; +} + +$release_post = get_post( $block->context['postId'] ); +if ( ! $release_post ) { + return; +} + +?> +
    +> + + + +
    +

    + + + +

    + + + +
    +
    + +
    + +
    + +
    +
    + + +
    + +
    diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-details/style-index.css b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-details/style-index.css new file mode 100644 index 0000000000..280fc9ee28 --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-details/style-index.css @@ -0,0 +1,9 @@ +/*!**************************************************************************************************************************************************************************************************************************************************************!*\ + !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/blocks/release-details/style.scss ***! + \**************************************************************************************************************************************************************************************************************************************************************/ +.wp-block-wporg-release-confirmation .wporg-release-confirmation-actions { + display: flex; + gap: 8px; +} + +/*# sourceMappingURL=style-index.css.map*/ \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft copy/block.json b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft copy/block.json new file mode 100644 index 0000000000..0576087f15 --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft copy/block.json @@ -0,0 +1,23 @@ +{ + "$schema": "https://schemas.wp.org/trunk/block.json", + "apiVersion": 2, + "name": "wporg/release-draft", + "version": "0.1.0", + "title": "Release Draft", + "category": "design", + "icon": "", + "description": "A block to display release draft.", + "textdomain": "wporg", + "attributes": {}, + "supports": { + "html": false, + "interactivity": true + }, + "usesContext": [ + "postId" + ], + "editorScript": "file:./index.js", + "render": "file:./render.php", + "style": "file:./style-index.css", + "viewScriptModule": "file:./view.js" +} \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft copy/index.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft copy/index.asset.php new file mode 100644 index 0000000000..15183ecb1d --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft copy/index.asset.php @@ -0,0 +1 @@ + array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => '0a0d0258a4a8da16ff3e'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft copy/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft copy/index.js new file mode 100644 index 0000000000..ae6729678d --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft copy/index.js @@ -0,0 +1,298 @@ +/******/ (() => { // webpackBootstrap +/******/ "use strict"; +/******/ var __webpack_modules__ = ({ + +/***/ "./src/blocks/release-draft copy/index.js": +/*!************************************************!*\ + !*** ./src/blocks/release-draft copy/index.js ***! + \************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); +/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/blocks */ "@wordpress/blocks"); +/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/server-side-render */ "@wordpress/server-side-render"); +/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/block-editor */ "@wordpress/block-editor"); +/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__); +/* harmony import */ var _block_json__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./block.json */ "./src/blocks/release-draft copy/block.json"); +/* harmony import */ var _style_scss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./style.scss */ "./src/blocks/release-draft copy/style.scss"); + +/** + * WordPress dependencies + */ + + + + + +/** + * Internal dependencies + */ + + +function Edit({ + attributes, + name +}) { + return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", { + ...(0,_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__.useBlockProps)() + }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Disabled, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)((_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default()), { + block: name, + attributes: attributes + }))); +} +(0,_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__.registerBlockType)(_block_json__WEBPACK_IMPORTED_MODULE_5__.name, { + edit: Edit, + save: () => null +}); + +/***/ }), + +/***/ "./src/blocks/release-draft copy/style.scss": +/*!**************************************************!*\ + !*** ./src/blocks/release-draft copy/style.scss ***! + \**************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +// extracted by mini-css-extract-plugin + + +/***/ }), + +/***/ "react": +/*!************************!*\ + !*** external "React" ***! + \************************/ +/***/ ((module) => { + +module.exports = window["React"]; + +/***/ }), + +/***/ "@wordpress/block-editor": +/*!*************************************!*\ + !*** external ["wp","blockEditor"] ***! + \*************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["blockEditor"]; + +/***/ }), + +/***/ "@wordpress/blocks": +/*!********************************!*\ + !*** external ["wp","blocks"] ***! + \********************************/ +/***/ ((module) => { + +module.exports = window["wp"]["blocks"]; + +/***/ }), + +/***/ "@wordpress/components": +/*!************************************!*\ + !*** external ["wp","components"] ***! + \************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["components"]; + +/***/ }), + +/***/ "@wordpress/server-side-render": +/*!******************************************!*\ + !*** external ["wp","serverSideRender"] ***! + \******************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["serverSideRender"]; + +/***/ }), + +/***/ "./src/blocks/release-draft copy/block.json": +/*!**************************************************!*\ + !*** ./src/blocks/release-draft copy/block.json ***! + \**************************************************/ +/***/ ((module) => { + +module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"wporg/release-draft","version":"0.1.0","title":"Release Draft","category":"design","icon":"","description":"A block to display release draft.","textdomain":"wporg","attributes":{},"supports":{"html":false,"interactivity":true},"usesContext":["postId"],"editorScript":"file:./index.js","render":"file:./render.php","style":"file:./style-index.css","viewScriptModule":"file:./view.js"}'); + +/***/ }) + +/******/ }); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ // no module.id needed +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = __webpack_modules__; +/******/ +/************************************************************************/ +/******/ /* webpack/runtime/chunk loaded */ +/******/ (() => { +/******/ var deferred = []; +/******/ __webpack_require__.O = (result, chunkIds, fn, priority) => { +/******/ if(chunkIds) { +/******/ priority = priority || 0; +/******/ for(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1]; +/******/ deferred[i] = [chunkIds, fn, priority]; +/******/ return; +/******/ } +/******/ var notFulfilled = Infinity; +/******/ for (var i = 0; i < deferred.length; i++) { +/******/ var chunkIds = deferred[i][0]; +/******/ var fn = deferred[i][1]; +/******/ var priority = deferred[i][2]; +/******/ var fulfilled = true; +/******/ for (var j = 0; j < chunkIds.length; j++) { +/******/ if ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) { +/******/ chunkIds.splice(j--, 1); +/******/ } else { +/******/ fulfilled = false; +/******/ if(priority < notFulfilled) notFulfilled = priority; +/******/ } +/******/ } +/******/ if(fulfilled) { +/******/ deferred.splice(i--, 1) +/******/ var r = fn(); +/******/ if (r !== undefined) result = r; +/******/ } +/******/ } +/******/ return result; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/compat get default export */ +/******/ (() => { +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = (module) => { +/******/ var getter = module && module.__esModule ? +/******/ () => (module['default']) : +/******/ () => (module); +/******/ __webpack_require__.d(getter, { a: getter }); +/******/ return getter; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/define property getters */ +/******/ (() => { +/******/ // define getter functions for harmony exports +/******/ __webpack_require__.d = (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 */ +/******/ (() => { +/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) +/******/ })(); +/******/ +/******/ /* webpack/runtime/make namespace object */ +/******/ (() => { +/******/ // define __esModule on exports +/******/ __webpack_require__.r = (exports) => { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/jsonp chunk loading */ +/******/ (() => { +/******/ // no baseURI +/******/ +/******/ // object to store loaded and loading chunks +/******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched +/******/ // [resolve, reject, Promise] = chunk loading, 0 = chunk loaded +/******/ var installedChunks = { +/******/ "blocks/release-draft copy/index": 0, +/******/ "blocks/release-draft copy/style-index": 0 +/******/ }; +/******/ +/******/ // no chunk on demand loading +/******/ +/******/ // no prefetching +/******/ +/******/ // no preloaded +/******/ +/******/ // no HMR +/******/ +/******/ // no HMR manifest +/******/ +/******/ __webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0); +/******/ +/******/ // install a JSONP callback for chunk loading +/******/ var webpackJsonpCallback = (parentChunkLoadingFunction, data) => { +/******/ var chunkIds = data[0]; +/******/ var moreModules = data[1]; +/******/ var runtime = data[2]; +/******/ // add "moreModules" to the modules object, +/******/ // then flag all "chunkIds" as loaded and fire callback +/******/ var moduleId, chunkId, i = 0; +/******/ if(chunkIds.some((id) => (installedChunks[id] !== 0))) { +/******/ for(moduleId in moreModules) { +/******/ if(__webpack_require__.o(moreModules, moduleId)) { +/******/ __webpack_require__.m[moduleId] = moreModules[moduleId]; +/******/ } +/******/ } +/******/ if(runtime) var result = runtime(__webpack_require__); +/******/ } +/******/ if(parentChunkLoadingFunction) parentChunkLoadingFunction(data); +/******/ for(;i < chunkIds.length; i++) { +/******/ chunkId = chunkIds[i]; +/******/ if(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) { +/******/ installedChunks[chunkId][0](); +/******/ } +/******/ installedChunks[chunkId] = 0; +/******/ } +/******/ return __webpack_require__.O(result); +/******/ } +/******/ +/******/ var chunkLoadingGlobal = self["webpackChunkwporg_plugins_2024"] = self["webpackChunkwporg_plugins_2024"] || []; +/******/ chunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0)); +/******/ chunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal)); +/******/ })(); +/******/ +/************************************************************************/ +/******/ +/******/ // startup +/******/ // Load entry module and return exports +/******/ // This entry module depends on other loaded chunks and execution need to be delayed +/******/ var __webpack_exports__ = __webpack_require__.O(undefined, ["blocks/release-draft copy/style-index"], () => (__webpack_require__("./src/blocks/release-draft copy/index.js"))) +/******/ __webpack_exports__ = __webpack_require__.O(__webpack_exports__); +/******/ +/******/ })() +; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft copy/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft copy/render.php new file mode 100644 index 0000000000..1ca2e7dc9c --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft copy/render.php @@ -0,0 +1,121 @@ +context['postId'] ) { + return; +} + +$post = get_post( $block->context['postId'] ); + +if ( ! $post ) { + return; +} + +// get release for the post +$query_args = array( + 'post_type' => 'plugin_release', + 'posts_per_page' => 1, + 'post_parent' => $post->ID, + 'orderby' => 'date', + 'post_status' => 'draft', + 'order' => 'DESC', +); + +$latest_draft_query = new WP_Query( $query_args ); + +if ( ! $latest_draft_query->have_posts() ) { + return; +} + +// Fetch the latest draft post. +$latest_draft_query->the_post(); +$post_title = __( 'Trunk', 'wporg-plugins' ); +$intro_text = __( 'There are unpublished changes in your trunk folder.', 'wporg-plugins' ); + +$publish_title = __( 'Create release', 'wporg-plugins' ); +$publish_intro_text = __( 'Before releasing your plugin, take a moment to verify and update the following:', 'wporg-plugins' ); +$publish_button_text = __( 'Create release', 'wporg-plugins' ); + +$markup = << + +
    + +
    + +
    + + +
    + +

    + $post_title +

    + + +
    + + + +

    $intro_text

    + + +
    + +
    + + + +
    + + +
    + +
    +
    + +
    +
    + +
    + +
    + +
    + +
    + +
    + +

    + $publish_title +

    + +
    + + + +

    $publish_intro_text

    + + + +
    + +
    + +HTML; + +printf( + '
    %3$s
    ', + 'data-wp-interactive="async-action-block"', + wp_kses_data( get_block_wrapper_attributes() ), + do_blocks( $markup ) // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped +); + +// Reset global post data. +wp_reset_postdata(); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft copy/style-index.css b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft copy/style-index.css new file mode 100644 index 0000000000..c229af784c --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft copy/style-index.css @@ -0,0 +1,12 @@ +/*!*****************************************************************************************************************************************************************************************************************************************************************!*\ + !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/blocks/release-draft copy/style.scss ***! + \*****************************************************************************************************************************************************************************************************************************************************************/ +.wp-block-wporg-release-draft { + font-size: var(--wp--preset--font-size--small); +} +.wp-block-wporg-release-draft ul { + margin-top: var(--wp--preset--spacing--10); + padding: 0; +} + +/*# sourceMappingURL=style-index.css.map*/ \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft/block.json b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft/block.json index 506c98d01a..c7b597f270 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft/block.json +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft/block.json @@ -10,7 +10,8 @@ "textdomain": "wporg", "attributes": {}, "supports": { - "html": false + "html": false, + "interactivity": true }, "usesContext": [ "postId" diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft/index.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft/index.asset.php index a8b55d998c..12b7e1303a 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft/index.asset.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft/index.asset.php @@ -1 +1 @@ - array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => '3460be93c524b3be33b1'); + array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => '4e12b6eb8d27834cbced'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft/index.js index 434270b126..8eecd7890d 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft/index.js +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft/index.js @@ -121,7 +121,7 @@ module.exports = window["wp"]["serverSideRender"]; \*********************************************/ /***/ ((module) => { -module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"wporg/release-draft","version":"0.1.0","title":"Release Draft","category":"design","icon":"","description":"A block to display release draft.","textdomain":"wporg","attributes":{},"supports":{"html":false},"usesContext":["postId"],"editorScript":"file:./index.js","render":"file:./render.php","style":"file:./style-index.css"}'); +module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"wporg/release-draft","version":"0.1.0","title":"Release Draft","category":"design","icon":"","description":"A block to display release draft.","textdomain":"wporg","attributes":{},"supports":{"html":false,"interactivity":true},"usesContext":["postId"],"editorScript":"file:./index.js","render":"file:./render.php","style":"file:./style-index.css"}'); /***/ }) diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft/render.php index 8bf496ac36..f412bc815f 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft/render.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft/render.php @@ -15,14 +15,14 @@ } // get release for the post -$query_args = [ +$query_args = array( 'post_type' => 'plugin_release', 'posts_per_page' => 1, 'post_parent' => $post->ID, 'orderby' => 'date', 'post_status' => 'draft', 'order' => 'DESC', -]; +); $latest_draft_query = new WP_Query( $query_args ); @@ -35,46 +35,86 @@ $post_title = __( 'Trunk', 'wporg-plugins' ); $intro_text = __( 'There are unpublished changes in your trunk folder.', 'wporg-plugins' ); +$publish_title = __( 'Create release', 'wporg-plugins' ); +$publish_intro_text = __( 'Before releasing your plugin, take a moment to verify and update the following values:', 'wporg-plugins' ); +$publish_button_text = __( 'Create release', 'wporg-plugins' ); + $markup = << -
    +
    + +
    -
    -
    + +
    - -
    - -

    - $post_title -

    - - -
    - + +
    + +

    + $post_title +

    + + +
    + - -

    $intro_text

    - + +

    $intro_text

    + -
    - +
    + +
    + + + +
    + + +
    + +
    +
    + +
    +
    + +
    + +
    + +
    + +
    + +

    + $publish_title +

    + +
    + + + +

    $publish_intro_text

    + - - - - +
    +
    + HTML; printf( - '
    %2$s
    ', - get_block_wrapper_attributes(), - do_blocks( $markup ) + '
    %3$s
    ', + 'data-wp-interactive="async-action-block"', + wp_kses_data( get_block_wrapper_attributes() ), + do_blocks( $markup ) // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ); // Reset global post data. diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft/style-index.css b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft/style-index.css index c3646bdf7f..c62356a785 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft/style-index.css +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft/style-index.css @@ -7,6 +7,9 @@ .wp-block-wporg-release-draft ul { margin-top: var(--wp--preset--spacing--10); padding: 0; + display: flex; + flex-direction: column; + gap: 12px; } /*# sourceMappingURL=style-index.css.map*/ \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft/view.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft/view.asset.php new file mode 100644 index 0000000000..cb485ea595 --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft/view.asset.php @@ -0,0 +1 @@ + array('@wordpress/interactivity'), 'version' => '63814ecbf0fd013d56ae', 'type' => 'module'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft/view.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft/view.js new file mode 100644 index 0000000000..75e14f6d6d --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft/view.js @@ -0,0 +1,124 @@ +import * as __WEBPACK_EXTERNAL_MODULE__wordpress_interactivity_8e89b257__ from "@wordpress/interactivity"; +/******/ var __webpack_modules__ = ({ + +/***/ "@wordpress/interactivity": +/*!*******************************************!*\ + !*** external "@wordpress/interactivity" ***! + \*******************************************/ +/***/ ((module) => { + +var x = y => { var x = {}; __webpack_require__.d(x, y); return x; } +var y = x => () => x +module.exports = __WEBPACK_EXTERNAL_MODULE__wordpress_interactivity_8e89b257__; + +/***/ }) + +/******/ }); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ // no module.id needed +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/************************************************************************/ +/******/ /* webpack/runtime/make namespace object */ +/******/ (() => { +/******/ // define __esModule on exports +/******/ __webpack_require__.r = (exports) => { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ })(); +/******/ +/************************************************************************/ +var __webpack_exports__ = {}; +// This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk. +(() => { +/*!******************************************!*\ + !*** ./src/blocks/release-draft/view.js ***! + \******************************************/ +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _wordpress_interactivity__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/interactivity */ "@wordpress/interactivity"); +/** + * WordPress dependencies + */ + +const { + state +} = (0,_wordpress_interactivity__WEBPACK_IMPORTED_MODULE_0__.store)('async-action-block', { + state: { + preSubmitting: false, + isWaiting: false, + isComplete: false, + errorMessage: '' + }, + actions: { + handlePreSubmit(event) { + event.preventDefault(); + console.log('called'); + state.preSubmitting = true; + }, + handleBackClick(event) { + event.preventDefault(); + state.preSubmitting = false; + }, + *handleSubmit(event) { + // Prevent default form submission + event.preventDefault(); + + // Set waiting state + state.isWaiting = true; + state.isComplete = false; + state.errorMessage = ''; + state.btnText = 'Processing...'; + try { + const response = yield fetch('/plugins/wp-json/plugins/v2/plugin/clapback/release', { + method: 'POST', + headers: { + 'Content-Type': 'application/json' + } + }); + const data = yield response.json(); + + // Update state based on response + if (data.success) { + state.isComplete = true; + } else { + state.errorMessage = data.message || 'Action failed'; + state.btnText = 'failed'; + } + } catch (error) { + debugger; + state.btnText = 'failed...'; + state.errorMessage = 'Network error occurred'; + } finally { + state.isWaiting = false; + } + } + } +}); +})(); + + +//# sourceMappingURL=view.js.map \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-menu-options/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-menu-options/render.php index c46a09738a..4eda65229d 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-menu-options/render.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-menu-options/render.php @@ -1,7 +1,7 @@ context['postId'] ) { return; @@ -14,30 +14,10 @@ $current_version = get_post_meta( $release_post->ID, 'release_version', true ); -/** - * Blueprint is base64 encoded to be passed as a URL parameter. - * - * @see https://wordpress.github.io/wordpress-playground/blueprints/tutorial/how-to-load-run-blueprints#base64-encoded-blueprints - */ -$blueprint = wp_json_encode( [ - 'login' => true, - 'steps' => [ - [ - 'step' => 'installPlugin', - 'pluginData' => [ - 'resource' => 'url', - 'url' => Template::download_link( $release_post->post_parent, $current_version ) - ] - ] - ] -] ); - -$encoded_blueprint_url = 'https://playground.wordpress.net/#' . base64_encode( $blueprint ); - $download_link = sprintf( '', esc_html( 'Download', 'wporg-plugins' ), - esc_url( $download_link ) + esc_url( get_blueprint_url( Template::download_link( $release_post->post_parent, $current_version ) ) ) ); $blueprint_link = sprintf( @@ -46,8 +26,8 @@ esc_url( $encoded_blueprint_url ) ); -$changes_link = ''; -$releases = get_releases( $release_post->post_parent ); +$changes_link = ''; +$releases = get_releases( $release_post->post_parent ); $previous_version = get_previous_version( $release_post, $releases ); if ( null !== $previous_version ) { diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-page/block.json b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-page/block.json new file mode 100644 index 0000000000..17031f1e25 --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-page/block.json @@ -0,0 +1,23 @@ +{ + "$schema": "https://schemas.wp.org/trunk/block.json", + "apiVersion": 2, + "name": "wporg/release-page", + "version": "0.1.0", + "title": "Release Page", + "category": "design", + "icon": "", + "description": "A block to display release page.", + "textdomain": "wporg", + "attributes": {}, + "supports": { + "html": false, + "interactivity": true + }, + "usesContext": [ + "postId" + ], + "editorScript": "file:./index.js", + "render": "file:./render.php", + "style": "file:./style-index.css", + "viewScriptModule": "file:./view.js" +} \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-page/index.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-page/index.asset.php new file mode 100644 index 0000000000..fac12a13c3 --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-page/index.asset.php @@ -0,0 +1 @@ + array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => '865d514ec640755ece87'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-page/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-page/index.js new file mode 100644 index 0000000000..0f6a4e1cac --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-page/index.js @@ -0,0 +1,298 @@ +/******/ (() => { // webpackBootstrap +/******/ "use strict"; +/******/ var __webpack_modules__ = ({ + +/***/ "./src/blocks/release-page/index.js": +/*!******************************************!*\ + !*** ./src/blocks/release-page/index.js ***! + \******************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); +/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/blocks */ "@wordpress/blocks"); +/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/server-side-render */ "@wordpress/server-side-render"); +/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/block-editor */ "@wordpress/block-editor"); +/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__); +/* harmony import */ var _block_json__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./block.json */ "./src/blocks/release-page/block.json"); +/* harmony import */ var _style_scss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./style.scss */ "./src/blocks/release-page/style.scss"); + +/** + * WordPress dependencies + */ + + + + + +/** + * Internal dependencies + */ + + +function Edit({ + attributes, + name +}) { + return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", { + ...(0,_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__.useBlockProps)() + }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Disabled, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)((_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default()), { + block: name, + attributes: attributes + }))); +} +(0,_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__.registerBlockType)(_block_json__WEBPACK_IMPORTED_MODULE_5__.name, { + edit: Edit, + save: () => null +}); + +/***/ }), + +/***/ "./src/blocks/release-page/style.scss": +/*!********************************************!*\ + !*** ./src/blocks/release-page/style.scss ***! + \********************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +// extracted by mini-css-extract-plugin + + +/***/ }), + +/***/ "react": +/*!************************!*\ + !*** external "React" ***! + \************************/ +/***/ ((module) => { + +module.exports = window["React"]; + +/***/ }), + +/***/ "@wordpress/block-editor": +/*!*************************************!*\ + !*** external ["wp","blockEditor"] ***! + \*************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["blockEditor"]; + +/***/ }), + +/***/ "@wordpress/blocks": +/*!********************************!*\ + !*** external ["wp","blocks"] ***! + \********************************/ +/***/ ((module) => { + +module.exports = window["wp"]["blocks"]; + +/***/ }), + +/***/ "@wordpress/components": +/*!************************************!*\ + !*** external ["wp","components"] ***! + \************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["components"]; + +/***/ }), + +/***/ "@wordpress/server-side-render": +/*!******************************************!*\ + !*** external ["wp","serverSideRender"] ***! + \******************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["serverSideRender"]; + +/***/ }), + +/***/ "./src/blocks/release-page/block.json": +/*!********************************************!*\ + !*** ./src/blocks/release-page/block.json ***! + \********************************************/ +/***/ ((module) => { + +module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"wporg/release-page","version":"0.1.0","title":"Release Page","category":"design","icon":"","description":"A block to display release page.","textdomain":"wporg","attributes":{},"supports":{"html":false,"interactivity":true},"usesContext":["postId"],"editorScript":"file:./index.js","render":"file:./render.php","style":"file:./style-index.css","viewScriptModule":"file:./view.js"}'); + +/***/ }) + +/******/ }); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ // no module.id needed +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = __webpack_modules__; +/******/ +/************************************************************************/ +/******/ /* webpack/runtime/chunk loaded */ +/******/ (() => { +/******/ var deferred = []; +/******/ __webpack_require__.O = (result, chunkIds, fn, priority) => { +/******/ if(chunkIds) { +/******/ priority = priority || 0; +/******/ for(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1]; +/******/ deferred[i] = [chunkIds, fn, priority]; +/******/ return; +/******/ } +/******/ var notFulfilled = Infinity; +/******/ for (var i = 0; i < deferred.length; i++) { +/******/ var chunkIds = deferred[i][0]; +/******/ var fn = deferred[i][1]; +/******/ var priority = deferred[i][2]; +/******/ var fulfilled = true; +/******/ for (var j = 0; j < chunkIds.length; j++) { +/******/ if ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) { +/******/ chunkIds.splice(j--, 1); +/******/ } else { +/******/ fulfilled = false; +/******/ if(priority < notFulfilled) notFulfilled = priority; +/******/ } +/******/ } +/******/ if(fulfilled) { +/******/ deferred.splice(i--, 1) +/******/ var r = fn(); +/******/ if (r !== undefined) result = r; +/******/ } +/******/ } +/******/ return result; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/compat get default export */ +/******/ (() => { +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = (module) => { +/******/ var getter = module && module.__esModule ? +/******/ () => (module['default']) : +/******/ () => (module); +/******/ __webpack_require__.d(getter, { a: getter }); +/******/ return getter; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/define property getters */ +/******/ (() => { +/******/ // define getter functions for harmony exports +/******/ __webpack_require__.d = (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 */ +/******/ (() => { +/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) +/******/ })(); +/******/ +/******/ /* webpack/runtime/make namespace object */ +/******/ (() => { +/******/ // define __esModule on exports +/******/ __webpack_require__.r = (exports) => { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/jsonp chunk loading */ +/******/ (() => { +/******/ // no baseURI +/******/ +/******/ // object to store loaded and loading chunks +/******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched +/******/ // [resolve, reject, Promise] = chunk loading, 0 = chunk loaded +/******/ var installedChunks = { +/******/ "blocks/release-page/index": 0, +/******/ "blocks/release-page/style-index": 0 +/******/ }; +/******/ +/******/ // no chunk on demand loading +/******/ +/******/ // no prefetching +/******/ +/******/ // no preloaded +/******/ +/******/ // no HMR +/******/ +/******/ // no HMR manifest +/******/ +/******/ __webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0); +/******/ +/******/ // install a JSONP callback for chunk loading +/******/ var webpackJsonpCallback = (parentChunkLoadingFunction, data) => { +/******/ var chunkIds = data[0]; +/******/ var moreModules = data[1]; +/******/ var runtime = data[2]; +/******/ // add "moreModules" to the modules object, +/******/ // then flag all "chunkIds" as loaded and fire callback +/******/ var moduleId, chunkId, i = 0; +/******/ if(chunkIds.some((id) => (installedChunks[id] !== 0))) { +/******/ for(moduleId in moreModules) { +/******/ if(__webpack_require__.o(moreModules, moduleId)) { +/******/ __webpack_require__.m[moduleId] = moreModules[moduleId]; +/******/ } +/******/ } +/******/ if(runtime) var result = runtime(__webpack_require__); +/******/ } +/******/ if(parentChunkLoadingFunction) parentChunkLoadingFunction(data); +/******/ for(;i < chunkIds.length; i++) { +/******/ chunkId = chunkIds[i]; +/******/ if(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) { +/******/ installedChunks[chunkId][0](); +/******/ } +/******/ installedChunks[chunkId] = 0; +/******/ } +/******/ return __webpack_require__.O(result); +/******/ } +/******/ +/******/ var chunkLoadingGlobal = self["webpackChunkwporg_plugins_2024"] = self["webpackChunkwporg_plugins_2024"] || []; +/******/ chunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0)); +/******/ chunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal)); +/******/ })(); +/******/ +/************************************************************************/ +/******/ +/******/ // startup +/******/ // Load entry module and return exports +/******/ // This entry module depends on other loaded chunks and execution need to be delayed +/******/ var __webpack_exports__ = __webpack_require__.O(undefined, ["blocks/release-page/style-index"], () => (__webpack_require__("./src/blocks/release-page/index.js"))) +/******/ __webpack_exports__ = __webpack_require__.O(__webpack_exports__); +/******/ +/******/ })() +; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-page/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-page/render.php new file mode 100644 index 0000000000..878b57533b --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-page/render.php @@ -0,0 +1,88 @@ +ID ); + +if ( ! $release_post ) { + return; +} + +// Why use `do_blocks` here? for some reason, just outputting the content directly doesn't work and context gets messed up. +$markup = << +

    Releases

    + + + + +
    + + + + + + +
    + + +
    + +
    + +
    + + +
    + + + +
    + +
    + +
    + + +
    + + + + + + + + + + +

    There are no releases yet

    + + + +
    + +
    +HTML; + + +// Interactivity API context +$form_context = array( + 'btnDefaultText' => 'Publish release', + 'btnLoadingText' => 'Publishing...', + 'preSubmitting' => false, + 'isWaiting' => false, + 'isComplete' => false, + 'errorMessage' => '', + 'pluginSlug' => $release_post->post_name, + 'nonce' => wp_create_nonce( 'wp_rest' ) +); + +printf( + '
    %4$s
    ', + 'data-wp-interactive="async-action-block"', + wp_kses_data( get_block_wrapper_attributes() ), + wp_interactivity_data_wp_context( $form_context ), // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped + do_blocks( $markup ) // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped +); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-page/style-index.css b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-page/style-index.css new file mode 100644 index 0000000000..324dbabc5e --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-page/style-index.css @@ -0,0 +1,12 @@ +/*!***********************************************************************************************************************************************************************************************************************************************************!*\ + !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/blocks/release-page/style.scss ***! + \***********************************************************************************************************************************************************************************************************************************************************/ +.wp-block-wporg-release-draft { + font-size: var(--wp--preset--font-size--small); +} +.wp-block-wporg-release-draft ul { + margin-top: var(--wp--preset--spacing--10); + padding: 0; +} + +/*# sourceMappingURL=style-index.css.map*/ \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-page/view.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-page/view.asset.php new file mode 100644 index 0000000000..ba0cb7c190 --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-page/view.asset.php @@ -0,0 +1 @@ + array('@wordpress/interactivity'), 'version' => '47b004f489f4a572490c', 'type' => 'module'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-page/view.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-page/view.js new file mode 100644 index 0000000000..97204c48c2 --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-page/view.js @@ -0,0 +1,136 @@ +import * as __WEBPACK_EXTERNAL_MODULE__wordpress_interactivity_8e89b257__ from "@wordpress/interactivity"; +/******/ var __webpack_modules__ = ({ + +/***/ "@wordpress/interactivity": +/*!*******************************************!*\ + !*** external "@wordpress/interactivity" ***! + \*******************************************/ +/***/ ((module) => { + +var x = y => { var x = {}; __webpack_require__.d(x, y); return x; } +var y = x => () => x +module.exports = __WEBPACK_EXTERNAL_MODULE__wordpress_interactivity_8e89b257__; + +/***/ }) + +/******/ }); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ // no module.id needed +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/************************************************************************/ +/******/ /* webpack/runtime/make namespace object */ +/******/ (() => { +/******/ // define __esModule on exports +/******/ __webpack_require__.r = (exports) => { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ })(); +/******/ +/************************************************************************/ +var __webpack_exports__ = {}; +// This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk. +(() => { +/*!*****************************************!*\ + !*** ./src/blocks/release-page/view.js ***! + \*****************************************/ +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _wordpress_interactivity__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/interactivity */ "@wordpress/interactivity"); +/** + * WordPress dependencies + */ + +const { + state +} = (0,_wordpress_interactivity__WEBPACK_IMPORTED_MODULE_0__.store)('async-action-block', { + state: { + get btnText() { + const { + btnDefaultText, + btnLoadingText + } = (0,_wordpress_interactivity__WEBPACK_IMPORTED_MODULE_0__.getContext)(); + return state.isWaiting ? btnLoadingText : btnDefaultText; + } + }, + actions: { + handlePreSubmit(event) { + event.preventDefault(); + state.preSubmitting = true; + const element = document.querySelector('.wp-block-wporg-release-page'); + if (element) { + element.scrollIntoView({ + behavior: 'instant', + block: 'center' + }); + } + }, + handleBackClick(event) { + event.preventDefault(); + state.preSubmitting = false; + }, + *handleSubmit(event) { + // Prevent default form submission + event.preventDefault(); + debugger; + + // Set waiting state + state.isWaiting = true; + state.errorMessage = ''; + const { + pluginSlug, + nonce, + homeUrl + } = (0,_wordpress_interactivity__WEBPACK_IMPORTED_MODULE_0__.getContext)(); + try { + const response = yield fetch('/plugins/wp-json/plugins/v2/plugin/clapback/release', { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + 'X-WP-Nonce': nonce + }, + body: JSON.stringify({ + plugin_slug: pluginSlug + }) + }); + const data = yield response.json(); + + // Update state based on response + if (data.success) {} else { + state.errorMessage = data.message || 'Action failed'; + } + } catch (error) { + state.errorMessage = 'Network error occurred'; + } finally { + state.isWaiting = false; + } + } + } +}); +})(); + + +//# sourceMappingURL=view.js.map \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/functions.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/functions.php index f8616d7f00..37ee6f6bef 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/functions.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/functions.php @@ -19,26 +19,28 @@ // Block Files -require_once( __DIR__ . '/src/blocks/archive-page/index.php' ); -require_once( __DIR__ . '/src/blocks/category-navigation/index.php' ); -require_once( __DIR__ . '/src/blocks/filter-bar/index.php' ); -require_once( __DIR__ . '/src/blocks/front-page/index.php' ); -require_once( __DIR__ . '/src/blocks/search-page/index.php' ); -require_once( __DIR__ . '/src/blocks/single-plugin/index.php' ); -require_once( __DIR__ . '/src/blocks/plugin-card/index.php' ); -require_once( __DIR__ . '/src/blocks/release-checks/index.php' ); -require_once( __DIR__ . '/src/blocks/release-commits/index.php' ); -require_once( __DIR__ . '/src/blocks/release-confirmation/index.php' ); -require_once( __DIR__ . '/src/blocks/release-date/index.php' ); -require_once( __DIR__ . '/src/blocks/release-draft/index.php' ); -require_once( __DIR__ . '/src/blocks/release-check-item/index.php' ); -require_once( __DIR__ . '/src/blocks/release-flags/index.php' ); -require_once( __DIR__ . '/src/blocks/release-menu-options/index.php' ); -require_once( __DIR__ . '/src/blocks/release-status/index.php' ); +require_once __DIR__ . '/src/blocks/archive-page/index.php'; +require_once __DIR__ . '/src/blocks/category-navigation/index.php'; +require_once __DIR__ . '/src/blocks/filter-bar/index.php'; +require_once __DIR__ . '/src/blocks/front-page/index.php'; +require_once __DIR__ . '/src/blocks/search-page/index.php'; +require_once __DIR__ . '/src/blocks/single-plugin/index.php'; +require_once __DIR__ . '/src/blocks/plugin-card/index.php'; +require_once __DIR__ . '/src/blocks/release-checks/index.php'; +require_once __DIR__ . '/src/blocks/release-commits/index.php'; +require_once __DIR__ . '/src/blocks/release-confirmation/index.php'; +require_once __DIR__ . '/src/blocks/release-date/index.php'; +require_once __DIR__ . '/src/blocks/release-draft/index.php'; +require_once __DIR__ . '/src/blocks/release-details-form/index.php'; +require_once __DIR__ . '/src/blocks/release-check-item/index.php'; +require_once __DIR__ . '/src/blocks/release-flags/index.php'; +require_once __DIR__ . '/src/blocks/release-menu-options/index.php'; +require_once __DIR__ . '/src/blocks/release-page/index.php'; +require_once __DIR__ . '/src/blocks/release-status/index.php'; // Block Configs -require_once( __DIR__ . '/inc/block-bindings.php' ); -require_once( __DIR__ . '/inc/block-config.php' ); +require_once __DIR__ . '/inc/block-bindings.php'; +require_once __DIR__ . '/inc/block-config.php'; /** * Sets up theme defaults and registers support for various WordPress features. @@ -62,13 +64,16 @@ function setup() { * Switch default core markup for search form, comment form, and comments * to output valid HTML5. */ - add_theme_support( 'html5', array( - 'search-form', - 'comment-form', - 'comment-list', - 'gallery', - 'caption', - ) ); + add_theme_support( + 'html5', + array( + 'search-form', + 'comment-form', + 'comment-list', + 'gallery', + 'caption', + ) + ); add_theme_support( 'wp4-styles' ); } @@ -101,11 +106,11 @@ function content_width() { * Enqueue scripts and styles. */ function scripts() { - wp_enqueue_style( 'wporg-style', get_theme_file_uri( '/css/style.css' ), [ 'dashicons', 'open-sans' ], filemtime( __DIR__ . '/css/style.css' ) ); + wp_enqueue_style( 'wporg-style', get_theme_file_uri( '/css/style.css' ), array( 'dashicons', 'open-sans' ), filemtime( __DIR__ . '/css/style.css' ) ); wp_style_add_data( 'wporg-style', 'rtl', 'replace' ); - wp_enqueue_style( 'wporg-parent-2021-style', get_theme_root_uri() . '/wporg-parent-2021/build/style.css', [ 'wporg-global-fonts' ] ); - wp_enqueue_style( 'wporg-parent-2021-block-styles', get_theme_root_uri() . '/wporg-parent-2021/build/block-styles.css', [ 'wporg-global-fonts' ] ); + wp_enqueue_style( 'wporg-parent-2021-style', get_theme_root_uri() . '/wporg-parent-2021/build/style.css', array( 'wporg-global-fonts' ) ); + wp_enqueue_style( 'wporg-parent-2021-block-styles', get_theme_root_uri() . '/wporg-parent-2021/build/block-styles.css', array( 'wporg-global-fonts' ) ); // Make jQuery a footer script. wp_scripts()->add_data( 'jquery', 'group', 1 ); @@ -122,11 +127,15 @@ function scripts() { $post = get_post(); if ( $post && current_user_can( 'plugin_admin_edit', $post ) ) { wp_enqueue_script( 'wporg-plugins-categorization', get_stylesheet_directory_uri() . '/js/section-categorization.js', array( 'jquery' ), filemtime( __DIR__ . '/js/section-categorization.js' ), true ); - wp_localize_script( 'wporg-plugins-categorization', 'categorizationOptions', [ - 'restUrl' => get_rest_url(), - 'restNonce' => wp_create_nonce( 'wp_rest' ), - 'pluginSlug' => $post->post_name, - ] ); + wp_localize_script( + 'wporg-plugins-categorization', + 'categorizationOptions', + array( + 'restUrl' => get_rest_url(), + 'restNonce' => wp_create_nonce( 'wp_rest' ), + 'pluginSlug' => $post->post_name, + ) + ); } } @@ -134,18 +143,22 @@ function scripts() { wp_enqueue_script( 'google-charts-loader', 'https://www.gstatic.com/charts/loader.js', array(), false, true ); wp_enqueue_script( 'wporg-plugins-stats', get_stylesheet_directory_uri() . '/js/stats.js', array( 'jquery', 'google-charts-loader' ), '20220929', true ); - wp_localize_script( 'wporg-plugins-stats', 'pluginStats', array( - 'slug' => is_singular( 'plugin' ) ? get_queried_object()->post_name : '', - 'l10n' => array( - 'date' => __( 'Date', 'wporg-plugins' ), - 'downloads' => __( 'Downloads', 'wporg-plugins' ), - 'noData' => __( 'No data yet', 'wporg-plugins' ), - 'today' => __( 'Today', 'wporg-plugins' ), - 'yesterday' => __( 'Yesterday', 'wporg-plugins' ), - 'last_week' => __( 'Last 7 Days', 'wporg-plugins' ), - 'all_time' => __( 'All Time', 'wporg-plugins' ), - ), - ) ); + wp_localize_script( + 'wporg-plugins-stats', + 'pluginStats', + array( + 'slug' => is_singular( 'plugin' ) ? get_queried_object()->post_name : '', + 'l10n' => array( + 'date' => __( 'Date', 'wporg-plugins' ), + 'downloads' => __( 'Downloads', 'wporg-plugins' ), + 'noData' => __( 'No data yet', 'wporg-plugins' ), + 'today' => __( 'Today', 'wporg-plugins' ), + 'yesterday' => __( 'Yesterday', 'wporg-plugins' ), + 'last_week' => __( 'Last 7 Days', 'wporg-plugins' ), + 'all_time' => __( 'All Time', 'wporg-plugins' ), + ), + ) + ); } // The plugin submission page: /developers/add/ @@ -155,9 +168,9 @@ function scripts() { // React is currently only used on detail pages. if ( is_single() ) { - $assets_path = dirname( __FILE__ ) . '/js/build/theme.asset.php'; + $assets_path = __DIR__ . '/js/build/theme.asset.php'; if ( file_exists( $assets_path ) ) { - $script_info = require( $assets_path ); + $script_info = require $assets_path; wp_enqueue_script( 'wporg-plugins-client', get_stylesheet_directory_uri() . '/js/build/theme.js', @@ -169,7 +182,7 @@ function scripts() { 'wporg-plugins-client', 'localeData', array( - '' => array( + '' => array( 'Plural-Forms' => _x( 'nplurals=2; plural=n != 1;', 'plural forms', 'wporg-plugins' ), 'Language' => _x( 'en', 'language (fr, fr_CA)', 'wporg-plugins' ), 'localeSlug' => _x( 'en', 'locale slug', 'wporg-plugins' ), @@ -199,7 +212,7 @@ function scripts() { * @return string */ function loader_src( $src, $handle ) { - $cdn_urls = [ + $cdn_urls = array( 'dashicons', 'wp-embed', 'jquery-core', @@ -212,7 +225,7 @@ function loader_src( $src, $handle ) { 'wporg-plugins-stats', 'wporg-plugins-client', 'wporg-plugins-faq', - ]; + ); if ( defined( 'WPORG_SANDBOXED' ) && WPORG_SANDBOXED ) { return $src; @@ -224,7 +237,7 @@ function loader_src( $src, $handle ) { } // Remove version argument. - if ( in_array( $handle, [ 'open-sans' ], true ) ) { + if ( in_array( $handle, array( 'open-sans' ), true ) ) { $src = remove_query_arg( 'ver', $src ); } @@ -248,7 +261,7 @@ function content() { * @return array */ function custom_body_class( $classes ) { - $post = get_post(); + $post = get_post(); $classes[] = 'no-js'; @@ -338,13 +351,13 @@ function social_meta_data() { $site_title = function_exists( '\WordPressdotorg\site_brand' ) ? \WordPressdotorg\site_brand() : 'WordPress.org'; if ( is_front_page() ) { - $og_fields = [ + $og_fields = array( 'og:title' => __( 'WordPress Plugins', 'wporg-plugins' ), 'og:description' => __( 'Choose from thousands of free plugins to build, customize, and enhance your WordPress website.', 'wporg-plugins' ), 'og:site_name' => $site_title, 'og:type' => 'website', 'og:url' => home_url(), - ]; + ); foreach ( $og_fields as $property => $content ) { printf( '' . "\n", @@ -399,13 +412,16 @@ function social_meta_data() { function strong_archive_title( $term ) { return '' . $term . ''; } -add_action( 'wp_head', function() { - add_filter( 'post_type_archive_title', __NAMESPACE__ . '\strong_archive_title' ); - add_filter( 'single_term_title', __NAMESPACE__ . '\strong_archive_title' ); - add_filter( 'single_cat_title', __NAMESPACE__ . '\strong_archive_title' ); - add_filter( 'single_tag_title', __NAMESPACE__ . '\strong_archive_title' ); - add_filter( 'get_the_date', __NAMESPACE__ . '\strong_archive_title' ); -} ); +add_action( + 'wp_head', + function () { + add_filter( 'post_type_archive_title', __NAMESPACE__ . '\strong_archive_title' ); + add_filter( 'single_term_title', __NAMESPACE__ . '\strong_archive_title' ); + add_filter( 'single_cat_title', __NAMESPACE__ . '\strong_archive_title' ); + add_filter( 'single_tag_title', __NAMESPACE__ . '\strong_archive_title' ); + add_filter( 'get_the_date', __NAMESPACE__ . '\strong_archive_title' ); + } +); /** * Filter the archive title to use custom string for business model. @@ -416,7 +432,7 @@ function strong_archive_title( $term ) { function update_archive_title( $title ) { if ( is_tax( 'plugin_business_model', 'community' ) ) { return __( 'Community plugins', 'wporg-plugins' ); - } else if ( is_tax( 'plugin_business_model', 'commercial' ) ) { + } elseif ( is_tax( 'plugin_business_model', 'commercial' ) ) { return __( 'Commercial plugins', 'wporg-plugins' ); } @@ -436,7 +452,7 @@ function update_archive_description( $description ) { // The description in the DB has

    tags. Add them manually for consistency. if ( is_tax( 'plugin_business_model', 'community' ) ) { $contents = '

    ' . __( 'These plugins are developed and supported by a community.', 'wporg-plugins' ) . '

    '; - } else if ( is_tax( 'plugin_business_model', 'commercial' ) ) { + } elseif ( is_tax( 'plugin_business_model', 'commercial' ) ) { $contents = '

    ' . __( 'These plugins are free, but also have paid versions available.', 'wporg-plugins' ) . '

    '; } @@ -457,7 +473,7 @@ function update_archive_description( $description ) { * @return string The Trac changeset link. */ function get_trac_changeset_link( $parent_id, $previous_version, $current_version = 'trunk' ) { - $plugin = get_post( $parent_id); + $plugin = get_post( $parent_id ); if ( ! $plugin ) { return ''; @@ -490,14 +506,14 @@ function get_releases( $parent_id ) { 'orderby' => 'date', 'order' => 'DESC', ); - + return get_posts( $args ); } /** * Get the previous version of a plugin. * - * @param WP_Post $release_post The current release post. + * @param WP_Post $release_post The current release post. * @param WP_Post[] $release List of releases. * * @return string|null The previous version of the plugin. @@ -509,7 +525,7 @@ function get_previous_version( $release_post, $releases ) { return $previous_version; } - if( 'draft' === $release_post->post_status ) { + if ( 'draft' === $release_post->post_status ) { return get_post_meta( $releases[0]->ID, 'release_tag', true ); } @@ -524,3 +540,53 @@ function get_previous_version( $release_post, $releases ) { return $previous_version; } + +/** + * Get the latest release of a plugin. + * + * @param int $plugin_id The plugin ID. + * + * @return WP_Post|null The latest release of the plugin. + */ +function get_latest_release( $plugin_id ) { + + $releases = get_releases( $plugin_id ); + + if ( empty( $releases ) ) { + return null; + } + + return $releases[0]; +} + + +/** + * Get the blueprint URL for playground testing. + * + * @param string $download_url The URL to download the plugin from. + * + * @return string The URL to load the plugin in the playground. + */ +function get_blueprint_url( $download_url ) { + /** + * Blueprint is base64 encoded to be passed as a URL parameter. + * + * @see https://wordpress.github.io/wordpress-playground/blueprints/tutorial/how-to-load-run-blueprints#base64-encoded-blueprints + */ + $blueprint = wp_json_encode( + array( + 'login' => true, + 'steps' => array( + array( + 'step' => 'installPlugin', + 'pluginData' => array( + 'resource' => 'url', + 'url' => $download_url, + ), + ), + ), + ) + ); + + return 'https://playground.wordpress.net/#' . base64_encode( $blueprint ); +} diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/package.json b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/package.json index afdd98ec12..ccd69eb011 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/package.json +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/package.json @@ -7,11 +7,11 @@ "main": "index.php", "scripts": { "watch:css": "grunt watch", - "watch:js": "wp-scripts start", + "watch:js": "wp-scripts start --experimental-modules", "watch": "concurrently \"npm run watch:js\" \"npm run watch:css\"", "build:css": "grunt build", "build:old:js": "wp-scripts build client/theme.js --webpack-src-dir=client --output-path=js/build", - "build:js": "wp-scripts build", + "build:js": "wp-scripts build --experimental-modules", "build": "npm run build:css && npm run build:js", "format:js": "wp-scripts format client", "lint:js": "wp-scripts lint-js client", diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/parts/release-page.html b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/parts/release-page.html new file mode 100644 index 0000000000..6e3e9eddda --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/parts/release-page.html @@ -0,0 +1,5 @@ + +
    + +
    + diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/parts/releases.html b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/parts/releases.html deleted file mode 100644 index a27f7828af..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/parts/releases.html +++ /dev/null @@ -1,51 +0,0 @@ - -

    Releases

    - - - -
    - - - - -
    - - -
    - -
    - -
    - - -
    - - - -
    - -
    - -
    - - -
    - - - - - - - - - - -

    There are no releases yet

    - - - -
    - - -
    - diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-checks/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-checks/render.php index c8c0684631..b7a4b97b90 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-checks/render.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-checks/render.php @@ -70,6 +70,8 @@ function ( $carry, $item ) { /** * Get the test run message. + * + * @param object $plugin_check_errors The plugin check errors. * * @return string The test run message. */ @@ -108,16 +110,14 @@ function get_test_run_message( $plugin_check_errors ) { ); } - $mm = sprintf( - /* translators: %1$s is a link to the Plugin Check (PCP) tool. */ - __( '%1$s completed with %2$s.', 'wporg-plugins' ), - $plugin_check_link, - $message - ); - return sprintf( - '
    %1$s
      %2$s
    ', - $mm, + '
    %1$s%2$s
    ', + sprintf( + /* translators: %1$s is a link to the Plugin Check (PCP) tool. */ + __( '%1$s completed with %2$s.', 'wporg-plugins' ), + $plugin_check_link, + $message + ), format_plugin_check_results( $plugin_check_errors['results'] ), ); } diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-confirmation/block.json b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-confirmation/block.json index 50fb450c18..89f4a9bf8b 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-confirmation/block.json +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-confirmation/block.json @@ -10,7 +10,8 @@ "textdomain": "wporg", "attributes": {}, "supports": { - "html": false + "html": false, + "interactivity": true }, "usesContext": [ "postId" ], "editorScript": "file:./index.js", diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-confirmation/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-confirmation/render.php index 2d7180ab05..33ed2547e4 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-confirmation/render.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-confirmation/render.php @@ -12,7 +12,7 @@ } ?> -
    > +> diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-details-form/block.json b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-details-form/block.json new file mode 100644 index 0000000000..f0634c46e0 --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-details-form/block.json @@ -0,0 +1,20 @@ +{ + "$schema": "https://schemas.wp.org/trunk/block.json", + "apiVersion": 2, + "name": "wporg/release-details-form", + "version": "0.1.0", + "title": "Release Details Form", + "category": "design", + "icon": "", + "description": "A block to display release details form.", + "textdomain": "wporg", + "attributes": {}, + "supports": { + "html": false, + "interactivity": true + }, + "usesContext": [ "postId" ], + "editorScript": "file:./index.js", + "render": "file:./render.php", + "style": "file:./style-index.css" +} \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-details-form/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-details-form/index.js new file mode 100644 index 0000000000..a52cd322ed --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-details-form/index.js @@ -0,0 +1,28 @@ +/** + * WordPress dependencies + */ +import { Disabled } from '@wordpress/components'; +import { registerBlockType } from '@wordpress/blocks'; +import ServerSideRender from '@wordpress/server-side-render'; +import { useBlockProps } from '@wordpress/block-editor'; + +/** + * Internal dependencies + */ +import metadata from './block.json'; +import './style.scss'; + +function Edit( { attributes, name } ) { + return ( +
    + + + +
    + ); +} + +registerBlockType( metadata.name, { + edit: Edit, + save: () => null, +} ); \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-details-form/index.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-details-form/index.php new file mode 100644 index 0000000000..d2b7cbe0a4 --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-details-form/index.php @@ -0,0 +1,22 @@ +context['postId'] ) ) { + return; +} + +$release_post = get_post( $block->context['postId'] ); +$current_version = get_post_meta( $block->context['postId'], 'release_version', true ); +$tested_up_to = get_post_meta( $block->context['postId'], 'release_tested', true ); + +// Bail if the release post does not exist. +if ( ! $release_post ) { + return; +} + +/** + * Returns whether the tested_up_to value is recent. + * + * @param string $tested_up_to The tested up to value. + * + * @return bool Whether the tested up to value is recent. + */ +function has_recently_been_tested( $tested_up_to ) { + global $wp_version; + + // If the tested up to value is empty, it's not recent. + if ( empty( $tested_up_to ) ) { + return false; + } + + $latest_release = $wp_version; + + if ( defined( 'WP_CORE_STABLE_BRANCH' ) ) { + $latest_release = WP_CORE_STABLE_BRANCH; + } + + $tested_major = (int) explode( '.', $tested_up_to )[0]; + $latest_major = (int) explode( '.', $latest_release )[0]; + + return $tested_major >= $latest_major; +} + + +/** + * Generate the HTML for a release item content block. + * + * @param string $label The label for the item. + * @param string $value The value for the item. + * @param string $content The additional content or description. + * @return string The formatted HTML content for the release item. + */ +function get_release_item_content( $label, $value, $content ) { + return sprintf( + '
    %1$s: %2$s
    %3$s
    ', + wp_kses_post( $label ), + wp_kses_post( $value ), + wp_kses_post( $content ) + ); +} + +/** + * Generate a release check item block with a specific status. + * + * @param string $status The status of the check item ('success' or 'error'). + * @param string $content The content to display inside the block. + * @return string The formatted block content. + */ +function get_release_check_item( $status, $content ) { + return do_blocks( + sprintf( + '%2$s', + esc_attr( $status ), + $content + ) + ); +} + +/** + * Generate the block content for the version number check item. + * + * @param bool $verdict Whether the version number is valid. + * @param string $value The current version number. + * @param WP_Post $release_post The release post object. + * + * @return string The block content. + */ +function get_version_number_check_item( $verdict, $value, $release_post ) { + $label = __( 'Version number', 'wporg-plugins' ); + $info_text = __( 'It looks like plugin version was incremented appropriately.', 'wporg-plugins' ); + $status = 'success'; + + if ( ! $verdict ) { + $status = 'error'; + $info_text = __( 'Please increment your plugin\'s version number.', 'wporg-plugins' ); + } + + $content = get_release_item_content( $label, $value, $info_text ); + + return get_release_check_item( $status, $content ); +} + +/** + * Generate the block content for the "Tested up to" check item. + * + * @param string $value The tested up to value. + * @return string The block content. + */ +function get_tested_up_to_check_item( $verdict, $value, $release_post ) { + $label = __( + 'Tested up to', + 'wporg-plugins' + ); + $status = 'success'; + + $parent = get_post( $release_post->post_parent ); + + $blueprint_url = get_blueprint_url( + sprintf( + 'https://downloads.wordpress.org/plugin/%s.zip', + $parent->post_name, + ) + ); + + $info_text = sprintf( + /* translators: %s: URL to the plugin in the Plugin Directory */ + __( 'Everything looks great! Playground makes testing easy. If needed, you can test it here.', 'wporg-plugins' ), + esc_url( $blueprint_url ) + ); + + if ( empty( $value ) ) { + $value = __( 'Unknown', 'wporg-plugins' ); + $status = 'error'; + $info_text = __( 'We weren\'t able to determine your "Tested up to" value.', 'wporg-plugins' ); + } elseif ( ! $verdict ) { + $status = 'warning'; + $info_text = sprintf( + /* translators: %s: URL to the plugin in the Plugin Directory */ + __( 'Your plugin has been tested with recent versions of WordPress! Test it now in Playground.', 'wporg-plugins' ), + esc_url( $blueprint_url ) + ); + } + + $content = get_release_item_content( $label, $value, $info_text ); + + return get_release_check_item( $status, $content ); +} + +$latest_release = get_latest_release( $release_post->post_parent ); +$last_version = get_post_meta( $latest_release->ID, 'release_version', true ); +$version_pass = version_compare( $current_version, $last_version, '>' ); +$tested_up_to_pass = has_recently_been_tested( $tested_up_to ); + +?> + + +> + +

    %s

    + ', + esc_html__( 'Headers', 'wporg-plugins' ) + ) + ); +?> + +
      + + +
    + +
    +
    + +
    + +
    + +
    +
    +
    diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-details-form/style.scss b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-details-form/style.scss new file mode 100644 index 0000000000..89cc94fcb8 --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-details-form/style.scss @@ -0,0 +1,15 @@ +.wp-block-wporg-release-details-form { + label { + display: block; + } + + ul { + padding-left: var(--wp--preset--spacing--20) !important; + } +} + +.wp-block-wporg-release-details-form-actions { + display: flex; + margin-top: var(--wp--preset--spacing--20); + gap: 8px; +} \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-draft/block.json b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-draft/block.json index 07fb67e447..067f4303c5 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-draft/block.json +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-draft/block.json @@ -10,7 +10,8 @@ "textdomain": "wporg", "attributes": {}, "supports": { - "html": false + "html": false, + "interactivity": true }, "usesContext": [ "postId" ], "editorScript": "file:./index.js", diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-draft/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-draft/render.php index 8bf496ac36..f412bc815f 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-draft/render.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-draft/render.php @@ -15,14 +15,14 @@ } // get release for the post -$query_args = [ +$query_args = array( 'post_type' => 'plugin_release', 'posts_per_page' => 1, 'post_parent' => $post->ID, 'orderby' => 'date', 'post_status' => 'draft', 'order' => 'DESC', -]; +); $latest_draft_query = new WP_Query( $query_args ); @@ -35,46 +35,86 @@ $post_title = __( 'Trunk', 'wporg-plugins' ); $intro_text = __( 'There are unpublished changes in your trunk folder.', 'wporg-plugins' ); +$publish_title = __( 'Create release', 'wporg-plugins' ); +$publish_intro_text = __( 'Before releasing your plugin, take a moment to verify and update the following values:', 'wporg-plugins' ); +$publish_button_text = __( 'Create release', 'wporg-plugins' ); + $markup = << -
    +
    + +
    -
    -
    + +
    - -
    - -

    - $post_title -

    - - -
    - + +
    + +

    + $post_title +

    + + +
    + - -

    $intro_text

    - + +

    $intro_text

    + -
    - +
    + +
    + + + +
    + + +
    + +
    +
    + +
    +
    + +
    + +
    + +
    + +
    + +

    + $publish_title +

    + +
    + + + +

    $publish_intro_text

    + - - - - +
    +
    + HTML; printf( - '
    %2$s
    ', - get_block_wrapper_attributes(), - do_blocks( $markup ) + '
    %3$s
    ', + 'data-wp-interactive="async-action-block"', + wp_kses_data( get_block_wrapper_attributes() ), + do_blocks( $markup ) // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ); // Reset global post data. diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-draft/style.scss b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-draft/style.scss index aca0d16f71..a7adf4781e 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-draft/style.scss +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-draft/style.scss @@ -4,5 +4,8 @@ ul { margin-top: var(--wp--preset--spacing--10); padding: 0; + display: flex; + flex-direction: column; + gap: 12px; } } \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-menu-options/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-menu-options/render.php index c46a09738a..4eda65229d 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-menu-options/render.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-menu-options/render.php @@ -1,7 +1,7 @@ context['postId'] ) { return; @@ -14,30 +14,10 @@ $current_version = get_post_meta( $release_post->ID, 'release_version', true ); -/** - * Blueprint is base64 encoded to be passed as a URL parameter. - * - * @see https://wordpress.github.io/wordpress-playground/blueprints/tutorial/how-to-load-run-blueprints#base64-encoded-blueprints - */ -$blueprint = wp_json_encode( [ - 'login' => true, - 'steps' => [ - [ - 'step' => 'installPlugin', - 'pluginData' => [ - 'resource' => 'url', - 'url' => Template::download_link( $release_post->post_parent, $current_version ) - ] - ] - ] -] ); - -$encoded_blueprint_url = 'https://playground.wordpress.net/#' . base64_encode( $blueprint ); - $download_link = sprintf( '', esc_html( 'Download', 'wporg-plugins' ), - esc_url( $download_link ) + esc_url( get_blueprint_url( Template::download_link( $release_post->post_parent, $current_version ) ) ) ); $blueprint_link = sprintf( @@ -46,8 +26,8 @@ esc_url( $encoded_blueprint_url ) ); -$changes_link = ''; -$releases = get_releases( $release_post->post_parent ); +$changes_link = ''; +$releases = get_releases( $release_post->post_parent ); $previous_version = get_previous_version( $release_post, $releases ); if ( null !== $previous_version ) { diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-page/block.json b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-page/block.json new file mode 100644 index 0000000000..4d6f5fc292 --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-page/block.json @@ -0,0 +1,21 @@ +{ + "$schema": "https://schemas.wp.org/trunk/block.json", + "apiVersion": 2, + "name": "wporg/release-page", + "version": "0.1.0", + "title": "Release Page", + "category": "design", + "icon": "", + "description": "A block to display release page.", + "textdomain": "wporg", + "attributes": {}, + "supports": { + "html": false, + "interactivity": true + }, + "usesContext": [ "postId" ], + "editorScript": "file:./index.js", + "render": "file:./render.php", + "style": "file:./style-index.css", + "viewScriptModule": "file:./view.js" +} \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-page/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-page/index.js new file mode 100644 index 0000000000..a52cd322ed --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-page/index.js @@ -0,0 +1,28 @@ +/** + * WordPress dependencies + */ +import { Disabled } from '@wordpress/components'; +import { registerBlockType } from '@wordpress/blocks'; +import ServerSideRender from '@wordpress/server-side-render'; +import { useBlockProps } from '@wordpress/block-editor'; + +/** + * Internal dependencies + */ +import metadata from './block.json'; +import './style.scss'; + +function Edit( { attributes, name } ) { + return ( +
    + + + +
    + ); +} + +registerBlockType( metadata.name, { + edit: Edit, + save: () => null, +} ); \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-page/index.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-page/index.php new file mode 100644 index 0000000000..6f3ef2a3af --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-page/index.php @@ -0,0 +1,22 @@ +ID ); + +if ( ! $release_post ) { + return; +} + +// Why use `do_blocks` here? for some reason, just outputting the content directly doesn't work and context gets messed up. +$markup = << +

    Releases

    + + + + +
    + + + + + + +
    + + +
    + +
    + +
    + + +
    + + + +
    + +
    + +
    + + +
    + + + + + + + + + + +

    There are no releases yet

    + + + +
    + +
    +HTML; + + +// Interactivity API context +$form_context = array( + 'btnDefaultText' => 'Publish release', + 'btnLoadingText' => 'Publishing...', + 'preSubmitting' => false, + 'isWaiting' => false, + 'isComplete' => false, + 'errorMessage' => '', + 'pluginSlug' => $release_post->post_name, + 'nonce' => wp_create_nonce( 'wp_rest' ) +); + +printf( + '
    %4$s
    ', + 'data-wp-interactive="async-action-block"', + wp_kses_data( get_block_wrapper_attributes() ), + wp_interactivity_data_wp_context( $form_context ), // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped + do_blocks( $markup ) // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped +); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-page/style.scss b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-page/style.scss new file mode 100644 index 0000000000..aca0d16f71 --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-page/style.scss @@ -0,0 +1,8 @@ +.wp-block-wporg-release-draft { + font-size: var(--wp--preset--font-size--small); + + ul { + margin-top: var(--wp--preset--spacing--10); + padding: 0; + } +} \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-page/view.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-page/view.js new file mode 100644 index 0000000000..90ba4e75a9 --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-page/view.js @@ -0,0 +1,75 @@ +/** + * WordPress dependencies + */ +import { store, getContext } from '@wordpress/interactivity'; + +const { state } = store('async-action-block', { + state: { + get btnText() { + const { btnDefaultText, btnLoadingText } = getContext(); + + return state.isWaiting ? btnLoadingText : btnDefaultText; + }, + }, + actions: { + handlePreSubmit(event) { + event.preventDefault(); + state.preSubmitting = true; + + const element = document.querySelector( + '.wp-block-wporg-release-page' + ); + + if (element) { + element.scrollIntoView({ + behavior: 'instant', + block: 'center', + }); + } + }, + handleBackClick(event) { + event.preventDefault(); + state.preSubmitting = false; + }, + *handleSubmit(event) { + // Prevent default form submission + event.preventDefault(); + + debugger; + + // Set waiting state + state.isWaiting = true; + state.errorMessage = ''; + + const { pluginSlug, nonce, homeUrl } = getContext(); + + try { + const response = yield fetch( + '/plugins/wp-json/plugins/v2/plugin/clapback/release', + { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + 'X-WP-Nonce': nonce, + }, + body: JSON.stringify({ + plugin_slug: pluginSlug, + }), + } + ); + + const data = yield response.json(); + + // Update state based on response + if (data.success) { + } else { + state.errorMessage = data.message || 'Action failed'; + } + } catch (error) { + state.errorMessage = 'Network error occurred'; + } finally { + state.isWaiting = false; + } + }, + }, +}); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/template-parts/plugin-single.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/template-parts/plugin-single.php index d5edcac236..775a814a2e 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/template-parts/plugin-single.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/template-parts/plugin-single.php @@ -147,7 +147,7 @@ if ( 'releases' === $section_slug ) { echo '
    '; - block_template_part( 'releases' ); + block_template_part( 'release-page' ); echo '
    '; continue; } From af729aa8c94440012c15116f61af8a00dadf6c56 Mon Sep 17 00:00:00 2001 From: tellyworth Date: Thu, 5 Dec 2024 17:14:54 +1100 Subject: [PATCH 43/84] Add untested Plugin_Publish API endpoint As yet untested. Note that I called it Plugin_Publish rather than Plugin_Release, so as not to confuse it with the other class which is also called Plugin_Release (we're using "Release" as both a noun and verb in different places). --- .../api/routes/class-plugin-publish.php | 66 +++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 wordpress.org/public_html/wp-content/plugins/plugin-directory/api/routes/class-plugin-publish.php diff --git a/wordpress.org/public_html/wp-content/plugins/plugin-directory/api/routes/class-plugin-publish.php b/wordpress.org/public_html/wp-content/plugins/plugin-directory/api/routes/class-plugin-publish.php new file mode 100644 index 0000000000..3054153382 --- /dev/null +++ b/wordpress.org/public_html/wp-content/plugins/plugin-directory/api/routes/class-plugin-publish.php @@ -0,0 +1,66 @@ +[^/]+)/publish', + array( + 'methods' => \WP_REST_Server::CREATABLE, + 'callback' => array( $this, 'publish_release' ), + 'args' => array( + 'plugin_slug' => array( + 'validate_callback' => array( $this, 'validate_plugin_slug_callback' ), + ), + ), + 'permission_callback' => array( $this, 'permission_can_access_plugin' ), + ) + ); + } + + /** + * Validate that the user can manage a given plugin. + */ + public function permission_can_access_plugin( $request ) { + $plugin = Plugin_Directory::get_plugin_post( $request['plugin_slug'] ); + return current_user_can( 'plugin_manage_releases', $plugin ); + } + + /** + * A simple endpoint to publish a release. + * + * @param WP_REST_Request $request The request object. + * @return WP_REST_Response + */ + public function publish_release( $request ) { + + $plugin = Plugin_Directory::get_plugin_post( $request['plugin_slug'] ); + // Will return either a WP_Error, or the post ID of the published release CPT. + // Maybe it should return the version string instead, or an object with more details? The whole CPT? + $result = Plugin_Release::publish_release( $plugin ); + + return new WP_REST_Response( $result ); + } +} \ No newline at end of file From 06b583f791e013e10e77c50e90dffecce36ede9b Mon Sep 17 00:00:00 2001 From: tellyworth Date: Mon, 9 Dec 2024 15:39:56 +1100 Subject: [PATCH 44/84] Fix dumb errors in the REST publish endpoint --- .../wp-content/plugins/plugin-directory/api/class-base.php | 1 + .../plugin-directory/api/routes/class-plugin-publish.php | 6 +++--- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/wordpress.org/public_html/wp-content/plugins/plugin-directory/api/class-base.php b/wordpress.org/public_html/wp-content/plugins/plugin-directory/api/class-base.php index 8b9c81da27..ab61e8491b 100644 --- a/wordpress.org/public_html/wp-content/plugins/plugin-directory/api/class-base.php +++ b/wordpress.org/public_html/wp-content/plugins/plugin-directory/api/class-base.php @@ -40,6 +40,7 @@ public static function load_routes() { new Routes\Plugin_Upload(); new Routes\Plugin_Blueprint(); new Routes\Plugin_Review(); + new Routes\Plugin_Publish(); } /** diff --git a/wordpress.org/public_html/wp-content/plugins/plugin-directory/api/routes/class-plugin-publish.php b/wordpress.org/public_html/wp-content/plugins/plugin-directory/api/routes/class-plugin-publish.php index 3054153382..6620416b82 100644 --- a/wordpress.org/public_html/wp-content/plugins/plugin-directory/api/routes/class-plugin-publish.php +++ b/wordpress.org/public_html/wp-content/plugins/plugin-directory/api/routes/class-plugin-publish.php @@ -10,7 +10,7 @@ use WP_REST_Response; use WP_REST_Server; use WordPressdotorg\Plugin_Directory\Plugin_Directory; -use WordPressdotorg\Plugin_Directory\Plugin_Directory\Plugin_Release; +use WordPressdotorg\Plugin_Directory\Plugin_Release; use WordPressdotorg\Plugin_Directory\API\Base; /** @@ -26,7 +26,7 @@ class Plugin_Publish extends Base { public function __construct() { register_rest_route( 'plugins/v2', - '/plugin/(?P[^/]+)/publish', + '/plugin/(?P[^/]+)/release', // FIXME: 'release' or 'publish' or something else? array( 'methods' => \WP_REST_Server::CREATABLE, 'callback' => array( $this, 'publish_release' ), @@ -59,7 +59,7 @@ public function publish_release( $request ) { $plugin = Plugin_Directory::get_plugin_post( $request['plugin_slug'] ); // Will return either a WP_Error, or the post ID of the published release CPT. // Maybe it should return the version string instead, or an object with more details? The whole CPT? - $result = Plugin_Release::publish_release( $plugin ); + $result = Plugin_Release::instance()->publish_release( $plugin ); return new WP_REST_Response( $result ); } From 0d8a2a8751e2138458ce41c95ed68adc02227927 Mon Sep 17 00:00:00 2001 From: tellyworth Date: Mon, 9 Dec 2024 17:09:38 +1100 Subject: [PATCH 45/84] Add a quick script for displaying release info --- .../plugin-directory/bin/get-release-info.php | 95 +++++++++++++++++++ 1 file changed, 95 insertions(+) create mode 100644 wordpress.org/public_html/wp-content/plugins/plugin-directory/bin/get-release-info.php diff --git a/wordpress.org/public_html/wp-content/plugins/plugin-directory/bin/get-release-info.php b/wordpress.org/public_html/wp-content/plugins/plugin-directory/bin/get-release-info.php new file mode 100644 index 0000000000..9b541158a9 --- /dev/null +++ b/wordpress.org/public_html/wp-content/plugins/plugin-directory/bin/get-release-info.php @@ -0,0 +1,95 @@ +ID)...\n"; + +$releases = Plugin_Release::instance()->get_releases( $plugin ); +if ( is_wp_error( $releases ) ) { + fwrite( STDERR, "Failed to update releases for $plugin_slug: " . $updated->get_error_message() . "\n" ); + die(); +} + +foreach( $releases as $release ) { + echo "ID: " . $release->ID . "\n"; + echo "Release version: " . $release->post_title . "\n"; + echo "Tag: " . $release->release_tag . "\n"; + echo "Post date GMT: " . $release->post_date_gmt . "\n"; + if ( $release->release_date ) { + echo "Date: " . ( new \DateTime( '@' . $release->release_date ) )->format( 'Y-m-d H:i:s' ) . "\n"; + } + echo "Committers: " . implode( ', ', $release->release_committer ) . "\n"; + echo "Zips built: " . ( $release->release_zips_built ? 'Yes' : 'No' ) . "\n"; + echo "Confirmations required: " . ( $release->release_confirmations_required ? 'Yes' : 'No' ) . "\n"; + echo "Revisions: " . implode( ',', $release->release_revisions ) . "\n"; + echo "-----------------------------------\n"; + #var_dump( $release->release_commit_log ); +} \ No newline at end of file From 6ff94b3897bba96661ffce8f640ee44218592c06 Mon Sep 17 00:00:00 2001 From: StevenDufresne Date: Tue, 10 Dec 2024 02:00:16 +0000 Subject: [PATCH 46/84] Have the save setup. --- .../bin/update-release-cpt.php | 95 ---- .../plugin-directory/class-plugin-check.php | 201 --------- .../class-plugin-directory.php | 15 +- .../plugin-directory/class-plugin-release.php | 420 ------------------ .../plugin-directory/cli/class-import.php | 39 -- .../plugin-directory/tools/class-svn.php | 55 --- .../build/blocks/card/block.json | 27 ++ .../build/blocks/card/index.asset.php | 1 + .../build/blocks/card/index.js | 298 +++++++++++++ .../build/blocks/card/render.php | 27 ++ .../build/blocks/card/style-index.css | 8 + .../build/blocks/release-checks/render.php | 119 +---- .../build/blocks/release-commits/render.php | 155 ++----- .../blocks/release-commits/style-index.css | 16 +- .../build/blocks/release-date/render.php | 11 +- .../blocks/release-details-form/block.json | 3 +- .../release-details-form/index.asset.php | 2 +- .../blocks/release-details-form/index.js | 2 +- .../blocks/release-details-form/render.php | 152 +++++-- .../release-details-form/style-index.css | 6 +- .../blocks/release-draft copy/block.json | 3 +- .../blocks/release-draft copy/index.asset.php | 2 +- .../build/blocks/release-draft copy/index.js | 2 +- .../blocks/release-draft copy/render.php | 111 ++--- .../blocks/release-draft copy/style-index.css | 4 - .../blocks/release-draft-card/block.json | 27 ++ .../blocks/release-draft-card/index.asset.php | 1 + .../build/blocks/release-draft-card/index.js | 298 +++++++++++++ .../blocks/release-draft-card/render.php | 25 ++ .../blocks/release-draft-card/style-index.css | 8 + .../blocks/release-draft-content/block.json | 27 ++ .../release-draft-content/index.asset.php | 1 + .../blocks/release-draft-content/index.js | 298 +++++++++++++ .../blocks/release-draft-content/render.php | 25 ++ .../release-draft-content/style-index.css | 8 + .../build/blocks/release-draft/render.php | 96 ++-- .../blocks/release-draft/style-index.css | 7 - .../build/blocks/release-draft/view.asset.php | 2 +- .../build/blocks/release-draft/view.js | 45 +- .../blocks/release-menu-options/render.php | 52 +-- .../build/blocks/release-page/render.php | 93 ++-- .../build/blocks/release-page/view.asset.php | 2 +- .../build/blocks/release-page/view.js | 51 +-- .../blocks/release-publish-release/block.json | 23 + .../release-publish-release/index.asset.php | 1 + .../blocks/release-publish-release/index.js | 298 +++++++++++++ .../release-publish-release}/render.php | 152 +++++-- .../release-publish-release/style-index.css | 17 + .../build/blocks/release-publish/block.json | 24 + .../blocks/release-publish/index.asset.php | 1 + .../build/blocks/release-publish/index.js | 298 +++++++++++++ .../build/blocks/release-publish/render.php | 350 +++++++++++++++ .../blocks/release-publish/style-index.css | 30 ++ .../blocks/release-publish/view.asset.php | 1 + .../build/blocks/release-publish/view.js | 141 ++++++ .../release-result-item copy/block.json | 28 ++ .../release-result-item copy/index.asset.php | 1 + .../blocks/release-result-item copy/index.js | 298 +++++++++++++ .../release-result-item copy}/render.php | 0 .../release-result-item copy/style-index.css | 17 + .../blocks/release-result-item/block.json | 27 ++ .../release-result-item/index.asset.php | 1 + .../build/blocks/release-result-item/index.js | 298 +++++++++++++ .../blocks/release-result-item/render.php | 24 + .../release-result-item/style-index.css | 21 + .../blocks/release-result-list/block.json | 18 + .../release-result-list/index.asset.php | 1 + .../build/blocks/release-result-list/index.js | 298 +++++++++++++ .../blocks/release-result-list/render.php | 22 + .../release-result-list/style-index.css | 17 + .../build/blocks/release-status/render.php | 6 +- .../client/components/plugin/_spinner.scss | 49 ++ .../client/styles/components/_components.scss | 1 + .../pub/wporg-plugins-2024/css/style-rtl.css | 2 +- .../pub/wporg-plugins-2024/css/style.css | 2 +- .../pub/wporg-plugins-2024/functions.php | 215 ++++++++- .../wporg-plugins-2024/inc/block-config.php | 86 ++-- .../patterns/releases-list.php | 49 ++ .../{release-confirmation => card}/block.json | 13 +- .../{release-check-item => card}/index.js | 0 .../blocks/{release-date => card}/index.php | 8 +- .../src/blocks/card/render.php | 27 ++ .../src/blocks/card/style.scss | 4 + .../src/blocks/release-checks/render.php | 119 +---- .../src/blocks/release-commits/render.php | 155 ++----- .../src/blocks/release-commits/style.scss | 24 +- .../src/blocks/release-confirmation/index.php | 22 - .../blocks/release-confirmation/render.php | 45 -- .../blocks/release-confirmation/style.scss | 4 - .../src/blocks/release-date/block.json | 19 - .../src/blocks/release-date/index.js | 27 -- .../src/blocks/release-date/render.php | 16 - .../src/blocks/release-details-form/index.php | 22 - .../blocks/release-details-form/style.scss | 15 - .../src/blocks/release-draft/render.php | 96 ++-- .../src/blocks/release-draft/style.scss | 7 - .../blocks/release-menu-options/render.php | 52 +-- .../src/blocks/release-page/render.php | 93 ++-- .../src/blocks/release-page/view.js | 53 +-- .../block.json | 11 +- .../index.js | 0 .../index.php | 8 +- .../src/blocks/release-publish/render.php | 350 +++++++++++++++ .../src/blocks/release-publish/style.scss | 29 ++ .../src/blocks/release-publish/view.js | 78 ++++ .../block.json | 9 +- .../index.js | 0 .../index.php | 8 +- .../src/blocks/release-result-item/render.php | 24 + .../style.scss | 8 +- .../src/blocks/release-status/block.json | 19 - .../src/blocks/release-status/index.js | 28 -- .../src/blocks/release-status/render.php | 19 - .../src/blocks/release-status/style.scss | 6 - 114 files changed, 4859 insertions(+), 2216 deletions(-) delete mode 100644 wordpress.org/public_html/wp-content/plugins/plugin-directory/bin/update-release-cpt.php delete mode 100644 wordpress.org/public_html/wp-content/plugins/plugin-directory/class-plugin-check.php delete mode 100644 wordpress.org/public_html/wp-content/plugins/plugin-directory/class-plugin-release.php create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/card/block.json create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/card/index.asset.php create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/card/index.js create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/card/render.php create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/card/style-index.css create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-card/block.json create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-card/index.asset.php create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-card/index.js create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-card/render.php create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-card/style-index.css create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-content/block.json create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-content/index.asset.php create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-content/index.js create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-content/render.php create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-content/style-index.css create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish-release/block.json create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish-release/index.asset.php create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish-release/index.js rename wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/{src/blocks/release-details-form => build/blocks/release-publish-release}/render.php (51%) create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish-release/style-index.css create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish/block.json create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish/index.asset.php create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish/index.js create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish/render.php create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish/style-index.css create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish/view.asset.php create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish/view.js create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-item copy/block.json create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-item copy/index.asset.php create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-item copy/index.js rename wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/{src/blocks/release-check-item => build/blocks/release-result-item copy}/render.php (100%) create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-item copy/style-index.css create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-item/block.json create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-item/index.asset.php create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-item/index.js create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-item/render.php create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-item/style-index.css create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-list/block.json create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-list/index.asset.php create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-list/index.js create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-list/render.php create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-list/style-index.css create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/client/components/plugin/_spinner.scss create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/patterns/releases-list.php rename wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/{release-confirmation => card}/block.json (67%) rename wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/{release-check-item => card}/index.js (100%) rename wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/{release-date => card}/index.php (66%) create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/card/render.php create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/card/style.scss delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-confirmation/index.php delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-confirmation/render.php delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-confirmation/style.scss delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-date/block.json delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-date/index.js delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-date/render.php delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-details-form/index.php delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-details-form/style.scss rename wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/{release-details-form => release-publish}/block.json (55%) rename wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/{release-confirmation => release-publish}/index.js (100%) rename wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/{release-status => release-publish}/index.php (74%) create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-publish/render.php create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-publish/style.scss create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-publish/view.js rename wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/{release-check-item => release-result-item}/block.json (63%) rename wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/{release-details-form => release-result-item}/index.js (100%) rename wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/{release-check-item => release-result-item}/index.php (72%) create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-result-item/render.php rename wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/{release-check-item => release-result-item}/style.scss (51%) delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-status/block.json delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-status/index.js delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-status/render.php delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-status/style.scss diff --git a/wordpress.org/public_html/wp-content/plugins/plugin-directory/bin/update-release-cpt.php b/wordpress.org/public_html/wp-content/plugins/plugin-directory/bin/update-release-cpt.php deleted file mode 100644 index 09a700e68d..0000000000 --- a/wordpress.org/public_html/wp-content/plugins/plugin-directory/bin/update-release-cpt.php +++ /dev/null @@ -1,95 +0,0 @@ -releases ) ) { - fwrite( STDERR, "No releases found for $plugin_slug\n" ); - die(); -} - -echo "Updating releases for $plugin_slug...\n"; - -$updated = Plugin_Release::instance()->update_releases( $plugin, $plugin->releases ); -if ( is_wp_error( $updated ) ) { - fwrite( STDERR, "Failed to update releases for $plugin_slug: " . $updated->get_error_message() . "\n" ); - die(); -} -echo "Updated " . number_format( $updated ) . " releases for $plugin_slug\n"; - -if ( $opts['publish'] ) { - $published = Plugin_Release::instance()->publish_release( $plugin ); - if ( is_wp_error( $published ) ) { - fwrite( STDERR, "Failed to publish releases for $plugin_slug: " . $published->get_error_message() . "\n" ); - die(); - } - echo "Published release post ID = " . $published . "\n"; -} - diff --git a/wordpress.org/public_html/wp-content/plugins/plugin-directory/class-plugin-check.php b/wordpress.org/public_html/wp-content/plugins/plugin-directory/class-plugin-check.php deleted file mode 100644 index 554c45cac5..0000000000 --- a/wordpress.org/public_html/wp-content/plugins/plugin-directory/class-plugin-check.php +++ /dev/null @@ -1,201 +0,0 @@ - true, - 'results' => [], - 'html' => '', - ]; - } - - $result = self::run_checks( $plugin_slug, $plugin_root ); - - self::log_to_slack( $result ); // FIXME: need to pass required info. - - return $result; - } - - /** - * Sends a plugin through Plugin Check. - * @param string $plugin_slug The plugin slug. - * @param string $plugin_root The path to the plugin source. - * - * @return array The results of the plugin check. - */ - public static function run_checks( $plugin_slug, $plugin_root ) { - - // Run plugin check via CLI - $start_time = microtime(1); - exec( - 'export WP_CLI_CONFIG_PATH=' . escapeshellarg( WP_CLI_CONFIG_PATH ) . '; ' . - 'timeout 45 ' . // Timeout after 45s if plugin-check is not done. - WPCLI . ' --url=https://wordpress.org/plugins ' . - 'plugin check ' . - '--error-severity=7 --warning-severity=6 --categories=plugin_repo --format=json ' . - '--slug=' . escapeshellarg( $plugin_slug ) . ' ' . - escapeshellarg( $plugin_root ), - $output, - $return_code - ); - $total_time = round( microtime(1) - $start_time, 1 ); - - /** - * Anything that plugin-check outputs that we want to discard completely. - */ - $is_ignored_code = static function( $code ) { - $ignored_codes = [ - ]; - - return ( - in_array( $code, $ignored_codes, true ) || - // All the Readme parser warnings are duplicated, we'll exclude those. - str_starts_with( $code, 'readme_parser_warnings_' ) - ); - }; - - /* - * Convert the output into an array. - * Format: - * FILE: example.extension - * [{.....}] - * - * FILE: example2.extension - * [{.....}] - */ - $verdict = true; - $results = []; - foreach ( array_chunk( $output, 3 ) as $file_result ) { - if ( ! str_starts_with( $file_result[0], 'FILE:' ) ) { - continue; - } - - $filename = trim( explode( ':' , $file_result[0], 2 )[1] ); - $json = json_decode( $file_result[1], true ); - - foreach ( $json as $record ) { - $record['file'] = $filename; - - if ( $is_ignored_code( $record['code'] ) ) { - continue; - } - - $results[] = $record; - - // Record submission stats. - if ( function_exists( 'bump_stats_extra' ) && 'production' === wp_get_environment_type() ) { - bump_stats_extra( 'plugin-check-' . $record['type'], $record['code'] ); - } - - // Determine if it failed the checks. - if ( $verdict && 'ERROR' === $record['type'] ) { - $verdict = false; - } - } - } - - // Generage the HTML for the Plugin Check output. - $html = sprintf( - '' . __( 'Results of Automated Plugin Scanning: %s', 'wporg-plugins' ) . '', - $verdict ? __( 'Pass', 'wporg-plugins' ) : __( 'Fail', 'wporg-plugins' ) - ); - if ( $results ) { - $html .= '
      '; - // Display errors, and then warnings. - foreach ( [ wp_list_filter( $results, [ 'type' => 'ERROR' ] ), wp_list_filter( $results, [ 'type' => 'ERROR' ], 'NOT' ) ] as $result_set ) { - foreach ( $result_set as $result ) { - $html .= sprintf( - '
    • %s %s: %s
    • ', - esc_html( $result['file'] ), - esc_url( $result['docs'] ?? '' ), - esc_html( $result['type'] . ' ' . $result['code'] ), - esc_html( $result['message'] ) - ); - } - } - $html .= '
    '; - } - $html .= __( 'Note: While the automated plugin scan is based on the Plugin Review Guidelines, it is not a complete review. A successful result from the scan does not guarantee that the plugin will be approved, only that it is sufficient to be reviewed. All submitted plugins are checked manually to ensure they meet security and guideline standards before approval.', 'wporg-plugins' ); - - // Return the results. - return [ - 'verdict' => $verdict, - 'results' => $results, - 'html' => $html, - 'runtime' => $total_time, - ]; - } - - public function log_to_slack( $fixme ) { - - // Copypasta, fix refs - - // If the upload is blocked; log it to slack. - if ( ! $verdict ) { - // Slack dm the logs. - $zip_name = reset( $_FILES )['name']; - $failpass = $verdict ? ':white_check_mark: passed' : ':x: failed'; - if ( $return_code > 1 ) { // TODO: Temporary, as we're always hitting this branch. - $failpass = ' :rotating_light: errored: ' . $return_code; - } - - $plugin_name_slug = $this->plugin['Name'] . ' (' . $this->plugin_slug . ')'; - // If we have a post object, link to it. - if ( $this->plugin_post ) { - $edit_post_link = admin_url( 'post.php?post=' . $this->plugin_post->ID . '&action=edit' ); // Can't use get_edit_post_link() as the user can't edit the post. - $plugin_name_slug = "<{$edit_post_link}|{$plugin_name_slug}>"; - } - - $text = "{$failpass} for {$zip_name}: {$plugin_name_slug} took {$total_time}s\n"; - - // Include a simplified / merged version of the results for review. - $group_by_code = [ 'ERROR' => [], 'WARNING' => [] ]; - foreach ( $results as $result ) { - $group_by_code[ $result['type'] ][ $result['code'] ] ??= []; - $group_by_code[ $result['type'] ][ $result['code'] ][] = $result; - } - foreach ( $group_by_code as $type => $codes ) { - foreach ( $codes as $code_results ) { - $text .= "• *{$type}: {$code_results[0]['code']}*"; - if ( 1 === count( $code_results ) ) { - $text .= ": {$code_results[0]['message']}\n"; - } else { - $text .= "\n"; - foreach ( array_unique( wp_list_pluck( $code_results, 'message' ) ) as $i => $message ) { - $multiplier = count( wp_list_filter( $code_results, [ 'message' => $message ] ) ); - $multiplier = $multiplier > 1 ? " {$multiplier}x" : ''; - - $text .= " {$i}. {$multiplier} {$message}\n"; - } - } - } - } - - notify_slack( PLUGIN_CHECK_LOGS_SLACK_CHANNEL, $text, wp_get_current_user(), true ); - } elseif ( $return_code ) { - // Log plugin-check timing out. - $zip_name = reset( $_FILES )['name']; - $text = ":rotating_light: Error: {$return_code} for {$zip_name}: {$this->plugin['Name']} ({$this->plugin_slug}) took {$total_time}s\n"; - notify_slack( PLUGIN_CHECK_LOGS_SLACK_CHANNEL, $text, wp_get_current_user(), true ); - } - - } -} \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/plugins/plugin-directory/class-plugin-directory.php b/wordpress.org/public_html/wp-content/plugins/plugin-directory/class-plugin-directory.php index 62ccc5fa3e..ef7f4c6ca9 100644 --- a/wordpress.org/public_html/wp-content/plugins/plugin-directory/class-plugin-directory.php +++ b/wordpress.org/public_html/wp-content/plugins/plugin-directory/class-plugin-directory.php @@ -67,8 +67,6 @@ private function __construct() { // Search Plugin_Search::instance(); - Plugin_Release::instance(); - // Add upload size limit to limit plugin ZIP file uploads to 10M add_filter( 'upload_size_limit', function( $size ) { return 10 * MB_IN_BYTES; @@ -559,7 +557,7 @@ public function init() { // Add duplicate search rule which will be hit before the following old-plugin tab rules add_rewrite_rule( '^search/([^/]+)/?$', 'index.php?s=$matches[1]', 'top' ); - + // Add additional tags endpoint, to avoid being caught in old-plugins tab rules. See: https://meta.trac.wordpress.org/ticket/6819. add_rewrite_rule( '^tags/([^/]+)/?$', 'index.php?plugin_tags=$matches[1]', 'top' ); @@ -1737,9 +1735,9 @@ public static function get_releases( $plugin ) { $plugin = self::get_plugin_post( $plugin ); $releases = get_post_meta( $plugin->ID, 'releases', true ); - // Data doesn't exist yet? Lets fill it out. + // Meta doesn't exist yet? Lets fill it out. if ( false === $releases || ! is_array( $releases ) ) { - $releases = self::prefill_releases_meta( $plugin ); + $releases = self::prefill_releses_meta( $plugin ); } /** @@ -1758,12 +1756,15 @@ public static function get_releases( $plugin ) { } /** - * Prefill the releases meta items for a plugin. + * Prefill the releases meta for a plugin. * * @param \WP_Post $plugin Plugin post object. * @return array */ - public static function prefill_releases_meta( $plugin ) { + public static function prefill_releses_meta( $plugin ) { + if ( ! $plugin->releases ) { + update_post_meta( $plugin->ID, 'releases', [] ); + } $tags = get_post_meta( $plugin->ID, 'tags', true ); if ( $tags ) { diff --git a/wordpress.org/public_html/wp-content/plugins/plugin-directory/class-plugin-release.php b/wordpress.org/public_html/wp-content/plugins/plugin-directory/class-plugin-release.php deleted file mode 100644 index 57795a8f35..0000000000 --- a/wordpress.org/public_html/wp-content/plugins/plugin-directory/class-plugin-release.php +++ /dev/null @@ -1,420 +0,0 @@ - array( - 'name' => __( 'Releases', 'wporg-plugins' ), - 'singular_name' => __( 'Release', 'wporg-plugins' ), - ), - 'public' => false, - 'show_ui' => false, - 'exclude_from_search' => true, - 'publicly_queryable' => true, - 'show_in_rest' => true, // FIXME: maybe? - 'supports' => array( 'title', 'editor' ), // TBD - 'rewrite' => false, - 'query_var' => false, - 'hierarchical' => false, // Disappointingly, this doesn't help us make a Post -> Release hierarchy. - ) ); - } - - // Starting point for an internal API, mostly copilot-generated. - - /** - * Get all releases for a plugin. - */ - public function get_releases( $plugin ) { - $plugin_id = ( get_post( $plugin ) )->ID; - - $releases = get_posts( array( - 'post_type' => 'plugin_release', - 'posts_per_page' => -1, - 'post_parent' => $plugin_id, - 'orderby' => 'date', - 'order' => 'DESC', - ) ); - - return $releases; - } - - /** - * Check if a plugin has any release CPTs stored. - * Note that this intentionally does not count draft releases. If needed, we can add a parameter to support that. - */ - public function has_releases( $plugin ) { - $release = $this->get_release( $plugin, null ); - return ! empty( $release ); - } - - /** - * Backfill releases for a plugin, if none exist. This uses the releases postmeta to populate the CPTs. - */ - public function maybe_backfill_releases( $plugin ) { - $plugin = get_post( $plugin ); - - if ( !$plugin || 'plugin' !== $plugin->post_type ) { - return new \WP_Error( 'invalid_plugin', 'Invalid plugin' ); - } - - // This will backfill the releases postmeta if needed. - $releases_postmeta = Plugin_Directory::get_releases( $plugin ); - - // Add or update the release CPTs using postmeta. - if ( $releases_postmeta && ! $this->has_releases( $plugin ) ) { - return $this->update_releases( $plugin, $releases_postmeta ); - } - - return false; - } - - /** - * Add release info for a plugin. - */ - public function add_release( $plugin, $release ) { - $plugin = get_post( $plugin ); - $plugin_id = $plugin->ID; - - if ( !$plugin || 'plugin' !== $plugin->post_type ) { - return new \WP_Error( 'invalid_plugin', 'Invalid plugin' ); - } - - $release_date = date( 'Y-m-d H:i:s', $release['date'] ); - $committer_user_id = get_user_by( 'login', reset( $release['committer'] ) )->ID; - if ( ! $committer_user_id ) { - return new \WP_Error( 'invalid_committer', 'Invalid committer' ); - } - - $post_status = ( 'trunk' === $release['tag'] ) ? 'draft' : 'publish'; - $post_title = ( 'trunk' === $release['tag'] ) ? 'trunk' : $release['version']; - - $release_id = wp_insert_post( array( - 'post_type' => 'plugin_release', - 'post_title' => $post_title, - 'post_name' => $plugin->post_name . '-' . $release['version'], - 'post_parent' => $plugin_id, - 'post_status' => $post_status, - 'post_date' => $release_date, // And/or post_date_gmt? - // Mirrors the metadata. - 'meta_input' => array( - 'release_date' => $release['date'], - 'release_tag' => $release['tag'], - 'release_version' => $release['version'], - 'release_committer' => $release['committer'], - 'release_zips_built' => $release['zips_built'], - 'release_confirmations_required' => $release['confirmations_required'], - 'release_revision' => $release['revision'], - 'release_commit_log' => $release['commit_log'] ?? null, - ), - // TODO: what else? Could store the changelog or other content at the point of release for comparison purposes. - ) ); - - return $release_id; - } - - /** - * Update existing release info. - */ - public function update_release( $release_id, $release ) { - - $release_date = date( 'Y-m-d H:i:s', $release['date'] ); - $committer_user_id = get_user_by( 'login', reset( $release['committer'] ) )->ID; - if ( ! $committer_user_id ) { - return new \WP_Error( 'invalid_committer', 'Invalid committer' ); - } - - $release_post = get_post( $release_id ); - if ( ! $release_post || 'plugin_release' !== $release_post->post_type ) { - return new \WP_Error( 'invalid_release', 'Invalid release' ); - } - - $parent_plugin = get_post( $release_post->post_parent ); - if ( ! $parent_plugin || 'plugin' !== $parent_plugin->post_type ) { - return new \WP_Error( 'invalid_plugin', 'Invalid plugin' ); - } - - $post_status = ( 'trunk' === $release['tag'] ) ? 'draft' : 'publish'; - $post_title = ( 'trunk' === $release['tag'] ) ? 'trunk' : $release['version']; - - $release_id = wp_update_post( array( - 'ID' => $release_post->ID, - 'post_type' => 'plugin_release', - 'post_title' => $post_title, - 'post_name' => $parent_plugin->post_name . '-' . $release['version'], - 'post_parent' => $parent_plugin->ID, - 'post_status' => $post_status, - 'post_date' => $release_date, // And/or post_date_gmt? - // Mirrors the metadata. - 'meta_input' => array( - 'release_date' => $release['date'], - 'release_tag' => $release['tag'], - 'release_version' => $release['version'], - 'release_committer' => $release['committer'], - 'release_zips_built' => $release['zips_built'], - 'release_confirmations_required' => $release['confirmations_required'], - 'release_revision' => $release['revision'], - 'release_commit_log' => $release['commit_log'] ?? null, - 'release_tested' => $release['tested'] ?? null, - 'release_requires_php' => $release['requires_php'] ?? null, - 'release_requires_wp' => $release['requires_wp'] ?? null, - 'release_requires_plugins' => $release['requires_plugins'] ?? null, - ), - // TODO: what else? Could store the changelog or other content at the point of release for comparison purposes. - ) ); - - return $release_id; - } - - /** - * Save draft (trunk) release for a plugin. - */ - public function add_or_update_draft_release( $plugin, $release ) { - $plugin = get_post( $plugin ); - - // Tag must be 'trunk' for this to be a draft release. - if ( 'trunk' !== $release['tag'] ) { - return new \WP_Error( 'invalid_tag', 'Invalid tag' ); - } - - if ( !$plugin || 'plugin' !== $plugin->post_type ) { - return new \WP_Error( 'invalid_plugin', 'Invalid plugin' ); - } - - // If there's already a published release for this plugin, we only create a draft if there are unreleased trunk commits. - $last_release = $this->get_release( $plugin, null ); - if ( $last_release ) { - if ( !empty( $release[ 'revision' ] ) ) { - // Don't create a draft unless the revision number is higher than the last release. - if ( max( $release['revision'] ) <= max( $last_release->release_revision ) ) { - return false; // Not an error, just skip. - } - } else { - // If we don't have revision numbers, use dates. Maybe this should be removed. - if ( strtotime( $release['date'] ) <= strtotime( $last_release->release_date ) ) { - return false; // Not an error, just skip. - } - } - } - - // Store the commit log in postmeta. We'll only do this for drafts. - $last_release_revision = max( $last_release->release_revision ); - if ( $last_release_revision && $release['revision'] ) { - $trunk_url = Import::PLUGIN_SVN_BASE . '/' . $plugin->post_name . '/trunk'; - $commit_log = SVN::log( $trunk_url, [ $last_release_revision, max( $release['revision'] ) ] ); - $release['commit_log'] = $commit_log['log'] ?? null; - } - $draft_id = $this->get_release( $plugin, 'trunk' ); - if ( $draft_id ) { - $release_id = $this->update_release( $draft_id, $release ); - } else { - $release_id = $this->add_release( $plugin, $release ); - } - - return $release_id; - } - - function delete_release( $release_id ) { - $release_post = get_post( $release_id ); - if ( ! $release_post || 'plugin_release' !== $release_post->post_type ) { - return new \WP_Error( 'invalid_release', 'Invalid release' ); - } - - return wp_delete_post( $release_id, false ); // FIXME: change to true for force delete when this is ready and WELL TESTED. - } - - /** - * Update all release info for a plugin. This will insert or update each release, and remove any unknown releases. - * - * @param int|WP_Post $plugin The plugin post. - * @param array $releases An array of release data. Should be a complete array of all releases. - * @return int|WP_Error The number of changes made. - */ - public function update_releases( $plugin, $releases ) { - $plugin_id = ( get_post( $plugin ) )->ID; - - if ( 'plugin' !== get_post_type( $plugin ) ) { - return new \WP_Error( 'invalid_plugin', 'Invalid plugin' ); - } - - $changed = false; - - // The current releases, if any, that need to be updated. - $current_releases = $this->get_releases( $plugin ); - $current_versions = wp_list_pluck( $current_releases, 'post_title', 'ID' ); - - // Add or update each release. - foreach ( $releases as $release ) { - if ( ! in_array( $release['version'], $current_versions ) ) { - // Add a CPT for the release if one does not yet exist. - $r = $this->add_release( $plugin, $release ); - #fputs( STDERR, 'add: ' . var_export( $r, true ) . "\n" ); - if ( is_wp_error( $r ) ) { - return $r; - } - ++ $changed; - } else { - // Update an existing CPT for the release. - // Note that this will update the CPT even if no data has changed. - $release_id = array_search( $release['version'], $current_versions ); - $r = $this->update_release( $release_id, $release ); - #fputs( STDERR, 'update: ' . var_export( $r, true ) . "\n" ); - if ( is_wp_error( $r ) ) { - return $r; - } - ++ $changed; - } - } - - // Remove any releases that are no longer present. - foreach ( $current_versions as $release_id => $release_version ) { - // A CPT that doesn't exist in the $releases array should be removed. - if ( ! in_array( $release_version, wp_list_pluck( $releases, 'version' ) ) ) { - $r = $this->delete_release( $release_id ); - #fputs( STDERR, 'delete: ' . var_export( $r, true ) . "\n" ); - if ( is_wp_error( $r ) ) { - return $r; - } - ++ $changed; - } - // If there are multiple releases with the same version (title), remove all but the first. - // TODO: Not sure this code should stay. - if ( $release_id !== array_search( $release_version, $current_versions ) ) { - $r = $this->delete_release( $release_id ); - #fputs( STDERR, 'delete dupe: ' . var_export( $r, true ) . "\n" ); - if ( is_wp_error( $r ) ) { - return $r; - } - ++ $changed; - } - } - - return $changed; - } - - /** - * Get a specific plugin release. - */ - public function get_release( $plugin, $version ) { - $plugin_id = ( get_post( $plugin ) )->ID; - - // Note that the post_status is 'draft' for trunk releases. - $post_status = ( 'trunk' === $version ) ? 'draft' : 'publish'; - - $release = get_posts( array( - 'post_type' => 'plugin_release', - 'posts_per_page' => 1, - 'post_parent' => $plugin_id, - 'title' => $version, - 'post_status' => $post_status, - 'orderby' => 'date', - 'order' => 'DESC', - ) ); - - return $release ? $release[0] : null; - } - - /** - * Publish a draft release (ie trunk). - * This will use svn to tag the release, and then publish the release post. - * - * Note: As yet untested. - */ - public function publish_release( $plugin ) { - $plugin = get_post( $plugin ); - - // TODO: current_user_can()? Or other checks? - - $draft = $this->get_release( $plugin, 'trunk' ); - if ( ! $draft ) { - return new \WP_Error( 'no_draft', 'No draft release found' ); - } - - $new_tag = $draft->release_version; - if ( $this->get_release( $plugin, $new_tag ) ) { - return new \WP_Error( 'tag_exists', 'Tag already exists', $new_tag ); - } - - if ( !$draft->plugin_check_result || ! $draft->plugin_check_result['verdict'] ) { - return new \WP_Error( 'plugin_check_failed', 'Plugin check failed' ); - } - - // TODO: Should import warnings exist on the release CPT? - if ( $plugin->_import_warnings ) { - // These warnings are likely (always?) present because the tag hasn't been created yet. - $ignored_warnings = [ - 'stable_tag_invalid_trunk_fallback' => 1, - 'stable_tag_invalid' => 1, - ]; - // Stop here if other warnings are present. - if ( array_diff_key( $plugin->_import_warnings, $ignored_warnings ) ) { - return new \WP_Error( 'import_warnings', 'Import warnings', $plugin->_import_warnings ); - } - } - - // TODO: What sanitizing or cross-checking do we need here? - $trunk_url = 'https://plugins.svn.wordpress.org/' . $plugin->post_name . '/trunk'; - $tag_url = 'https://plugins.svn.wordpress.org/' . $plugin->post_name . '/tags/' . $new_tag; - - // TODO: Decide if we're committing this as a specific user. Also any other options needed. - // Note that since this is a url-to-url copy, the commit happens immediately. - $svn_options = [ - 'message' => 'Tagging ' . $new_tag . ' from trunk@' . reset( $draft->release_revision ), // Commit message. i18n? - ]; - $tag_result = SVN::copy( $trunk_url, $tag_url, $svn_options ); - - if ( !$tag_result || ! $tag_result['result'] ) { - return new \WP_Error( 'svn_error', 'SVN error', $tag_result['errors'] ); - } - - // Include the tag revision in the release post list of revisions. - // This is so that we can easily tell if there are trunk commits after the release. - $release_revisions = array_merge( $draft->release_revision, [ $tag_result['revision'] ] ); - - $release_id = wp_update_post( array( - 'ID' => $draft->ID, - 'post_status' => 'publish', - 'post_title' => $new_tag, - 'meta_input' => array( - 'release_revision' => $release_revisions, - #'release_tag_revision' => $tag_result['revision'], // Do we need this? Probably not. - 'release_tag' => $new_tag, // Was 'trunk' - ), - ) ); - - return $release_id; - } - -} \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/plugins/plugin-directory/cli/class-import.php b/wordpress.org/public_html/wp-content/plugins/plugin-directory/cli/class-import.php index e57ab78844..4894e4298b 100644 --- a/wordpress.org/public_html/wp-content/plugins/plugin-directory/cli/class-import.php +++ b/wordpress.org/public_html/wp-content/plugins/plugin-directory/cli/class-import.php @@ -5,10 +5,8 @@ use WordPressdotorg\Plugin_Directory\Jobs\API_Update_Updater; use WordPressdotorg\Plugin_Directory\Jobs\Tide_Sync; use WordPressdotorg\Plugin_Directory\Block_JSON; -use WordPressdotorg\Plugin_Directory\Plugin_Check; use WordPressdotorg\Plugin_Directory\Plugin_Directory; use WordPressdotorg\Plugin_Directory\Email\Release_Confirmation as Release_Confirmation_Email; -use WordPressdotorg\Plugin_Directory\Plugin_Release; use WordPressdotorg\Plugin_Directory\Readme\{ Parser as Readme_Parser, Validator as Readme_Validator }; use WordPressdotorg\Plugin_Directory\Standalone\Plugins_Info_API; use WordPressdotorg\Plugin_Directory\Template; @@ -169,43 +167,6 @@ public function import_from_svn( $plugin_slug, $svn_changed_tags = array( 'trunk } } - // TODO: Test and confirm that this is the correct behavior. - if ( in_array( 'trunk', $svn_changed_tags ) ) { - // Backfill Release CPTs if needed. This should only happen once per plugin. - // Doing this here as a relatively safe way to distribute the load of backfilling. - Plugin_Release::instance()->maybe_backfill_releases( $plugin ); - - // Create or update a 'draft' release CPT for trunk changes. - // Note that this will only create a new draft if the version doesn't already exist as a release. - // TODO: refine this behaviour. (Maybe compare revision numbers?) - $release = Plugin_Release::instance()->add_or_update_draft_release( - $plugin, - [ - 'tag' => 'trunk', - 'version' => $version, // TODO: Is this correct? - 'committer' => [$last_committer], - 'revision' => [$last_revision], - 'tested' => $readme->tested, - 'requires' => $headers->RequiresWP, - 'requires_php' => $headers->RequiresPHP, - 'requires_plugins' => $requires_plugins, - ] - ); - - // While we're at it, run plugin check and store the results. - // FIXME: Maybe this belongs in export_and_parse_plugin()? The readme checker is run there. - $plugin_export_dir = $data['tmp_dir'] . '/export'; - if ( $release && ! is_wp_error( $release ) ) { - $plugin_check_result = Plugin_Check::run_checks( $plugin->post_name, $plugin_export_dir ); - #var_dump( $plugin_check_result ); - if ( $plugin_check_result ) { - update_post_meta( $release, 'plugin_check_result', $plugin_check_result ); - } else { - delete_post_meta( $release, 'plugin_check_result' ); - } - } - } - // Release confirmation if ( $plugin->release_confirmation ) { // If the stable tag is trunk, we shouldn't continue, as we don't support that for RC. diff --git a/wordpress.org/public_html/wp-content/plugins/plugin-directory/tools/class-svn.php b/wordpress.org/public_html/wp-content/plugins/plugin-directory/tools/class-svn.php index 2a5dde9d85..0178ed857b 100644 --- a/wordpress.org/public_html/wp-content/plugins/plugin-directory/tools/class-svn.php +++ b/wordpress.org/public_html/wp-content/plugins/plugin-directory/tools/class-svn.php @@ -428,61 +428,6 @@ public static function log( $url, $revision = 'HEAD', $options = array() ) { return compact( 'log', 'errors' ); } - /** - * Copy a SVN path (or url). - * - * @static - * - * @param string $from The path of the SVN folder to rename. May be a URL. - * @param string $to The new path of the SVN folder. May be a URL. - * @param array $options Optional. A list of options to pass to SVN. Default: empty array. - * @return array { - * @type bool $result The result of the operation. - * @type int $revision The revision. - * @type false|array $errors Whether any errors or warnings were encountered. - * } - */ - public static function copy( $from, $to, $options = array() ) { - // TODO: consider refactoring this with rename, since the code is almost identical. - $options[] = 'non-interactive'; - $is_url = ( preg_match( '#https?://#i', $from ) && preg_match( '#https?://#i', $to ) ); - - if ( $is_url ) { - // Set the message if not provided. - if ( ! isset( $options['message'] ) && ! isset( $options['m'] ) ) { - $options['message'] = sprintf( "Copy %s to %s.", basename( $from ), basename( $to ) ); - } - - if ( empty( $options['username'] ) ) { - $options['username'] = PLUGIN_SVN_MANAGEMENT_USER; - $options['password'] = PLUGIN_SVN_MANAGEMENT_PASS; - } - } - - $esc_options = self::parse_esc_parameters( $options ); - - $esc_from = escapeshellarg( $from ); - $esc_to = escapeshellarg( $to ); - - $output = self::shell_exec( "svn cp $esc_from $esc_to $esc_options 2>&1" ); - if ( $is_url && preg_match( '/Committed revision (?P\d+)[.]/i', $output, $m ) ) { - $revision = (int) $m['revision']; - $result = true; - $errors = false; - } else { - $errors = self::parse_svn_errors( $output ); - $revision = false; - - if ( $is_url || $errors ) { - $result = false; - } else { - $result = true; - } - } - - return compact( 'result', 'revision', 'errors' ); - } - /** * Rename a SVN path (or url). * diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/card/block.json b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/card/block.json new file mode 100644 index 0000000000..3ce8c4872d --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/card/block.json @@ -0,0 +1,27 @@ +{ + "$schema": "https://schemas.wp.org/trunk/block.json", + "apiVersion": 2, + "name": "wporg/card", + "version": "0.1.0", + "title": "Release Card", + "category": "design", + "icon": "", + "description": "A block to display a card.", + "textdomain": "wporg", + "attributes": { + "title": { + "type": "string", + "default": "" + } + }, + "supports": { + "html": false, + "interactivity": true + }, + "usesContext": [ + "postId" + ], + "editorScript": "file:./index.js", + "render": "file:./render.php", + "style": "file:./style-index.css" +} \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/card/index.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/card/index.asset.php new file mode 100644 index 0000000000..459c076b07 --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/card/index.asset.php @@ -0,0 +1 @@ + array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => '47e3efb31a2fd6ac5818'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/card/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/card/index.js new file mode 100644 index 0000000000..bd122c23df --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/card/index.js @@ -0,0 +1,298 @@ +/******/ (() => { // webpackBootstrap +/******/ "use strict"; +/******/ var __webpack_modules__ = ({ + +/***/ "./src/blocks/card/index.js": +/*!**********************************!*\ + !*** ./src/blocks/card/index.js ***! + \**********************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); +/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/blocks */ "@wordpress/blocks"); +/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/server-side-render */ "@wordpress/server-side-render"); +/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/block-editor */ "@wordpress/block-editor"); +/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__); +/* harmony import */ var _block_json__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./block.json */ "./src/blocks/card/block.json"); +/* harmony import */ var _style_scss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./style.scss */ "./src/blocks/card/style.scss"); + +/** + * WordPress dependencies + */ + + + + + +/** + * Internal dependencies + */ + + +function Edit({ + attributes, + name +}) { + return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", { + ...(0,_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__.useBlockProps)() + }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Disabled, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)((_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default()), { + block: name, + attributes: attributes + }))); +} +(0,_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__.registerBlockType)(_block_json__WEBPACK_IMPORTED_MODULE_5__.name, { + edit: Edit, + save: () => null +}); + +/***/ }), + +/***/ "./src/blocks/card/style.scss": +/*!************************************!*\ + !*** ./src/blocks/card/style.scss ***! + \************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +// extracted by mini-css-extract-plugin + + +/***/ }), + +/***/ "react": +/*!************************!*\ + !*** external "React" ***! + \************************/ +/***/ ((module) => { + +module.exports = window["React"]; + +/***/ }), + +/***/ "@wordpress/block-editor": +/*!*************************************!*\ + !*** external ["wp","blockEditor"] ***! + \*************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["blockEditor"]; + +/***/ }), + +/***/ "@wordpress/blocks": +/*!********************************!*\ + !*** external ["wp","blocks"] ***! + \********************************/ +/***/ ((module) => { + +module.exports = window["wp"]["blocks"]; + +/***/ }), + +/***/ "@wordpress/components": +/*!************************************!*\ + !*** external ["wp","components"] ***! + \************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["components"]; + +/***/ }), + +/***/ "@wordpress/server-side-render": +/*!******************************************!*\ + !*** external ["wp","serverSideRender"] ***! + \******************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["serverSideRender"]; + +/***/ }), + +/***/ "./src/blocks/card/block.json": +/*!************************************!*\ + !*** ./src/blocks/card/block.json ***! + \************************************/ +/***/ ((module) => { + +module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"wporg/card","version":"0.1.0","title":"Release Card","category":"design","icon":"","description":"A block to display a card.","textdomain":"wporg","attributes":{"title":{"type":"string","default":""}},"supports":{"html":false,"interactivity":true},"usesContext":["postId"],"editorScript":"file:./index.js","render":"file:./render.php","style":"file:./style-index.css"}'); + +/***/ }) + +/******/ }); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ // no module.id needed +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = __webpack_modules__; +/******/ +/************************************************************************/ +/******/ /* webpack/runtime/chunk loaded */ +/******/ (() => { +/******/ var deferred = []; +/******/ __webpack_require__.O = (result, chunkIds, fn, priority) => { +/******/ if(chunkIds) { +/******/ priority = priority || 0; +/******/ for(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1]; +/******/ deferred[i] = [chunkIds, fn, priority]; +/******/ return; +/******/ } +/******/ var notFulfilled = Infinity; +/******/ for (var i = 0; i < deferred.length; i++) { +/******/ var chunkIds = deferred[i][0]; +/******/ var fn = deferred[i][1]; +/******/ var priority = deferred[i][2]; +/******/ var fulfilled = true; +/******/ for (var j = 0; j < chunkIds.length; j++) { +/******/ if ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) { +/******/ chunkIds.splice(j--, 1); +/******/ } else { +/******/ fulfilled = false; +/******/ if(priority < notFulfilled) notFulfilled = priority; +/******/ } +/******/ } +/******/ if(fulfilled) { +/******/ deferred.splice(i--, 1) +/******/ var r = fn(); +/******/ if (r !== undefined) result = r; +/******/ } +/******/ } +/******/ return result; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/compat get default export */ +/******/ (() => { +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = (module) => { +/******/ var getter = module && module.__esModule ? +/******/ () => (module['default']) : +/******/ () => (module); +/******/ __webpack_require__.d(getter, { a: getter }); +/******/ return getter; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/define property getters */ +/******/ (() => { +/******/ // define getter functions for harmony exports +/******/ __webpack_require__.d = (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 */ +/******/ (() => { +/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) +/******/ })(); +/******/ +/******/ /* webpack/runtime/make namespace object */ +/******/ (() => { +/******/ // define __esModule on exports +/******/ __webpack_require__.r = (exports) => { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/jsonp chunk loading */ +/******/ (() => { +/******/ // no baseURI +/******/ +/******/ // object to store loaded and loading chunks +/******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched +/******/ // [resolve, reject, Promise] = chunk loading, 0 = chunk loaded +/******/ var installedChunks = { +/******/ "blocks/card/index": 0, +/******/ "blocks/card/style-index": 0 +/******/ }; +/******/ +/******/ // no chunk on demand loading +/******/ +/******/ // no prefetching +/******/ +/******/ // no preloaded +/******/ +/******/ // no HMR +/******/ +/******/ // no HMR manifest +/******/ +/******/ __webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0); +/******/ +/******/ // install a JSONP callback for chunk loading +/******/ var webpackJsonpCallback = (parentChunkLoadingFunction, data) => { +/******/ var chunkIds = data[0]; +/******/ var moreModules = data[1]; +/******/ var runtime = data[2]; +/******/ // add "moreModules" to the modules object, +/******/ // then flag all "chunkIds" as loaded and fire callback +/******/ var moduleId, chunkId, i = 0; +/******/ if(chunkIds.some((id) => (installedChunks[id] !== 0))) { +/******/ for(moduleId in moreModules) { +/******/ if(__webpack_require__.o(moreModules, moduleId)) { +/******/ __webpack_require__.m[moduleId] = moreModules[moduleId]; +/******/ } +/******/ } +/******/ if(runtime) var result = runtime(__webpack_require__); +/******/ } +/******/ if(parentChunkLoadingFunction) parentChunkLoadingFunction(data); +/******/ for(;i < chunkIds.length; i++) { +/******/ chunkId = chunkIds[i]; +/******/ if(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) { +/******/ installedChunks[chunkId][0](); +/******/ } +/******/ installedChunks[chunkId] = 0; +/******/ } +/******/ return __webpack_require__.O(result); +/******/ } +/******/ +/******/ var chunkLoadingGlobal = self["webpackChunkwporg_plugins_2024"] = self["webpackChunkwporg_plugins_2024"] || []; +/******/ chunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0)); +/******/ chunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal)); +/******/ })(); +/******/ +/************************************************************************/ +/******/ +/******/ // startup +/******/ // Load entry module and return exports +/******/ // This entry module depends on other loaded chunks and execution need to be delayed +/******/ var __webpack_exports__ = __webpack_require__.O(undefined, ["blocks/card/style-index"], () => (__webpack_require__("./src/blocks/card/index.js"))) +/******/ __webpack_exports__ = __webpack_require__.O(__webpack_exports__); +/******/ +/******/ })() +; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/card/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/card/render.php new file mode 100644 index 0000000000..f4ac504879 --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/card/render.php @@ -0,0 +1,27 @@ + +
    + +

    + {$block->attributes['title']} +

    + + $content +
    + +HTML; + +$output = sprintf( + '
    %2$s
    ', + wp_kses_data( get_block_wrapper_attributes() ), + $html, +); + +echo do_blocks( $output ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/card/style-index.css b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/card/style-index.css new file mode 100644 index 0000000000..9de758353f --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/card/style-index.css @@ -0,0 +1,8 @@ +/*!***************************************************************************************************************************************************************************************************************************************************!*\ + !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/blocks/card/style.scss ***! + \***************************************************************************************************************************************************************************************************************************************************/ +.wp-block-wporg-release-draft { + font-size: var(--wp--preset--font-size--small); +} + +/*# sourceMappingURL=style-index.css.map*/ \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks/render.php index b7a4b97b90..de7a1aa6b5 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks/render.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks/render.php @@ -1,8 +1,12 @@ ' . __( 'No issues found.', 'wporg-plugins' ) . '

    '; - } - - $output = '
      '; - - foreach ( $results as $result ) { - $type_class = isset( $result['type'] ) ? strtolower( $result['type'] ) : ''; - - $output .= sprintf( - '
    • %1$s %2$s
    • ', - esc_html( $result['message'] ), - ! empty( $result['docs'] ) - ? sprintf( - '%s', - esc_url( $result['docs'] ), - __( 'More Information', 'wporg-plugins' ) - ) - : '' - ); - } - - $output .= '
    '; - - return $output; -} - -/** - * Get the counts of each error type. - * - * @param array $result The plugin check result. - * - * @return array Array of error type counts. - */ -function get_error_type_counts( $result ) { - return array_reduce( - $result ?? array(), - function ( $carry, $item ) { - if ( isset( $item['type'] ) ) { - $carry[ $item['type'] ] = ( $carry[ $item['type'] ] ?? 0 ) + 1; - } - return $carry; - }, - array( - 'ERROR' => 0, - 'WARNING' => 0, - ) - ); -} - -/** - * Get the test run message. - * - * @param object $plugin_check_errors The plugin check errors. - * - * @return string The test run message. - */ -function get_test_run_message( $plugin_check_errors ) { - - $plugin_check_link = sprintf( - '%s', - esc_url( 'https://wordpress.org/plugins/plugin-check' ), - esc_html__( 'Plugin Check (PCP)', 'wporg-plugins' ) - ); - - if ( $plugin_check_errors->verdict ) { - return sprintf( - /* translators: %1$s is a link to the Plugin Check (PCP) tool. */ - __( 'Passed the %1$s.', 'wporg-plugins' ), - $plugin_check_link - ); - } - - $counts = get_error_type_counts( $plugin_check_errors['results'] ); - - $error_message = sprintf( _n( '%s error', '%s errors', $counts['ERROR'], 'wporg-plugins' ), $counts['ERROR'] ); - $warning_message = sprintf( _n( '%s warning', '%s warnings', $counts['WARNING'], 'wporg-plugins' ), $counts['WARNING'] ); - $message = ''; - - if ( empty( $counts['ERROR'] ) ) { - $message = $warning_message; - } elseif ( empty( $counts['WARNING'] ) ) { - $message = $error_message; - } else { - /* translators: %1$s: number of errors, %2$s: number of warnings */ - $message = sprintf( - '%1$s and %2$s', - $error_message, - $warning_message - ); - } - - return sprintf( - '
    %1$s%2$s
    ', - sprintf( - /* translators: %1$s is a link to the Plugin Check (PCP) tool. */ - __( '%1$s completed with %2$s.', 'wporg-plugins' ), - $plugin_check_link, - $message - ), - format_plugin_check_results( $plugin_check_errors['results'] ), - ); -} - $plugin_check_errors = get_post_meta( get_post( $block->context['postId'] )->ID, 'plugin_check_result', true ); $heading = sprintf( @@ -143,8 +36,8 @@ function get_test_run_message( $plugin_check_errors ) { // Create a block with the overall status. $status_block = sprintf( - '%2$s', - $plugin_check_errors->verdict ? 'success' : 'error', + '%2$s', + $plugin_check_errors['verdict'] ? 'success' : 'warning', get_test_run_message( $plugin_check_errors ) ); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-commits/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-commits/render.php index 1f7388593b..827e1b442e 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-commits/render.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-commits/render.php @@ -6,10 +6,7 @@ */ use WordPressdotorg\Plugin_Directory\Readme\Validator as Readme_Validator; - -if ( ! current_user_can( 'plugin_admin_edit', $post ) ) { - return; -} +use function WordPressdotorg\Plugin_Directory\Theme\{get_plugin_slug, get_revision_log_link}; if ( ! $block->context['postId'] ) { return; @@ -21,79 +18,16 @@ return '

    ' . __( 'No commits found.', 'wporg-plugins' ) . '

    '; } -/** - * Count the number of files edited, added, and deleted in the given commits. - * - * @param array $commits Array of commits. - * @return array Associative array with keys 'edited', 'added', and 'deleted'. - */ -function count_file_changes( $commits ) { - $file_actions = array(); - - ksort( $commits ); - - foreach ( $commits as $commit ) { - if ( ! isset( $commit['actions'] ) || ! is_array( $commit['actions'] ) ) { - continue; - } - - foreach ( $commit['actions'] as $file_path => $action ) { - $file_actions[ $file_path ] = $action; - } - } - - $edited_files = array(); - $added_files = array(); - $deleted_files = array(); - - foreach ( $file_actions as $file_path => $action ) { - switch ( $action ) { - case 'M': - $edited_files[ $file_path ] = true; - break; - case 'A': - $added_files[ $file_path ] = true; - break; - case 'D': - $deleted_files[ $file_path ] = true; - break; - } - } - - return array( - 'edited' => count( $edited_files ), - 'added' => count( $added_files ), - 'deleted' => count( $deleted_files ), - ); -} - -/** - * Generate a summary of the changes made in the given commits. - * - * @param array $change_counts Associative array with keys 'edited', 'added', and 'deleted'. - * @return string Summary of the changes. - */ -function generate_summary( $change_counts ) { - $parts = array(); - - if ( $change_counts['added'] > 0 ) { - $parts[] = sprintf( '%d added', $change_counts['added'] ); - } - - if ( $change_counts['deleted'] > 0 ) { - $parts[] = sprintf( '%d deleted', $change_counts['deleted'] ); - } - - if ( $change_counts['edited'] > 0 ) { - $parts[] = sprintf( '%d edited', $change_counts['edited'] ); +// Newest commits first. +usort( + $commits, + function ( $a, $b ) { + return $b['date'] <=> $a['date']; } +); - if ( empty( $parts ) ) { - return ''; - } - - return implode( ', ', $parts ); -} +$maximum_commits = 5; +$sliced_commits = array_slice( $commits, 0, $maximum_commits ); ?> @@ -107,54 +41,59 @@ function generate_summary( $change_counts ) { esc_attr__( 'Commits', 'wporg-plugins' ) ); - $change_counts = count_file_changes( $commits ); - $summary = generate_summary( $change_counts ); - - $subheading = sprintf( - ' - - ', - $summary - ); - echo do_blocks( $heading ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped - echo do_blocks( $subheading ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?> -
      +
      • - - ID, 20 ); ?> - display_name ); ?> - - context['postId'] ); - $parent_post = get_post( $release_post->post_parent ); + printf( + '%2$s', + esc_url( + sprintf( + 'https://plugins.trac.wordpress.org/changeset/%1$s/%2$s/trunk', + $commit['revision'], + get_plugin_slug() + ) + ), + esc_html( $commit['message'] ) + ); + ?> + - if ( $parent_post ) { + -
      • + + + $maximum_commits ) : ?> +
      • + + + +
      • +
    diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-commits/style-index.css b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-commits/style-index.css index 466d264c4f..017db2a6de 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-commits/style-index.css +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-commits/style-index.css @@ -4,15 +4,17 @@ .wp-block-wporg-release-commits { margin-top: 0 !important; } -.wp-block-wporg-release-commits ul { + +.wp-block-wporg-release-commit-list { display: flex; flex-direction: column; gap: 8px; list-style: none; } -.wp-block-wporg-release-commits li { +.wp-block-wporg-release-commit-list li { display: flex; - gap: 8px; + gap: inherit; + align-items: center; } .wp-block-wporg-release-commit-author { @@ -22,4 +24,12 @@ font-weight: 500; } +.wp-block-wporg-release-commit-by-line { + color: var(--wp--preset--color--charcoal-4) !important; + font-size: 12px; +} +.wp-block-wporg-release-commit-by-line a { + color: var(--wp--preset--color--charcoal-4) !important; +} + /*# sourceMappingURL=style-index.css.map*/ \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-date/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-date/render.php index 9a98437739..1b2a451d80 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-date/render.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-date/render.php @@ -1,15 +1,20 @@ context['postId'] ) { return; } -$post = get_post( $block->context['postId'] ); -if ( ! $post ) { +$release_post = get_post( $block->context['postId'] ); +if ( ! $release_post ) { return; } -if ( 'publish' !== $post->post_status ) { +if ( 'publish' !== $release_post->post_status ) { return 3; } diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-details-form/block.json b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-details-form/block.json index 46b5c89954..b6b3110b03 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-details-form/block.json +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-details-form/block.json @@ -14,7 +14,8 @@ "interactivity": true }, "usesContext": [ - "postId" + "postId", + "pluginSlug" ], "editorScript": "file:./index.js", "render": "file:./render.php", diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-details-form/index.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-details-form/index.asset.php index 6e0f2c76c1..3d43d176f6 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-details-form/index.asset.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-details-form/index.asset.php @@ -1 +1 @@ - array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => '314ffa4356c58663de23'); + array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => 'b33dec13bb1cbe0f3761'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-details-form/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-details-form/index.js index 81a050b9a2..50704550b2 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-details-form/index.js +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-details-form/index.js @@ -121,7 +121,7 @@ module.exports = window["wp"]["serverSideRender"]; \****************************************************/ /***/ ((module) => { -module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"wporg/release-details-form","version":"0.1.0","title":"Release Details Form","category":"design","icon":"","description":"A block to display release details form.","textdomain":"wporg","attributes":{},"supports":{"html":false,"interactivity":true},"usesContext":["postId"],"editorScript":"file:./index.js","render":"file:./render.php","style":"file:./style-index.css"}'); +module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"wporg/release-details-form","version":"0.1.0","title":"Release Details Form","category":"design","icon":"","description":"A block to display release details form.","textdomain":"wporg","attributes":{},"supports":{"html":false,"interactivity":true},"usesContext":["postId","pluginSlug"],"editorScript":"file:./index.js","render":"file:./render.php","style":"file:./style-index.css"}'); /***/ }) diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-details-form/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-details-form/render.php index 7d35e07a2a..fad7f60f7d 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-details-form/render.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-details-form/render.php @@ -5,23 +5,23 @@ * @package WordPressdotorg\Plugin_Directory */ -use WordPressdotorg\Plugin_Directory\Template; -use function WordPressdotorg\Plugin_Directory\Theme\{get_blueprint_url, get_latest_release}; +use function WordPressdotorg\Plugin_Directory\Theme\{get_blueprint_url, get_latest_release, get_revision_changeset_link}; // Ensure the block context has a valid post ID. if ( empty( $block->context['postId'] ) ) { return; } -$release_post = get_post( $block->context['postId'] ); -$current_version = get_post_meta( $block->context['postId'], 'release_version', true ); -$tested_up_to = get_post_meta( $block->context['postId'], 'release_tested', true ); +$release_post = get_post( $block->context['postId'] ); // Bail if the release post does not exist. if ( ! $release_post ) { return; } +$current_version = get_post_meta( $block->context['postId'], 'release_version', true ); +$tested_up_to = get_post_meta( $block->context['postId'], 'release_tested', true ); + /** * Returns whether the tested_up_to value is recent. * @@ -49,20 +49,17 @@ function has_recently_been_tested( $tested_up_to ) { return $tested_major >= $latest_major; } - /** * Generate the HTML for a release item content block. * * @param string $label The label for the item. - * @param string $value The value for the item. * @param string $content The additional content or description. * @return string The formatted HTML content for the release item. */ -function get_release_item_content( $label, $value, $content ) { +function get_release_item_content( $label, $content ) { return sprintf( - '
    %1$s: %2$s
    %3$s
    ', - wp_kses_post( $label ), - wp_kses_post( $value ), + '
    %1$s
    %2$s
    ', + esc_html( $label ), wp_kses_post( $content ) ); } @@ -77,7 +74,7 @@ function get_release_item_content( $label, $value, $content ) { function get_release_check_item( $status, $content ) { return do_blocks( sprintf( - '%2$s', + '%2$s', esc_attr( $status ), $content ) @@ -87,23 +84,74 @@ function get_release_check_item( $status, $content ) { /** * Generate the block content for the version number check item. * - * @param bool $verdict Whether the version number is valid. - * @param string $value The current version number. - * @param WP_Post $release_post The release post object. + * @param bool $verdict Whether the version number is valid. + * @param string $value The current version number. + * + * @return string The block content. + */ +function get_changelog_check_item() { + $label = __( 'Update your changelog with key changes.', 'wporg-plugins' ); + $info_text = sprintf( + 'Learn more about writing useful changelogs.', + esc_url( 'https://developer.wordpress.org/plugins/wordpress-org/plugin-developer-faq/#what-should-be-in-my-changelog' ), + ); + + $content = get_release_item_content( $label, $info_text ); + + return get_release_check_item( 'default', $content ); +} + +/** + * Generate the block content for the version number check item. + * + * @param bool $verdict Whether the version number is valid. + * @param string $value The current version number. + * + * @return string The block content. + */ +function get_view_diff_check_item( $post ) { + $label = __( 'Review your changes.', 'wporg-plugins' ); + $commits = get_post_meta( $post->ID, 'release_commit_log', true ); + $plugin = get_post( $post->post_parent ); + $info_text = sprintf( + /* translators: %s: URL to the plugin in the Plugin Directory */ + __( 'Scan through your changeset before publishing.', 'wporg-plugins' ), + esc_url( get_revision_changeset_link( $plugin->post_name, $commits ) ) + ); + $content = get_release_item_content( $label, $info_text ); + + return get_release_check_item( 'default', $content ); +} + +/** + * Generate the block content for the version number check item. + * + * @param bool $verdict Whether the version number is valid. + * @param string $value The current version number. * * @return string The block content. */ -function get_version_number_check_item( $verdict, $value, $release_post ) { - $label = __( 'Version number', 'wporg-plugins' ); - $info_text = __( 'It looks like plugin version was incremented appropriately.', 'wporg-plugins' ); - $status = 'success'; +function get_version_number_check_item( $verdict, $value ) { + $label = __( 'Increment your version number.', 'wporg-plugins' ); + + $info_text = sprintf( + /* translators: %s: The current version number */ + __( 'Current version: %s', 'wporg-plugins' ), + '' . $value . '', + ); + + $status = ''; if ( ! $verdict ) { $status = 'error'; - $info_text = __( 'Please increment your plugin\'s version number.', 'wporg-plugins' ); + $info_text = sprintf( + /* translators: %s: The current version number */ + __( 'Your plugin\'s version number %s must be incremented before you can publish.', 'wporg-plugins' ), + '' . $value . '', + ); } - $content = get_release_item_content( $label, $value, $info_text ); + $content = get_release_item_content( $label, $info_text ); return get_release_check_item( $status, $content ); } @@ -111,29 +159,32 @@ function get_version_number_check_item( $verdict, $value, $release_post ) { /** * Generate the block content for the "Tested up to" check item. * - * @param string $value The tested up to value. + * @param bool $verdict Whether the tested up to value is recent. + * @param string $value The tested up to value. + * @param WP_Post $release_post The release post object. + * * @return string The block content. */ function get_tested_up_to_check_item( $verdict, $value, $release_post ) { $label = __( - 'Tested up to', + 'Test your plugin with the latest version of WordPress.', 'wporg-plugins' ); - $status = 'success'; + $status = ''; - $parent = get_post( $release_post->post_parent ); + $plugin = get_post( $release_post->post_parent ); $blueprint_url = get_blueprint_url( sprintf( 'https://downloads.wordpress.org/plugin/%s.zip', - $parent->post_name, + $plugin->post_name, ) ); $info_text = sprintf( - /* translators: %s: URL to the plugin in the Plugin Directory */ - __( 'Everything looks great! Playground makes testing easy. If needed, you can test it here.', 'wporg-plugins' ), - esc_url( $blueprint_url ) + /* translators: %s: The Tested Up to value */ + __( 'Tested up to: %s', 'wporg-plugins' ), + '' . $value . '', ); if ( empty( $value ) ) { @@ -144,12 +195,13 @@ function get_tested_up_to_check_item( $verdict, $value, $release_post ) { $status = 'warning'; $info_text = sprintf( /* translators: %s: URL to the plugin in the Plugin Directory */ - __( 'Your plugin has been tested with recent versions of WordPress! Test it now in Playground.', 'wporg-plugins' ), + __( 'Tested up to is %1$s. Test it now in Playground and update. ', 'wporg-plugins' ), + '' . $value . '', esc_url( $blueprint_url ) ); } - $content = get_release_item_content( $label, $value, $info_text ); + $content = get_release_item_content( $label, $info_text ); return get_release_check_item( $status, $content ); } @@ -166,22 +218,38 @@ function get_tested_up_to_check_item( $verdict, $value, $release_post ) { data-wp-interactive="async-action-block" > - -

    %s

    - ', - esc_html__( 'Headers', 'wporg-plugins' ) + +

    %s

    + ', + esc_html__( 'Checklist', 'wporg-plugins' ) + ) ) - ); -?> - + ?>
      - + + +
    + + + //
    + //
    + //

    %s

    + //
    + // ', + // esc_html__( 'You need to increment your plugin version number and reload the page.', 'wporg-plugins' ) + // ); + // echo do_blocks( $block ); + ?> +
    -
    - -
    - -
    - -

    - $publish_title -

    - -
    - - - -

    $publish_intro_text

    - - - +
    + +
    + +
    + +

    + $publish_title +

    +
    + + +

    $publish_intro_text

    + + + +
    - + +
    HTML; printf( diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft copy/style-index.css b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft copy/style-index.css index c229af784c..12c4011027 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft copy/style-index.css +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft copy/style-index.css @@ -4,9 +4,5 @@ .wp-block-wporg-release-draft { font-size: var(--wp--preset--font-size--small); } -.wp-block-wporg-release-draft ul { - margin-top: var(--wp--preset--spacing--10); - padding: 0; -} /*# sourceMappingURL=style-index.css.map*/ \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-card/block.json b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-card/block.json new file mode 100644 index 0000000000..ac65278c75 --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-card/block.json @@ -0,0 +1,27 @@ +{ + "$schema": "https://schemas.wp.org/trunk/block.json", + "apiVersion": 2, + "name": "wporg/release-draft-card", + "version": "0.1.0", + "title": "Release Card", + "category": "design", + "icon": "", + "description": "A block to display release draft card.", + "textdomain": "wporg", + "attributes": { + "title": { + "type": "string", + "default": "" + } + }, + "supports": { + "html": false, + "interactivity": true + }, + "usesContext": [ + "postId" + ], + "editorScript": "file:./index.js", + "render": "file:./render.php", + "style": "file:./style-index.css" +} \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-card/index.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-card/index.asset.php new file mode 100644 index 0000000000..0dec727d7d --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-card/index.asset.php @@ -0,0 +1 @@ + array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => 'ff8e2cb22c250b0d6bfe'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-card/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-card/index.js new file mode 100644 index 0000000000..602db4b870 --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-card/index.js @@ -0,0 +1,298 @@ +/******/ (() => { // webpackBootstrap +/******/ "use strict"; +/******/ var __webpack_modules__ = ({ + +/***/ "./src/blocks/release-draft-card/index.js": +/*!************************************************!*\ + !*** ./src/blocks/release-draft-card/index.js ***! + \************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); +/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/blocks */ "@wordpress/blocks"); +/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/server-side-render */ "@wordpress/server-side-render"); +/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/block-editor */ "@wordpress/block-editor"); +/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__); +/* harmony import */ var _block_json__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./block.json */ "./src/blocks/release-draft-card/block.json"); +/* harmony import */ var _style_scss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./style.scss */ "./src/blocks/release-draft-card/style.scss"); + +/** + * WordPress dependencies + */ + + + + + +/** + * Internal dependencies + */ + + +function Edit({ + attributes, + name +}) { + return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", { + ...(0,_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__.useBlockProps)() + }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Disabled, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)((_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default()), { + block: name, + attributes: attributes + }))); +} +(0,_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__.registerBlockType)(_block_json__WEBPACK_IMPORTED_MODULE_5__.name, { + edit: Edit, + save: () => null +}); + +/***/ }), + +/***/ "./src/blocks/release-draft-card/style.scss": +/*!**************************************************!*\ + !*** ./src/blocks/release-draft-card/style.scss ***! + \**************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +// extracted by mini-css-extract-plugin + + +/***/ }), + +/***/ "react": +/*!************************!*\ + !*** external "React" ***! + \************************/ +/***/ ((module) => { + +module.exports = window["React"]; + +/***/ }), + +/***/ "@wordpress/block-editor": +/*!*************************************!*\ + !*** external ["wp","blockEditor"] ***! + \*************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["blockEditor"]; + +/***/ }), + +/***/ "@wordpress/blocks": +/*!********************************!*\ + !*** external ["wp","blocks"] ***! + \********************************/ +/***/ ((module) => { + +module.exports = window["wp"]["blocks"]; + +/***/ }), + +/***/ "@wordpress/components": +/*!************************************!*\ + !*** external ["wp","components"] ***! + \************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["components"]; + +/***/ }), + +/***/ "@wordpress/server-side-render": +/*!******************************************!*\ + !*** external ["wp","serverSideRender"] ***! + \******************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["serverSideRender"]; + +/***/ }), + +/***/ "./src/blocks/release-draft-card/block.json": +/*!**************************************************!*\ + !*** ./src/blocks/release-draft-card/block.json ***! + \**************************************************/ +/***/ ((module) => { + +module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"wporg/release-draft-card","version":"0.1.0","title":"Release Card","category":"design","icon":"","description":"A block to display release draft card.","textdomain":"wporg","attributes":{"title":{"type":"string","default":""}},"supports":{"html":false,"interactivity":true},"usesContext":["postId"],"editorScript":"file:./index.js","render":"file:./render.php","style":"file:./style-index.css"}'); + +/***/ }) + +/******/ }); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ // no module.id needed +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = __webpack_modules__; +/******/ +/************************************************************************/ +/******/ /* webpack/runtime/chunk loaded */ +/******/ (() => { +/******/ var deferred = []; +/******/ __webpack_require__.O = (result, chunkIds, fn, priority) => { +/******/ if(chunkIds) { +/******/ priority = priority || 0; +/******/ for(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1]; +/******/ deferred[i] = [chunkIds, fn, priority]; +/******/ return; +/******/ } +/******/ var notFulfilled = Infinity; +/******/ for (var i = 0; i < deferred.length; i++) { +/******/ var chunkIds = deferred[i][0]; +/******/ var fn = deferred[i][1]; +/******/ var priority = deferred[i][2]; +/******/ var fulfilled = true; +/******/ for (var j = 0; j < chunkIds.length; j++) { +/******/ if ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) { +/******/ chunkIds.splice(j--, 1); +/******/ } else { +/******/ fulfilled = false; +/******/ if(priority < notFulfilled) notFulfilled = priority; +/******/ } +/******/ } +/******/ if(fulfilled) { +/******/ deferred.splice(i--, 1) +/******/ var r = fn(); +/******/ if (r !== undefined) result = r; +/******/ } +/******/ } +/******/ return result; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/compat get default export */ +/******/ (() => { +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = (module) => { +/******/ var getter = module && module.__esModule ? +/******/ () => (module['default']) : +/******/ () => (module); +/******/ __webpack_require__.d(getter, { a: getter }); +/******/ return getter; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/define property getters */ +/******/ (() => { +/******/ // define getter functions for harmony exports +/******/ __webpack_require__.d = (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 */ +/******/ (() => { +/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) +/******/ })(); +/******/ +/******/ /* webpack/runtime/make namespace object */ +/******/ (() => { +/******/ // define __esModule on exports +/******/ __webpack_require__.r = (exports) => { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/jsonp chunk loading */ +/******/ (() => { +/******/ // no baseURI +/******/ +/******/ // object to store loaded and loading chunks +/******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched +/******/ // [resolve, reject, Promise] = chunk loading, 0 = chunk loaded +/******/ var installedChunks = { +/******/ "blocks/release-draft-card/index": 0, +/******/ "blocks/release-draft-card/style-index": 0 +/******/ }; +/******/ +/******/ // no chunk on demand loading +/******/ +/******/ // no prefetching +/******/ +/******/ // no preloaded +/******/ +/******/ // no HMR +/******/ +/******/ // no HMR manifest +/******/ +/******/ __webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0); +/******/ +/******/ // install a JSONP callback for chunk loading +/******/ var webpackJsonpCallback = (parentChunkLoadingFunction, data) => { +/******/ var chunkIds = data[0]; +/******/ var moreModules = data[1]; +/******/ var runtime = data[2]; +/******/ // add "moreModules" to the modules object, +/******/ // then flag all "chunkIds" as loaded and fire callback +/******/ var moduleId, chunkId, i = 0; +/******/ if(chunkIds.some((id) => (installedChunks[id] !== 0))) { +/******/ for(moduleId in moreModules) { +/******/ if(__webpack_require__.o(moreModules, moduleId)) { +/******/ __webpack_require__.m[moduleId] = moreModules[moduleId]; +/******/ } +/******/ } +/******/ if(runtime) var result = runtime(__webpack_require__); +/******/ } +/******/ if(parentChunkLoadingFunction) parentChunkLoadingFunction(data); +/******/ for(;i < chunkIds.length; i++) { +/******/ chunkId = chunkIds[i]; +/******/ if(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) { +/******/ installedChunks[chunkId][0](); +/******/ } +/******/ installedChunks[chunkId] = 0; +/******/ } +/******/ return __webpack_require__.O(result); +/******/ } +/******/ +/******/ var chunkLoadingGlobal = self["webpackChunkwporg_plugins_2024"] = self["webpackChunkwporg_plugins_2024"] || []; +/******/ chunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0)); +/******/ chunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal)); +/******/ })(); +/******/ +/************************************************************************/ +/******/ +/******/ // startup +/******/ // Load entry module and return exports +/******/ // This entry module depends on other loaded chunks and execution need to be delayed +/******/ var __webpack_exports__ = __webpack_require__.O(undefined, ["blocks/release-draft-card/style-index"], () => (__webpack_require__("./src/blocks/release-draft-card/index.js"))) +/******/ __webpack_exports__ = __webpack_require__.O(__webpack_exports__); +/******/ +/******/ })() +; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-card/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-card/render.php new file mode 100644 index 0000000000..8e273d7e29 --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-card/render.php @@ -0,0 +1,25 @@ + +
    + +

    + $post_title +

    + + $block->inner_html ); +
    + +HTML; + +printf( + '
    %2$s
    ', + wp_kses_data( get_block_wrapper_attributes() ), + do_blocks( $markup ) // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped +); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-card/style-index.css b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-card/style-index.css new file mode 100644 index 0000000000..1e76ec694e --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-card/style-index.css @@ -0,0 +1,8 @@ +/*!*****************************************************************************************************************************************************************************************************************************************************************!*\ + !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/blocks/release-draft-card/style.scss ***! + \*****************************************************************************************************************************************************************************************************************************************************************/ +.wp-block-wporg-release-draft { + font-size: var(--wp--preset--font-size--small); +} + +/*# sourceMappingURL=style-index.css.map*/ \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-content/block.json b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-content/block.json new file mode 100644 index 0000000000..ca88e99adf --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-content/block.json @@ -0,0 +1,27 @@ +{ + "$schema": "https://schemas.wp.org/trunk/block.json", + "apiVersion": 2, + "name": "wporg/release-draft-content", + "version": "0.1.0", + "title": "Release Content", + "category": "design", + "icon": "", + "description": "A block to display release draft content.", + "textdomain": "wporg", + "attributes": { + "title": { + "type": "string", + "default": "" + } + }, + "supports": { + "html": false, + "interactivity": true + }, + "usesContext": [ + "postId" + ], + "editorScript": "file:./index.js", + "render": "file:./render.php", + "style": "file:./style-index.css" +} \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-content/index.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-content/index.asset.php new file mode 100644 index 0000000000..e056aa5178 --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-content/index.asset.php @@ -0,0 +1 @@ + array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => '2e6e4bdad85f284eebf2'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-content/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-content/index.js new file mode 100644 index 0000000000..ad8c9bcd69 --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-content/index.js @@ -0,0 +1,298 @@ +/******/ (() => { // webpackBootstrap +/******/ "use strict"; +/******/ var __webpack_modules__ = ({ + +/***/ "./src/blocks/release-draft-content/index.js": +/*!***************************************************!*\ + !*** ./src/blocks/release-draft-content/index.js ***! + \***************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); +/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/blocks */ "@wordpress/blocks"); +/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/server-side-render */ "@wordpress/server-side-render"); +/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/block-editor */ "@wordpress/block-editor"); +/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__); +/* harmony import */ var _block_json__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./block.json */ "./src/blocks/release-draft-content/block.json"); +/* harmony import */ var _style_scss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./style.scss */ "./src/blocks/release-draft-content/style.scss"); + +/** + * WordPress dependencies + */ + + + + + +/** + * Internal dependencies + */ + + +function Edit({ + attributes, + name +}) { + return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", { + ...(0,_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__.useBlockProps)() + }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Disabled, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)((_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default()), { + block: name, + attributes: attributes + }))); +} +(0,_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__.registerBlockType)(_block_json__WEBPACK_IMPORTED_MODULE_5__.name, { + edit: Edit, + save: () => null +}); + +/***/ }), + +/***/ "./src/blocks/release-draft-content/style.scss": +/*!*****************************************************!*\ + !*** ./src/blocks/release-draft-content/style.scss ***! + \*****************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +// extracted by mini-css-extract-plugin + + +/***/ }), + +/***/ "react": +/*!************************!*\ + !*** external "React" ***! + \************************/ +/***/ ((module) => { + +module.exports = window["React"]; + +/***/ }), + +/***/ "@wordpress/block-editor": +/*!*************************************!*\ + !*** external ["wp","blockEditor"] ***! + \*************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["blockEditor"]; + +/***/ }), + +/***/ "@wordpress/blocks": +/*!********************************!*\ + !*** external ["wp","blocks"] ***! + \********************************/ +/***/ ((module) => { + +module.exports = window["wp"]["blocks"]; + +/***/ }), + +/***/ "@wordpress/components": +/*!************************************!*\ + !*** external ["wp","components"] ***! + \************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["components"]; + +/***/ }), + +/***/ "@wordpress/server-side-render": +/*!******************************************!*\ + !*** external ["wp","serverSideRender"] ***! + \******************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["serverSideRender"]; + +/***/ }), + +/***/ "./src/blocks/release-draft-content/block.json": +/*!*****************************************************!*\ + !*** ./src/blocks/release-draft-content/block.json ***! + \*****************************************************/ +/***/ ((module) => { + +module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"wporg/release-draft-content","version":"0.1.0","title":"Release Content","category":"design","icon":"","description":"A block to display release draft content.","textdomain":"wporg","attributes":{"title":{"type":"string","default":""}},"supports":{"html":false,"interactivity":true},"usesContext":["postId"],"editorScript":"file:./index.js","render":"file:./render.php","style":"file:./style-index.css"}'); + +/***/ }) + +/******/ }); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ // no module.id needed +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = __webpack_modules__; +/******/ +/************************************************************************/ +/******/ /* webpack/runtime/chunk loaded */ +/******/ (() => { +/******/ var deferred = []; +/******/ __webpack_require__.O = (result, chunkIds, fn, priority) => { +/******/ if(chunkIds) { +/******/ priority = priority || 0; +/******/ for(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1]; +/******/ deferred[i] = [chunkIds, fn, priority]; +/******/ return; +/******/ } +/******/ var notFulfilled = Infinity; +/******/ for (var i = 0; i < deferred.length; i++) { +/******/ var chunkIds = deferred[i][0]; +/******/ var fn = deferred[i][1]; +/******/ var priority = deferred[i][2]; +/******/ var fulfilled = true; +/******/ for (var j = 0; j < chunkIds.length; j++) { +/******/ if ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) { +/******/ chunkIds.splice(j--, 1); +/******/ } else { +/******/ fulfilled = false; +/******/ if(priority < notFulfilled) notFulfilled = priority; +/******/ } +/******/ } +/******/ if(fulfilled) { +/******/ deferred.splice(i--, 1) +/******/ var r = fn(); +/******/ if (r !== undefined) result = r; +/******/ } +/******/ } +/******/ return result; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/compat get default export */ +/******/ (() => { +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = (module) => { +/******/ var getter = module && module.__esModule ? +/******/ () => (module['default']) : +/******/ () => (module); +/******/ __webpack_require__.d(getter, { a: getter }); +/******/ return getter; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/define property getters */ +/******/ (() => { +/******/ // define getter functions for harmony exports +/******/ __webpack_require__.d = (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 */ +/******/ (() => { +/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) +/******/ })(); +/******/ +/******/ /* webpack/runtime/make namespace object */ +/******/ (() => { +/******/ // define __esModule on exports +/******/ __webpack_require__.r = (exports) => { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/jsonp chunk loading */ +/******/ (() => { +/******/ // no baseURI +/******/ +/******/ // object to store loaded and loading chunks +/******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched +/******/ // [resolve, reject, Promise] = chunk loading, 0 = chunk loaded +/******/ var installedChunks = { +/******/ "blocks/release-draft-content/index": 0, +/******/ "blocks/release-draft-content/style-index": 0 +/******/ }; +/******/ +/******/ // no chunk on demand loading +/******/ +/******/ // no prefetching +/******/ +/******/ // no preloaded +/******/ +/******/ // no HMR +/******/ +/******/ // no HMR manifest +/******/ +/******/ __webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0); +/******/ +/******/ // install a JSONP callback for chunk loading +/******/ var webpackJsonpCallback = (parentChunkLoadingFunction, data) => { +/******/ var chunkIds = data[0]; +/******/ var moreModules = data[1]; +/******/ var runtime = data[2]; +/******/ // add "moreModules" to the modules object, +/******/ // then flag all "chunkIds" as loaded and fire callback +/******/ var moduleId, chunkId, i = 0; +/******/ if(chunkIds.some((id) => (installedChunks[id] !== 0))) { +/******/ for(moduleId in moreModules) { +/******/ if(__webpack_require__.o(moreModules, moduleId)) { +/******/ __webpack_require__.m[moduleId] = moreModules[moduleId]; +/******/ } +/******/ } +/******/ if(runtime) var result = runtime(__webpack_require__); +/******/ } +/******/ if(parentChunkLoadingFunction) parentChunkLoadingFunction(data); +/******/ for(;i < chunkIds.length; i++) { +/******/ chunkId = chunkIds[i]; +/******/ if(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) { +/******/ installedChunks[chunkId][0](); +/******/ } +/******/ installedChunks[chunkId] = 0; +/******/ } +/******/ return __webpack_require__.O(result); +/******/ } +/******/ +/******/ var chunkLoadingGlobal = self["webpackChunkwporg_plugins_2024"] = self["webpackChunkwporg_plugins_2024"] || []; +/******/ chunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0)); +/******/ chunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal)); +/******/ })(); +/******/ +/************************************************************************/ +/******/ +/******/ // startup +/******/ // Load entry module and return exports +/******/ // This entry module depends on other loaded chunks and execution need to be delayed +/******/ var __webpack_exports__ = __webpack_require__.O(undefined, ["blocks/release-draft-content/style-index"], () => (__webpack_require__("./src/blocks/release-draft-content/index.js"))) +/******/ __webpack_exports__ = __webpack_require__.O(__webpack_exports__); +/******/ +/******/ })() +; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-content/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-content/render.php new file mode 100644 index 0000000000..4132cb8682 --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-content/render.php @@ -0,0 +1,25 @@ + +
    + +

    + $post_title +

    + + $block->inner_html ); +
    + +HTML; + +printf( + '
    %2$s
    ', + wp_kses_data( get_block_wrapper_attributes() ), + do_blocks( $markup ) // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped +); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-content/style-index.css b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-content/style-index.css new file mode 100644 index 0000000000..5ca238dd3c --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-content/style-index.css @@ -0,0 +1,8 @@ +/*!********************************************************************************************************************************************************************************************************************************************************************!*\ + !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/blocks/release-draft-content/style.scss ***! + \********************************************************************************************************************************************************************************************************************************************************************/ +.wp-block-wporg-release-draft { + font-size: var(--wp--preset--font-size--small); +} + +/*# sourceMappingURL=style-index.css.map*/ \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft/render.php index f412bc815f..e753c05f55 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft/render.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft/render.php @@ -1,4 +1,9 @@ context['postId'] ); +$plugin_post = get_post( $block->context['postId'] ); -if ( ! $post ) { +if ( ! $plugin_post ) { return; } -// get release for the post +/** + * We are in the context of the plugin post, so we can query for the latest draft post. + */ $query_args = array( 'post_type' => 'plugin_release', 'posts_per_page' => 1, - 'post_parent' => $post->ID, + 'post_parent' => $plugin_post->ID, 'orderby' => 'date', 'post_status' => 'draft', 'order' => 'DESC', @@ -32,82 +39,39 @@ // Fetch the latest draft post. $latest_draft_query->the_post(); -$post_title = __( 'Trunk', 'wporg-plugins' ); -$intro_text = __( 'There are unpublished changes in your trunk folder.', 'wporg-plugins' ); -$publish_title = __( 'Create release', 'wporg-plugins' ); -$publish_intro_text = __( 'Before releasing your plugin, take a moment to verify and update the following values:', 'wporg-plugins' ); -$publish_button_text = __( 'Create release', 'wporg-plugins' ); +$post_title = __( 'Trunk', 'wporg-plugins' ); +$intro_text = __( 'There are unpublished changes in your trunk folder.', 'wporg-plugins' ); +$button_text = __( 'Create release', 'wporg-plugins' ); +$publish_title = __( 'Create release', 'wporg-plugins' ); $markup = << - -
    - -
    - -
    +
    + + +

    $intro_text

    + - -
    - -

    - $post_title -

    - - -
    - + + - -

    $intro_text

    - - -
    - -
    - - - -
    - - -
    - -
    + +
    -
    - +
    -
    - -
    - -
    - -

    - $publish_title -

    - -
    - - - -

    $publish_intro_text

    - - - -
    - +
    + + +
    - HTML; printf( diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft/style-index.css b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft/style-index.css index c62356a785..9358999193 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft/style-index.css +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft/style-index.css @@ -4,12 +4,5 @@ .wp-block-wporg-release-draft { font-size: var(--wp--preset--font-size--small); } -.wp-block-wporg-release-draft ul { - margin-top: var(--wp--preset--spacing--10); - padding: 0; - display: flex; - flex-direction: column; - gap: 12px; -} /*# sourceMappingURL=style-index.css.map*/ \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft/view.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft/view.asset.php index cb485ea595..f72123147f 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft/view.asset.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft/view.asset.php @@ -1 +1 @@ - array('@wordpress/interactivity'), 'version' => '63814ecbf0fd013d56ae', 'type' => 'module'); + array('@wordpress/interactivity'), 'version' => 'b2c4b9d88f9bf4c4b32c', 'type' => 'module'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft/view.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft/view.js index 75e14f6d6d..d5acc8111d 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft/view.js +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft/view.js @@ -68,49 +68,48 @@ const { state } = (0,_wordpress_interactivity__WEBPACK_IMPORTED_MODULE_0__.store)('async-action-block', { state: { - preSubmitting: false, - isWaiting: false, - isComplete: false, - errorMessage: '' + get userHasConfirmed() { + return state.hasConfirmed; + } }, actions: { - handlePreSubmit(event) { - event.preventDefault(); - console.log('called'); - state.preSubmitting = true; + handleReleaseConfirm() { + state.hasConfirmed = !state.hasConfirmed; }, handleBackClick(event) { event.preventDefault(); - state.preSubmitting = false; + state.isCreatingRelease = false; + + // Make user reconfirm. + state.hasConfirmed = false; }, *handleSubmit(event) { - // Prevent default form submission event.preventDefault(); - - // Set waiting state state.isWaiting = true; - state.isComplete = false; state.errorMessage = ''; - state.btnText = 'Processing...'; + const { + pluginSlug, + nonce, + apiURL + } = (0,_wordpress_interactivity__WEBPACK_IMPORTED_MODULE_0__.getContext)(); try { - const response = yield fetch('/plugins/wp-json/plugins/v2/plugin/clapback/release', { + const response = yield fetch(apiURL, { method: 'POST', headers: { - 'Content-Type': 'application/json' - } + 'Content-Type': 'application/json', + 'X-WP-Nonce': nonce + }, + body: JSON.stringify({ + plugin_slug: pluginSlug + }) }); const data = yield response.json(); // Update state based on response - if (data.success) { - state.isComplete = true; - } else { + if (data.success) {} else { state.errorMessage = data.message || 'Action failed'; - state.btnText = 'failed'; } } catch (error) { - debugger; - state.btnText = 'failed...'; state.errorMessage = 'Network error occurred'; } finally { state.isWaiting = false; diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-menu-options/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-menu-options/render.php index 4eda65229d..61f288f3e5 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-menu-options/render.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-menu-options/render.php @@ -1,7 +1,11 @@ context['postId'] ) { return; @@ -13,43 +17,41 @@ } $current_version = get_post_meta( $release_post->ID, 'release_version', true ); - -$download_link = sprintf( +$download_link = get_download_link( $release_post->post_parent, $current_version ); +$download_link_html = sprintf( '', - esc_html( 'Download', 'wporg-plugins' ), - esc_url( get_blueprint_url( Template::download_link( $release_post->post_parent, $current_version ) ) ) + __( 'Download', 'wporg-plugins' ), + esc_url( $download_link ) ); -$blueprint_link = sprintf( +$blueprint_link_html = sprintf( '', - esc_html( 'Load in Playground', 'wporg-plugins' ), - esc_url( $encoded_blueprint_url ) + __( 'Load in Playground', 'wporg-plugins' ), + esc_url( get_blueprint_url( get_download_link( $current_version ) ) ) ); -$changes_link = ''; -$releases = get_releases( $release_post->post_parent ); +$changes_link_html = ''; +$releases = get_releases(); $previous_version = get_previous_version( $release_post, $releases ); if ( null !== $previous_version ) { - $changes_link = sprintf( + $changes_link_html = sprintf( '', - esc_html( 'View changes', 'wporg-plugins' ), - esc_url( get_trac_changeset_link( $release_post->post_parent, $previous_version, $current_version ) ) + __( 'View changes', 'wporg-plugins' ), + esc_url( get_trac_changeset_link( $previous_version, $current_version ) ) ); } -$submenu = sprintf( - '%2$s%3$s%4$s', - esc_html( 'Release options', 'wporg-plugins' ), - $download_link, - $blueprint_link, - $changes_link -); - $navigation = sprintf( '%2$s', - esc_html( 'Release options', 'release options label', 'wporg-plugins' ), - $submenu + __( 'Release options', 'wporg-plugins' ), + sprintf( + '%2$s%3$s%4$s', + __( 'Release options', 'wporg-plugins' ), + $download_link_html, + $blueprint_link_html, + $changes_link_html + ) ); -echo do_blocks( $navigation ); +echo do_blocks( $navigation ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-page/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-page/render.php index 878b57533b..f939f21d4b 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-page/render.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-page/render.php @@ -1,88 +1,55 @@ context['postId'] ) { return; } -$release_post = get_post( $post->ID ); +$plugin_post = get_post( $block->context['postId'] ); -if ( ! $release_post ) { +if ( ! $plugin_post ) { return; } -// Why use `do_blocks` here? for some reason, just outputting the content directly doesn't work and context gets messed up. +$heading_text = __( 'Releases', 'wporg-plugins' ); + $markup = << -

    Releases

    +

    $heading_text

    -
    - - - - - - -
    - - -
    - -
    - -
    - - -
    - - - -
    - -
    - -
    - - -
    - - - - - - - - - - -

    There are no releases yet

    - - +
    + + + -
    - +
    HTML; - -// Interactivity API context -$form_context = array( - 'btnDefaultText' => 'Publish release', - 'btnLoadingText' => 'Publishing...', - 'preSubmitting' => false, - 'isWaiting' => false, - 'isComplete' => false, - 'errorMessage' => '', - 'pluginSlug' => $release_post->post_name, - 'nonce' => wp_create_nonce( 'wp_rest' ) +/** + * Create initial state for the async-action-block. + */ +wp_interactivity_state( + 'async-action-block', + array( + 'isCreatingRelease' => false, + ) ); +/** + * Create initial context for the async-action-block. + */ + printf( - '
    %4$s
    ', - 'data-wp-interactive="async-action-block"', + '
    %3$s
    ', wp_kses_data( get_block_wrapper_attributes() ), - wp_interactivity_data_wp_context( $form_context ), // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped + 'data-wp-interactive="async-action-block"', do_blocks( $markup ) // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-page/view.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-page/view.asset.php index ba0cb7c190..5af485fdc6 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-page/view.asset.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-page/view.asset.php @@ -1 +1 @@ - array('@wordpress/interactivity'), 'version' => '47b004f489f4a572490c', 'type' => 'module'); + array('@wordpress/interactivity'), 'version' => '1fd327936eb075a65867', 'type' => 'module'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-page/view.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-page/view.js index 97204c48c2..a09e9f24bf 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-page/view.js +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-page/view.js @@ -67,19 +67,10 @@ __webpack_require__.r(__webpack_exports__); const { state } = (0,_wordpress_interactivity__WEBPACK_IMPORTED_MODULE_0__.store)('async-action-block', { - state: { - get btnText() { - const { - btnDefaultText, - btnLoadingText - } = (0,_wordpress_interactivity__WEBPACK_IMPORTED_MODULE_0__.getContext)(); - return state.isWaiting ? btnLoadingText : btnDefaultText; - } - }, actions: { handlePreSubmit(event) { event.preventDefault(); - state.preSubmitting = true; + state.isCreatingRelease = true; const element = document.querySelector('.wp-block-wporg-release-page'); if (element) { element.scrollIntoView({ @@ -87,46 +78,6 @@ const { block: 'center' }); } - }, - handleBackClick(event) { - event.preventDefault(); - state.preSubmitting = false; - }, - *handleSubmit(event) { - // Prevent default form submission - event.preventDefault(); - debugger; - - // Set waiting state - state.isWaiting = true; - state.errorMessage = ''; - const { - pluginSlug, - nonce, - homeUrl - } = (0,_wordpress_interactivity__WEBPACK_IMPORTED_MODULE_0__.getContext)(); - try { - const response = yield fetch('/plugins/wp-json/plugins/v2/plugin/clapback/release', { - method: 'POST', - headers: { - 'Content-Type': 'application/json', - 'X-WP-Nonce': nonce - }, - body: JSON.stringify({ - plugin_slug: pluginSlug - }) - }); - const data = yield response.json(); - - // Update state based on response - if (data.success) {} else { - state.errorMessage = data.message || 'Action failed'; - } - } catch (error) { - state.errorMessage = 'Network error occurred'; - } finally { - state.isWaiting = false; - } } } }); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish-release/block.json b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish-release/block.json new file mode 100644 index 0000000000..b6b3110b03 --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish-release/block.json @@ -0,0 +1,23 @@ +{ + "$schema": "https://schemas.wp.org/trunk/block.json", + "apiVersion": 2, + "name": "wporg/release-details-form", + "version": "0.1.0", + "title": "Release Details Form", + "category": "design", + "icon": "", + "description": "A block to display release details form.", + "textdomain": "wporg", + "attributes": {}, + "supports": { + "html": false, + "interactivity": true + }, + "usesContext": [ + "postId", + "pluginSlug" + ], + "editorScript": "file:./index.js", + "render": "file:./render.php", + "style": "file:./style-index.css" +} \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish-release/index.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish-release/index.asset.php new file mode 100644 index 0000000000..07b3729374 --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish-release/index.asset.php @@ -0,0 +1 @@ + array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => '25dccf3833ad815f8698'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish-release/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish-release/index.js new file mode 100644 index 0000000000..7923bc57a1 --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish-release/index.js @@ -0,0 +1,298 @@ +/******/ (() => { // webpackBootstrap +/******/ "use strict"; +/******/ var __webpack_modules__ = ({ + +/***/ "./src/blocks/release-publish-release/index.js": +/*!*****************************************************!*\ + !*** ./src/blocks/release-publish-release/index.js ***! + \*****************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); +/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/blocks */ "@wordpress/blocks"); +/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/server-side-render */ "@wordpress/server-side-render"); +/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/block-editor */ "@wordpress/block-editor"); +/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__); +/* harmony import */ var _block_json__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./block.json */ "./src/blocks/release-publish-release/block.json"); +/* harmony import */ var _style_scss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./style.scss */ "./src/blocks/release-publish-release/style.scss"); + +/** + * WordPress dependencies + */ + + + + + +/** + * Internal dependencies + */ + + +function Edit({ + attributes, + name +}) { + return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", { + ...(0,_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__.useBlockProps)() + }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Disabled, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)((_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default()), { + block: name, + attributes: attributes + }))); +} +(0,_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__.registerBlockType)(_block_json__WEBPACK_IMPORTED_MODULE_5__.name, { + edit: Edit, + save: () => null +}); + +/***/ }), + +/***/ "./src/blocks/release-publish-release/style.scss": +/*!*******************************************************!*\ + !*** ./src/blocks/release-publish-release/style.scss ***! + \*******************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +// extracted by mini-css-extract-plugin + + +/***/ }), + +/***/ "react": +/*!************************!*\ + !*** external "React" ***! + \************************/ +/***/ ((module) => { + +module.exports = window["React"]; + +/***/ }), + +/***/ "@wordpress/block-editor": +/*!*************************************!*\ + !*** external ["wp","blockEditor"] ***! + \*************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["blockEditor"]; + +/***/ }), + +/***/ "@wordpress/blocks": +/*!********************************!*\ + !*** external ["wp","blocks"] ***! + \********************************/ +/***/ ((module) => { + +module.exports = window["wp"]["blocks"]; + +/***/ }), + +/***/ "@wordpress/components": +/*!************************************!*\ + !*** external ["wp","components"] ***! + \************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["components"]; + +/***/ }), + +/***/ "@wordpress/server-side-render": +/*!******************************************!*\ + !*** external ["wp","serverSideRender"] ***! + \******************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["serverSideRender"]; + +/***/ }), + +/***/ "./src/blocks/release-publish-release/block.json": +/*!*******************************************************!*\ + !*** ./src/blocks/release-publish-release/block.json ***! + \*******************************************************/ +/***/ ((module) => { + +module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"wporg/release-details-form","version":"0.1.0","title":"Release Details Form","category":"design","icon":"","description":"A block to display release details form.","textdomain":"wporg","attributes":{},"supports":{"html":false,"interactivity":true},"usesContext":["postId","pluginSlug"],"editorScript":"file:./index.js","render":"file:./render.php","style":"file:./style-index.css"}'); + +/***/ }) + +/******/ }); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ // no module.id needed +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = __webpack_modules__; +/******/ +/************************************************************************/ +/******/ /* webpack/runtime/chunk loaded */ +/******/ (() => { +/******/ var deferred = []; +/******/ __webpack_require__.O = (result, chunkIds, fn, priority) => { +/******/ if(chunkIds) { +/******/ priority = priority || 0; +/******/ for(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1]; +/******/ deferred[i] = [chunkIds, fn, priority]; +/******/ return; +/******/ } +/******/ var notFulfilled = Infinity; +/******/ for (var i = 0; i < deferred.length; i++) { +/******/ var chunkIds = deferred[i][0]; +/******/ var fn = deferred[i][1]; +/******/ var priority = deferred[i][2]; +/******/ var fulfilled = true; +/******/ for (var j = 0; j < chunkIds.length; j++) { +/******/ if ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) { +/******/ chunkIds.splice(j--, 1); +/******/ } else { +/******/ fulfilled = false; +/******/ if(priority < notFulfilled) notFulfilled = priority; +/******/ } +/******/ } +/******/ if(fulfilled) { +/******/ deferred.splice(i--, 1) +/******/ var r = fn(); +/******/ if (r !== undefined) result = r; +/******/ } +/******/ } +/******/ return result; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/compat get default export */ +/******/ (() => { +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = (module) => { +/******/ var getter = module && module.__esModule ? +/******/ () => (module['default']) : +/******/ () => (module); +/******/ __webpack_require__.d(getter, { a: getter }); +/******/ return getter; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/define property getters */ +/******/ (() => { +/******/ // define getter functions for harmony exports +/******/ __webpack_require__.d = (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 */ +/******/ (() => { +/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) +/******/ })(); +/******/ +/******/ /* webpack/runtime/make namespace object */ +/******/ (() => { +/******/ // define __esModule on exports +/******/ __webpack_require__.r = (exports) => { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/jsonp chunk loading */ +/******/ (() => { +/******/ // no baseURI +/******/ +/******/ // object to store loaded and loading chunks +/******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched +/******/ // [resolve, reject, Promise] = chunk loading, 0 = chunk loaded +/******/ var installedChunks = { +/******/ "blocks/release-publish-release/index": 0, +/******/ "blocks/release-publish-release/style-index": 0 +/******/ }; +/******/ +/******/ // no chunk on demand loading +/******/ +/******/ // no prefetching +/******/ +/******/ // no preloaded +/******/ +/******/ // no HMR +/******/ +/******/ // no HMR manifest +/******/ +/******/ __webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0); +/******/ +/******/ // install a JSONP callback for chunk loading +/******/ var webpackJsonpCallback = (parentChunkLoadingFunction, data) => { +/******/ var chunkIds = data[0]; +/******/ var moreModules = data[1]; +/******/ var runtime = data[2]; +/******/ // add "moreModules" to the modules object, +/******/ // then flag all "chunkIds" as loaded and fire callback +/******/ var moduleId, chunkId, i = 0; +/******/ if(chunkIds.some((id) => (installedChunks[id] !== 0))) { +/******/ for(moduleId in moreModules) { +/******/ if(__webpack_require__.o(moreModules, moduleId)) { +/******/ __webpack_require__.m[moduleId] = moreModules[moduleId]; +/******/ } +/******/ } +/******/ if(runtime) var result = runtime(__webpack_require__); +/******/ } +/******/ if(parentChunkLoadingFunction) parentChunkLoadingFunction(data); +/******/ for(;i < chunkIds.length; i++) { +/******/ chunkId = chunkIds[i]; +/******/ if(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) { +/******/ installedChunks[chunkId][0](); +/******/ } +/******/ installedChunks[chunkId] = 0; +/******/ } +/******/ return __webpack_require__.O(result); +/******/ } +/******/ +/******/ var chunkLoadingGlobal = self["webpackChunkwporg_plugins_2024"] = self["webpackChunkwporg_plugins_2024"] || []; +/******/ chunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0)); +/******/ chunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal)); +/******/ })(); +/******/ +/************************************************************************/ +/******/ +/******/ // startup +/******/ // Load entry module and return exports +/******/ // This entry module depends on other loaded chunks and execution need to be delayed +/******/ var __webpack_exports__ = __webpack_require__.O(undefined, ["blocks/release-publish-release/style-index"], () => (__webpack_require__("./src/blocks/release-publish-release/index.js"))) +/******/ __webpack_exports__ = __webpack_require__.O(__webpack_exports__); +/******/ +/******/ })() +; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-details-form/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish-release/render.php similarity index 51% rename from wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-details-form/render.php rename to wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish-release/render.php index 7d35e07a2a..fad7f60f7d 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-details-form/render.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish-release/render.php @@ -5,23 +5,23 @@ * @package WordPressdotorg\Plugin_Directory */ -use WordPressdotorg\Plugin_Directory\Template; -use function WordPressdotorg\Plugin_Directory\Theme\{get_blueprint_url, get_latest_release}; +use function WordPressdotorg\Plugin_Directory\Theme\{get_blueprint_url, get_latest_release, get_revision_changeset_link}; // Ensure the block context has a valid post ID. if ( empty( $block->context['postId'] ) ) { return; } -$release_post = get_post( $block->context['postId'] ); -$current_version = get_post_meta( $block->context['postId'], 'release_version', true ); -$tested_up_to = get_post_meta( $block->context['postId'], 'release_tested', true ); +$release_post = get_post( $block->context['postId'] ); // Bail if the release post does not exist. if ( ! $release_post ) { return; } +$current_version = get_post_meta( $block->context['postId'], 'release_version', true ); +$tested_up_to = get_post_meta( $block->context['postId'], 'release_tested', true ); + /** * Returns whether the tested_up_to value is recent. * @@ -49,20 +49,17 @@ function has_recently_been_tested( $tested_up_to ) { return $tested_major >= $latest_major; } - /** * Generate the HTML for a release item content block. * * @param string $label The label for the item. - * @param string $value The value for the item. * @param string $content The additional content or description. * @return string The formatted HTML content for the release item. */ -function get_release_item_content( $label, $value, $content ) { +function get_release_item_content( $label, $content ) { return sprintf( - '
    %1$s: %2$s
    %3$s
    ', - wp_kses_post( $label ), - wp_kses_post( $value ), + '
    %1$s
    %2$s
    ', + esc_html( $label ), wp_kses_post( $content ) ); } @@ -77,7 +74,7 @@ function get_release_item_content( $label, $value, $content ) { function get_release_check_item( $status, $content ) { return do_blocks( sprintf( - '%2$s', + '%2$s', esc_attr( $status ), $content ) @@ -87,23 +84,74 @@ function get_release_check_item( $status, $content ) { /** * Generate the block content for the version number check item. * - * @param bool $verdict Whether the version number is valid. - * @param string $value The current version number. - * @param WP_Post $release_post The release post object. + * @param bool $verdict Whether the version number is valid. + * @param string $value The current version number. + * + * @return string The block content. + */ +function get_changelog_check_item() { + $label = __( 'Update your changelog with key changes.', 'wporg-plugins' ); + $info_text = sprintf( + 'Learn more about writing useful changelogs.', + esc_url( 'https://developer.wordpress.org/plugins/wordpress-org/plugin-developer-faq/#what-should-be-in-my-changelog' ), + ); + + $content = get_release_item_content( $label, $info_text ); + + return get_release_check_item( 'default', $content ); +} + +/** + * Generate the block content for the version number check item. + * + * @param bool $verdict Whether the version number is valid. + * @param string $value The current version number. + * + * @return string The block content. + */ +function get_view_diff_check_item( $post ) { + $label = __( 'Review your changes.', 'wporg-plugins' ); + $commits = get_post_meta( $post->ID, 'release_commit_log', true ); + $plugin = get_post( $post->post_parent ); + $info_text = sprintf( + /* translators: %s: URL to the plugin in the Plugin Directory */ + __( 'Scan through your changeset before publishing.', 'wporg-plugins' ), + esc_url( get_revision_changeset_link( $plugin->post_name, $commits ) ) + ); + $content = get_release_item_content( $label, $info_text ); + + return get_release_check_item( 'default', $content ); +} + +/** + * Generate the block content for the version number check item. + * + * @param bool $verdict Whether the version number is valid. + * @param string $value The current version number. * * @return string The block content. */ -function get_version_number_check_item( $verdict, $value, $release_post ) { - $label = __( 'Version number', 'wporg-plugins' ); - $info_text = __( 'It looks like plugin version was incremented appropriately.', 'wporg-plugins' ); - $status = 'success'; +function get_version_number_check_item( $verdict, $value ) { + $label = __( 'Increment your version number.', 'wporg-plugins' ); + + $info_text = sprintf( + /* translators: %s: The current version number */ + __( 'Current version: %s', 'wporg-plugins' ), + '' . $value . '', + ); + + $status = ''; if ( ! $verdict ) { $status = 'error'; - $info_text = __( 'Please increment your plugin\'s version number.', 'wporg-plugins' ); + $info_text = sprintf( + /* translators: %s: The current version number */ + __( 'Your plugin\'s version number %s must be incremented before you can publish.', 'wporg-plugins' ), + '' . $value . '', + ); } - $content = get_release_item_content( $label, $value, $info_text ); + $content = get_release_item_content( $label, $info_text ); return get_release_check_item( $status, $content ); } @@ -111,29 +159,32 @@ function get_version_number_check_item( $verdict, $value, $release_post ) { /** * Generate the block content for the "Tested up to" check item. * - * @param string $value The tested up to value. + * @param bool $verdict Whether the tested up to value is recent. + * @param string $value The tested up to value. + * @param WP_Post $release_post The release post object. + * * @return string The block content. */ function get_tested_up_to_check_item( $verdict, $value, $release_post ) { $label = __( - 'Tested up to', + 'Test your plugin with the latest version of WordPress.', 'wporg-plugins' ); - $status = 'success'; + $status = ''; - $parent = get_post( $release_post->post_parent ); + $plugin = get_post( $release_post->post_parent ); $blueprint_url = get_blueprint_url( sprintf( 'https://downloads.wordpress.org/plugin/%s.zip', - $parent->post_name, + $plugin->post_name, ) ); $info_text = sprintf( - /* translators: %s: URL to the plugin in the Plugin Directory */ - __( 'Everything looks great! Playground makes testing easy. If needed, you can test it here.', 'wporg-plugins' ), - esc_url( $blueprint_url ) + /* translators: %s: The Tested Up to value */ + __( 'Tested up to: %s', 'wporg-plugins' ), + '' . $value . '', ); if ( empty( $value ) ) { @@ -144,12 +195,13 @@ function get_tested_up_to_check_item( $verdict, $value, $release_post ) { $status = 'warning'; $info_text = sprintf( /* translators: %s: URL to the plugin in the Plugin Directory */ - __( 'Your plugin has been tested with recent versions of WordPress! Test it now in Playground.', 'wporg-plugins' ), + __( 'Tested up to is %1$s. Test it now in Playground and update. ', 'wporg-plugins' ), + '' . $value . '', esc_url( $blueprint_url ) ); } - $content = get_release_item_content( $label, $value, $info_text ); + $content = get_release_item_content( $label, $info_text ); return get_release_check_item( $status, $content ); } @@ -166,22 +218,38 @@ function get_tested_up_to_check_item( $verdict, $value, $release_post ) { data-wp-interactive="async-action-block" > - -

    %s

    - ', - esc_html__( 'Headers', 'wporg-plugins' ) + +

    %s

    + ', + esc_html__( 'Checklist', 'wporg-plugins' ) + ) ) - ); -?> - + ?>
      - + + +
    + + + //
    + //
    + //

    %s

    + //
    + // ', + // esc_html__( 'You need to increment your plugin version number and reload the page.', 'wporg-plugins' ) + // ); + // echo do_blocks( $block ); + ?> +
    +
    + +
    + +
    +
    + +
    + +
    +
    + + +
    +
    + + +
    +

    +

    + +
    +
    + + + +
    +
    +
    + +
    + +
    +
    +

    +
    + ' + ); + ?> +
    +
    diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish/style-index.css b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish/style-index.css new file mode 100644 index 0000000000..b57828e9fa --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish/style-index.css @@ -0,0 +1,30 @@ +/*!**************************************************************************************************************************************************************************************************************************************************************!*\ + !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/blocks/release-publish/style.scss ***! + \**************************************************************************************************************************************************************************************************************************************************************/ +.wp-block-wporg-release-publish label { + display: block; +} +.wp-block-wporg-release-publish .wp-block-wporg-release-result-item > div:last-child > div { + color: var(--wp--preset--color--charcoal-4); +} + +.wp-block-wporg-release-publish-user-confirm { + margin-top: var(--wp--preset--spacing--20); +} + +.wp-block-wporg-release-publish-actions { + display: flex; + margin-top: var(--wp--preset--spacing--20); + gap: 8px; +} +.wp-block-wporg-release-publish-actions button[disabled] { + opacity: 0.5; +} + +.wp-block-wporg-release-publish-spinner { + align-items: center; + display: flex; + gap: 6px; +} + +/*# sourceMappingURL=style-index.css.map*/ \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish/view.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish/view.asset.php new file mode 100644 index 0000000000..99607bc3d0 --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish/view.asset.php @@ -0,0 +1 @@ + array('@wordpress/interactivity'), 'version' => 'bbbe8e269ca99621503f', 'type' => 'module'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish/view.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish/view.js new file mode 100644 index 0000000000..30b5cc3a47 --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish/view.js @@ -0,0 +1,141 @@ +import * as __WEBPACK_EXTERNAL_MODULE__wordpress_interactivity_8e89b257__ from "@wordpress/interactivity"; +/******/ var __webpack_modules__ = ({ + +/***/ "@wordpress/interactivity": +/*!*******************************************!*\ + !*** external "@wordpress/interactivity" ***! + \*******************************************/ +/***/ ((module) => { + +var x = y => { var x = {}; __webpack_require__.d(x, y); return x; } +var y = x => () => x +module.exports = __WEBPACK_EXTERNAL_MODULE__wordpress_interactivity_8e89b257__; + +/***/ }) + +/******/ }); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ // no module.id needed +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/************************************************************************/ +/******/ /* webpack/runtime/make namespace object */ +/******/ (() => { +/******/ // define __esModule on exports +/******/ __webpack_require__.r = (exports) => { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ })(); +/******/ +/************************************************************************/ +var __webpack_exports__ = {}; +// This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk. +(() => { +/*!********************************************!*\ + !*** ./src/blocks/release-publish/view.js ***! + \********************************************/ +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _wordpress_interactivity__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/interactivity */ "@wordpress/interactivity"); +/** + * WordPress dependencies + */ + +const { + state +} = (0,_wordpress_interactivity__WEBPACK_IMPORTED_MODULE_0__.store)('async-action-block', { + state: { + get userHasConfirmed() { + return state.hasConfirmed; + }, + get isDefaultState() { + return !state.isPublishing && !state.isPublished && !state.hasError; + }, + get isPublishingState() { + return state.isPublishing; + }, + get isPublishedState() { + return state.isPublished; + } + }, + actions: { + handleReleaseConfirm() { + state.hasConfirmed = !state.hasConfirmed; + }, + handleBackClick(event) { + event.preventDefault(); + state.isCreatingRelease = false; + + // Make user reconfirm. + state.hasConfirmed = false; + }, + handlePageReload() { + window.location.reload(); + }, + *handleSubmit(event) { + event.preventDefault(); + state.isPublishing = true; + state.errorMessage = ''; + const { + pluginSlug, + nonce, + apiURL + } = (0,_wordpress_interactivity__WEBPACK_IMPORTED_MODULE_0__.getContext)(); + try { + const response = yield fetch(apiURL, { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + 'X-WP-Nonce': nonce + }, + body: JSON.stringify({ + plugin_slug: pluginSlug + }) + }); + if (!response.ok) { + try { + const error = yield response.json(); + throw new Error(error.message); + } catch (error) { + // Handle cases where json is not returned, like a gateway timeout. + throw new Error('An error occurred while publishing the release.'); + } + } + state.isPublished = true; + } catch (error) { + state.errorMessage = error.message; + state.hasError = true; + state.isPublishing = false; + } finally { + state.isPublishing = false; + } + } + } +}); +})(); + + +//# sourceMappingURL=view.js.map \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-item copy/block.json b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-item copy/block.json new file mode 100644 index 0000000000..5086072ee5 --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-item copy/block.json @@ -0,0 +1,28 @@ +{ + "$schema": "https://schemas.wp.org/trunk/block.json", + "apiVersion": 2, + "name": "wporg/release-result-item", + "version": "0.1.0", + "title": "Release Result Item", + "category": "design", + "icon": "", + "description": "A block to display release draft result item.", + "textdomain": "wporg", + "attributes": { + "status": { + "type": "string", + "enum": [ + "error", + "warning", + "success" + ], + "default": "success" + } + }, + "supports": { + "html": false + }, + "editorScript": "file:./index.js", + "render": "file:./render.php", + "style": "file:./style-index.css" +} \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-item copy/index.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-item copy/index.asset.php new file mode 100644 index 0000000000..57eaa35d97 --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-item copy/index.asset.php @@ -0,0 +1 @@ + array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => 'c5097f76ab105587bca5'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-item copy/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-item copy/index.js new file mode 100644 index 0000000000..e3a6578c0d --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-item copy/index.js @@ -0,0 +1,298 @@ +/******/ (() => { // webpackBootstrap +/******/ "use strict"; +/******/ var __webpack_modules__ = ({ + +/***/ "./src/blocks/release-result-item copy/index.js": +/*!******************************************************!*\ + !*** ./src/blocks/release-result-item copy/index.js ***! + \******************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); +/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/blocks */ "@wordpress/blocks"); +/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/server-side-render */ "@wordpress/server-side-render"); +/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/block-editor */ "@wordpress/block-editor"); +/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__); +/* harmony import */ var _block_json__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./block.json */ "./src/blocks/release-result-item copy/block.json"); +/* harmony import */ var _style_scss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./style.scss */ "./src/blocks/release-result-item copy/style.scss"); + +/** + * WordPress dependencies + */ + + + + + +/** + * Internal dependencies + */ + + +function Edit({ + attributes, + name +}) { + return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", { + ...(0,_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__.useBlockProps)() + }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Disabled, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)((_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default()), { + block: name, + attributes: attributes + }))); +} +(0,_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__.registerBlockType)(_block_json__WEBPACK_IMPORTED_MODULE_5__.name, { + edit: Edit, + save: () => null +}); + +/***/ }), + +/***/ "./src/blocks/release-result-item copy/style.scss": +/*!********************************************************!*\ + !*** ./src/blocks/release-result-item copy/style.scss ***! + \********************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +// extracted by mini-css-extract-plugin + + +/***/ }), + +/***/ "react": +/*!************************!*\ + !*** external "React" ***! + \************************/ +/***/ ((module) => { + +module.exports = window["React"]; + +/***/ }), + +/***/ "@wordpress/block-editor": +/*!*************************************!*\ + !*** external ["wp","blockEditor"] ***! + \*************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["blockEditor"]; + +/***/ }), + +/***/ "@wordpress/blocks": +/*!********************************!*\ + !*** external ["wp","blocks"] ***! + \********************************/ +/***/ ((module) => { + +module.exports = window["wp"]["blocks"]; + +/***/ }), + +/***/ "@wordpress/components": +/*!************************************!*\ + !*** external ["wp","components"] ***! + \************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["components"]; + +/***/ }), + +/***/ "@wordpress/server-side-render": +/*!******************************************!*\ + !*** external ["wp","serverSideRender"] ***! + \******************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["serverSideRender"]; + +/***/ }), + +/***/ "./src/blocks/release-result-item copy/block.json": +/*!********************************************************!*\ + !*** ./src/blocks/release-result-item copy/block.json ***! + \********************************************************/ +/***/ ((module) => { + +module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"wporg/release-result-item","version":"0.1.0","title":"Release Result Item","category":"design","icon":"","description":"A block to display release draft result item.","textdomain":"wporg","attributes":{"status":{"type":"string","enum":["error","warning","success"],"default":"success"}},"supports":{"html":false},"editorScript":"file:./index.js","render":"file:./render.php","style":"file:./style-index.css"}'); + +/***/ }) + +/******/ }); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ // no module.id needed +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = __webpack_modules__; +/******/ +/************************************************************************/ +/******/ /* webpack/runtime/chunk loaded */ +/******/ (() => { +/******/ var deferred = []; +/******/ __webpack_require__.O = (result, chunkIds, fn, priority) => { +/******/ if(chunkIds) { +/******/ priority = priority || 0; +/******/ for(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1]; +/******/ deferred[i] = [chunkIds, fn, priority]; +/******/ return; +/******/ } +/******/ var notFulfilled = Infinity; +/******/ for (var i = 0; i < deferred.length; i++) { +/******/ var chunkIds = deferred[i][0]; +/******/ var fn = deferred[i][1]; +/******/ var priority = deferred[i][2]; +/******/ var fulfilled = true; +/******/ for (var j = 0; j < chunkIds.length; j++) { +/******/ if ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) { +/******/ chunkIds.splice(j--, 1); +/******/ } else { +/******/ fulfilled = false; +/******/ if(priority < notFulfilled) notFulfilled = priority; +/******/ } +/******/ } +/******/ if(fulfilled) { +/******/ deferred.splice(i--, 1) +/******/ var r = fn(); +/******/ if (r !== undefined) result = r; +/******/ } +/******/ } +/******/ return result; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/compat get default export */ +/******/ (() => { +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = (module) => { +/******/ var getter = module && module.__esModule ? +/******/ () => (module['default']) : +/******/ () => (module); +/******/ __webpack_require__.d(getter, { a: getter }); +/******/ return getter; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/define property getters */ +/******/ (() => { +/******/ // define getter functions for harmony exports +/******/ __webpack_require__.d = (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 */ +/******/ (() => { +/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) +/******/ })(); +/******/ +/******/ /* webpack/runtime/make namespace object */ +/******/ (() => { +/******/ // define __esModule on exports +/******/ __webpack_require__.r = (exports) => { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/jsonp chunk loading */ +/******/ (() => { +/******/ // no baseURI +/******/ +/******/ // object to store loaded and loading chunks +/******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched +/******/ // [resolve, reject, Promise] = chunk loading, 0 = chunk loaded +/******/ var installedChunks = { +/******/ "blocks/release-result-item copy/index": 0, +/******/ "blocks/release-result-item copy/style-index": 0 +/******/ }; +/******/ +/******/ // no chunk on demand loading +/******/ +/******/ // no prefetching +/******/ +/******/ // no preloaded +/******/ +/******/ // no HMR +/******/ +/******/ // no HMR manifest +/******/ +/******/ __webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0); +/******/ +/******/ // install a JSONP callback for chunk loading +/******/ var webpackJsonpCallback = (parentChunkLoadingFunction, data) => { +/******/ var chunkIds = data[0]; +/******/ var moreModules = data[1]; +/******/ var runtime = data[2]; +/******/ // add "moreModules" to the modules object, +/******/ // then flag all "chunkIds" as loaded and fire callback +/******/ var moduleId, chunkId, i = 0; +/******/ if(chunkIds.some((id) => (installedChunks[id] !== 0))) { +/******/ for(moduleId in moreModules) { +/******/ if(__webpack_require__.o(moreModules, moduleId)) { +/******/ __webpack_require__.m[moduleId] = moreModules[moduleId]; +/******/ } +/******/ } +/******/ if(runtime) var result = runtime(__webpack_require__); +/******/ } +/******/ if(parentChunkLoadingFunction) parentChunkLoadingFunction(data); +/******/ for(;i < chunkIds.length; i++) { +/******/ chunkId = chunkIds[i]; +/******/ if(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) { +/******/ installedChunks[chunkId][0](); +/******/ } +/******/ installedChunks[chunkId] = 0; +/******/ } +/******/ return __webpack_require__.O(result); +/******/ } +/******/ +/******/ var chunkLoadingGlobal = self["webpackChunkwporg_plugins_2024"] = self["webpackChunkwporg_plugins_2024"] || []; +/******/ chunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0)); +/******/ chunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal)); +/******/ })(); +/******/ +/************************************************************************/ +/******/ +/******/ // startup +/******/ // Load entry module and return exports +/******/ // This entry module depends on other loaded chunks and execution need to be delayed +/******/ var __webpack_exports__ = __webpack_require__.O(undefined, ["blocks/release-result-item copy/style-index"], () => (__webpack_require__("./src/blocks/release-result-item copy/index.js"))) +/******/ __webpack_exports__ = __webpack_require__.O(__webpack_exports__); +/******/ +/******/ })() +; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-check-item/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-item copy/render.php similarity index 100% rename from wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-check-item/render.php rename to wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-item copy/render.php diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-item copy/style-index.css b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-item copy/style-index.css new file mode 100644 index 0000000000..479186db5d --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-item copy/style-index.css @@ -0,0 +1,17 @@ +/*!***********************************************************************************************************************************************************************************************************************************************************************!*\ + !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/blocks/release-result-item copy/style.scss ***! + \***********************************************************************************************************************************************************************************************************************************************************************/ +.wp-block-wporg-release-result-item { + display: flex; + margin: 0 !important; + position: relative; + gap: 8px; + list-style: none; +} +.wp-block-wporg-release-result-item > div:first-child { + height: 25px; + display: flex; + align-items: center; +} + +/*# sourceMappingURL=style-index.css.map*/ \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-item/block.json b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-item/block.json new file mode 100644 index 0000000000..a9626174ed --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-item/block.json @@ -0,0 +1,27 @@ +{ + "$schema": "https://schemas.wp.org/trunk/block.json", + "apiVersion": 2, + "name": "wporg/release-result-item", + "version": "0.1.0", + "title": "Release Result Item", + "category": "design", + "icon": "", + "description": "A block to display release draft result item.", + "textdomain": "wporg", + "attributes": { + "status": { + "type": "string", + "enum": [ + "error", + "warning", + "success" + ] + } + }, + "supports": { + "html": false + }, + "editorScript": "file:./index.js", + "render": "file:./render.php", + "style": "file:./style-index.css" +} \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-item/index.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-item/index.asset.php new file mode 100644 index 0000000000..5d3dc0aed0 --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-item/index.asset.php @@ -0,0 +1 @@ + array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => '528aee9f7fbbffa602e3'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-item/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-item/index.js new file mode 100644 index 0000000000..e99ee21ff5 --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-item/index.js @@ -0,0 +1,298 @@ +/******/ (() => { // webpackBootstrap +/******/ "use strict"; +/******/ var __webpack_modules__ = ({ + +/***/ "./src/blocks/release-result-item/index.js": +/*!*************************************************!*\ + !*** ./src/blocks/release-result-item/index.js ***! + \*************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); +/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/blocks */ "@wordpress/blocks"); +/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/server-side-render */ "@wordpress/server-side-render"); +/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/block-editor */ "@wordpress/block-editor"); +/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__); +/* harmony import */ var _block_json__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./block.json */ "./src/blocks/release-result-item/block.json"); +/* harmony import */ var _style_scss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./style.scss */ "./src/blocks/release-result-item/style.scss"); + +/** + * WordPress dependencies + */ + + + + + +/** + * Internal dependencies + */ + + +function Edit({ + attributes, + name +}) { + return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", { + ...(0,_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__.useBlockProps)() + }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Disabled, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)((_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default()), { + block: name, + attributes: attributes + }))); +} +(0,_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__.registerBlockType)(_block_json__WEBPACK_IMPORTED_MODULE_5__.name, { + edit: Edit, + save: () => null +}); + +/***/ }), + +/***/ "./src/blocks/release-result-item/style.scss": +/*!***************************************************!*\ + !*** ./src/blocks/release-result-item/style.scss ***! + \***************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +// extracted by mini-css-extract-plugin + + +/***/ }), + +/***/ "react": +/*!************************!*\ + !*** external "React" ***! + \************************/ +/***/ ((module) => { + +module.exports = window["React"]; + +/***/ }), + +/***/ "@wordpress/block-editor": +/*!*************************************!*\ + !*** external ["wp","blockEditor"] ***! + \*************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["blockEditor"]; + +/***/ }), + +/***/ "@wordpress/blocks": +/*!********************************!*\ + !*** external ["wp","blocks"] ***! + \********************************/ +/***/ ((module) => { + +module.exports = window["wp"]["blocks"]; + +/***/ }), + +/***/ "@wordpress/components": +/*!************************************!*\ + !*** external ["wp","components"] ***! + \************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["components"]; + +/***/ }), + +/***/ "@wordpress/server-side-render": +/*!******************************************!*\ + !*** external ["wp","serverSideRender"] ***! + \******************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["serverSideRender"]; + +/***/ }), + +/***/ "./src/blocks/release-result-item/block.json": +/*!***************************************************!*\ + !*** ./src/blocks/release-result-item/block.json ***! + \***************************************************/ +/***/ ((module) => { + +module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"wporg/release-result-item","version":"0.1.0","title":"Release Result Item","category":"design","icon":"","description":"A block to display release draft result item.","textdomain":"wporg","attributes":{"status":{"type":"string","enum":["error","warning","success"]}},"supports":{"html":false},"editorScript":"file:./index.js","render":"file:./render.php","style":"file:./style-index.css"}'); + +/***/ }) + +/******/ }); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ // no module.id needed +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = __webpack_modules__; +/******/ +/************************************************************************/ +/******/ /* webpack/runtime/chunk loaded */ +/******/ (() => { +/******/ var deferred = []; +/******/ __webpack_require__.O = (result, chunkIds, fn, priority) => { +/******/ if(chunkIds) { +/******/ priority = priority || 0; +/******/ for(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1]; +/******/ deferred[i] = [chunkIds, fn, priority]; +/******/ return; +/******/ } +/******/ var notFulfilled = Infinity; +/******/ for (var i = 0; i < deferred.length; i++) { +/******/ var chunkIds = deferred[i][0]; +/******/ var fn = deferred[i][1]; +/******/ var priority = deferred[i][2]; +/******/ var fulfilled = true; +/******/ for (var j = 0; j < chunkIds.length; j++) { +/******/ if ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) { +/******/ chunkIds.splice(j--, 1); +/******/ } else { +/******/ fulfilled = false; +/******/ if(priority < notFulfilled) notFulfilled = priority; +/******/ } +/******/ } +/******/ if(fulfilled) { +/******/ deferred.splice(i--, 1) +/******/ var r = fn(); +/******/ if (r !== undefined) result = r; +/******/ } +/******/ } +/******/ return result; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/compat get default export */ +/******/ (() => { +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = (module) => { +/******/ var getter = module && module.__esModule ? +/******/ () => (module['default']) : +/******/ () => (module); +/******/ __webpack_require__.d(getter, { a: getter }); +/******/ return getter; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/define property getters */ +/******/ (() => { +/******/ // define getter functions for harmony exports +/******/ __webpack_require__.d = (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 */ +/******/ (() => { +/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) +/******/ })(); +/******/ +/******/ /* webpack/runtime/make namespace object */ +/******/ (() => { +/******/ // define __esModule on exports +/******/ __webpack_require__.r = (exports) => { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/jsonp chunk loading */ +/******/ (() => { +/******/ // no baseURI +/******/ +/******/ // object to store loaded and loading chunks +/******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched +/******/ // [resolve, reject, Promise] = chunk loading, 0 = chunk loaded +/******/ var installedChunks = { +/******/ "blocks/release-result-item/index": 0, +/******/ "blocks/release-result-item/style-index": 0 +/******/ }; +/******/ +/******/ // no chunk on demand loading +/******/ +/******/ // no prefetching +/******/ +/******/ // no preloaded +/******/ +/******/ // no HMR +/******/ +/******/ // no HMR manifest +/******/ +/******/ __webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0); +/******/ +/******/ // install a JSONP callback for chunk loading +/******/ var webpackJsonpCallback = (parentChunkLoadingFunction, data) => { +/******/ var chunkIds = data[0]; +/******/ var moreModules = data[1]; +/******/ var runtime = data[2]; +/******/ // add "moreModules" to the modules object, +/******/ // then flag all "chunkIds" as loaded and fire callback +/******/ var moduleId, chunkId, i = 0; +/******/ if(chunkIds.some((id) => (installedChunks[id] !== 0))) { +/******/ for(moduleId in moreModules) { +/******/ if(__webpack_require__.o(moreModules, moduleId)) { +/******/ __webpack_require__.m[moduleId] = moreModules[moduleId]; +/******/ } +/******/ } +/******/ if(runtime) var result = runtime(__webpack_require__); +/******/ } +/******/ if(parentChunkLoadingFunction) parentChunkLoadingFunction(data); +/******/ for(;i < chunkIds.length; i++) { +/******/ chunkId = chunkIds[i]; +/******/ if(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) { +/******/ installedChunks[chunkId][0](); +/******/ } +/******/ installedChunks[chunkId] = 0; +/******/ } +/******/ return __webpack_require__.O(result); +/******/ } +/******/ +/******/ var chunkLoadingGlobal = self["webpackChunkwporg_plugins_2024"] = self["webpackChunkwporg_plugins_2024"] || []; +/******/ chunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0)); +/******/ chunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal)); +/******/ })(); +/******/ +/************************************************************************/ +/******/ +/******/ // startup +/******/ // Load entry module and return exports +/******/ // This entry module depends on other loaded chunks and execution need to be delayed +/******/ var __webpack_exports__ = __webpack_require__.O(undefined, ["blocks/release-result-item/style-index"], () => (__webpack_require__("./src/blocks/release-result-item/index.js"))) +/******/ __webpack_exports__ = __webpack_require__.O(__webpack_exports__); +/******/ +/******/ })() +; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-item/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-item/render.php new file mode 100644 index 0000000000..d2a7346ba1 --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-item/render.php @@ -0,0 +1,24 @@ +
  • > +
    + attributes['status'] ) : ?> + + + + + + attributes['status'] ) : ?> + + + + attributes['status'] ) : ?> + + + + + + + +
    + + inner_html ); ?> +
  • diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-item/style-index.css b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-item/style-index.css new file mode 100644 index 0000000000..81b705ae23 --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-item/style-index.css @@ -0,0 +1,21 @@ +/*!******************************************************************************************************************************************************************************************************************************************************************!*\ + !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/blocks/release-result-item/style.scss ***! + \******************************************************************************************************************************************************************************************************************************************************************/ +.wp-block-wporg-release-result-item { + display: flex; + margin: 0 0 12px !important; + position: relative; + gap: 8px; + list-style: none; +} +.wp-block-wporg-release-result-item > div:first-child { + height: 25px; + display: flex; + align-items: center; +} + +ul .wp-block-wporg-release-result-item:last-child { + margin-bottom: 0; +} + +/*# sourceMappingURL=style-index.css.map*/ \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-list/block.json b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-list/block.json new file mode 100644 index 0000000000..47eae44f8d --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-list/block.json @@ -0,0 +1,18 @@ +{ + "$schema": "https://schemas.wp.org/trunk/block.json", + "apiVersion": 2, + "name": "wporg/release-result-list", + "version": "0.1.0", + "title": "Release Result List", + "category": "design", + "icon": "", + "description": "A block to display release draft result list.", + "textdomain": "wporg", + "attributes": {}, + "supports": { + "html": false + }, + "editorScript": "file:./index.js", + "render": "file:./render.php", + "style": "file:./style-index.css" +} \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-list/index.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-list/index.asset.php new file mode 100644 index 0000000000..7849bcf938 --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-list/index.asset.php @@ -0,0 +1 @@ + array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => '10d58671b04ac2c5d511'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-list/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-list/index.js new file mode 100644 index 0000000000..d66594a40b --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-list/index.js @@ -0,0 +1,298 @@ +/******/ (() => { // webpackBootstrap +/******/ "use strict"; +/******/ var __webpack_modules__ = ({ + +/***/ "./src/blocks/release-result-list/index.js": +/*!*************************************************!*\ + !*** ./src/blocks/release-result-list/index.js ***! + \*************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); +/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/blocks */ "@wordpress/blocks"); +/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/server-side-render */ "@wordpress/server-side-render"); +/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/block-editor */ "@wordpress/block-editor"); +/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__); +/* harmony import */ var _block_json__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./block.json */ "./src/blocks/release-result-list/block.json"); +/* harmony import */ var _style_scss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./style.scss */ "./src/blocks/release-result-list/style.scss"); + +/** + * WordPress dependencies + */ + + + + + +/** + * Internal dependencies + */ + + +function Edit({ + attributes, + name +}) { + return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", { + ...(0,_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__.useBlockProps)() + }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Disabled, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)((_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default()), { + block: name, + attributes: attributes + }))); +} +(0,_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__.registerBlockType)(_block_json__WEBPACK_IMPORTED_MODULE_5__.name, { + edit: Edit, + save: () => null +}); + +/***/ }), + +/***/ "./src/blocks/release-result-list/style.scss": +/*!***************************************************!*\ + !*** ./src/blocks/release-result-list/style.scss ***! + \***************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +// extracted by mini-css-extract-plugin + + +/***/ }), + +/***/ "react": +/*!************************!*\ + !*** external "React" ***! + \************************/ +/***/ ((module) => { + +module.exports = window["React"]; + +/***/ }), + +/***/ "@wordpress/block-editor": +/*!*************************************!*\ + !*** external ["wp","blockEditor"] ***! + \*************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["blockEditor"]; + +/***/ }), + +/***/ "@wordpress/blocks": +/*!********************************!*\ + !*** external ["wp","blocks"] ***! + \********************************/ +/***/ ((module) => { + +module.exports = window["wp"]["blocks"]; + +/***/ }), + +/***/ "@wordpress/components": +/*!************************************!*\ + !*** external ["wp","components"] ***! + \************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["components"]; + +/***/ }), + +/***/ "@wordpress/server-side-render": +/*!******************************************!*\ + !*** external ["wp","serverSideRender"] ***! + \******************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["serverSideRender"]; + +/***/ }), + +/***/ "./src/blocks/release-result-list/block.json": +/*!***************************************************!*\ + !*** ./src/blocks/release-result-list/block.json ***! + \***************************************************/ +/***/ ((module) => { + +module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"wporg/release-result-list","version":"0.1.0","title":"Release Result List","category":"design","icon":"","description":"A block to display release draft result list.","textdomain":"wporg","attributes":{},"supports":{"html":false},"editorScript":"file:./index.js","render":"file:./render.php","style":"file:./style-index.css"}'); + +/***/ }) + +/******/ }); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ // no module.id needed +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = __webpack_modules__; +/******/ +/************************************************************************/ +/******/ /* webpack/runtime/chunk loaded */ +/******/ (() => { +/******/ var deferred = []; +/******/ __webpack_require__.O = (result, chunkIds, fn, priority) => { +/******/ if(chunkIds) { +/******/ priority = priority || 0; +/******/ for(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1]; +/******/ deferred[i] = [chunkIds, fn, priority]; +/******/ return; +/******/ } +/******/ var notFulfilled = Infinity; +/******/ for (var i = 0; i < deferred.length; i++) { +/******/ var chunkIds = deferred[i][0]; +/******/ var fn = deferred[i][1]; +/******/ var priority = deferred[i][2]; +/******/ var fulfilled = true; +/******/ for (var j = 0; j < chunkIds.length; j++) { +/******/ if ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) { +/******/ chunkIds.splice(j--, 1); +/******/ } else { +/******/ fulfilled = false; +/******/ if(priority < notFulfilled) notFulfilled = priority; +/******/ } +/******/ } +/******/ if(fulfilled) { +/******/ deferred.splice(i--, 1) +/******/ var r = fn(); +/******/ if (r !== undefined) result = r; +/******/ } +/******/ } +/******/ return result; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/compat get default export */ +/******/ (() => { +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = (module) => { +/******/ var getter = module && module.__esModule ? +/******/ () => (module['default']) : +/******/ () => (module); +/******/ __webpack_require__.d(getter, { a: getter }); +/******/ return getter; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/define property getters */ +/******/ (() => { +/******/ // define getter functions for harmony exports +/******/ __webpack_require__.d = (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 */ +/******/ (() => { +/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) +/******/ })(); +/******/ +/******/ /* webpack/runtime/make namespace object */ +/******/ (() => { +/******/ // define __esModule on exports +/******/ __webpack_require__.r = (exports) => { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/jsonp chunk loading */ +/******/ (() => { +/******/ // no baseURI +/******/ +/******/ // object to store loaded and loading chunks +/******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched +/******/ // [resolve, reject, Promise] = chunk loading, 0 = chunk loaded +/******/ var installedChunks = { +/******/ "blocks/release-result-list/index": 0, +/******/ "blocks/release-result-list/style-index": 0 +/******/ }; +/******/ +/******/ // no chunk on demand loading +/******/ +/******/ // no prefetching +/******/ +/******/ // no preloaded +/******/ +/******/ // no HMR +/******/ +/******/ // no HMR manifest +/******/ +/******/ __webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0); +/******/ +/******/ // install a JSONP callback for chunk loading +/******/ var webpackJsonpCallback = (parentChunkLoadingFunction, data) => { +/******/ var chunkIds = data[0]; +/******/ var moreModules = data[1]; +/******/ var runtime = data[2]; +/******/ // add "moreModules" to the modules object, +/******/ // then flag all "chunkIds" as loaded and fire callback +/******/ var moduleId, chunkId, i = 0; +/******/ if(chunkIds.some((id) => (installedChunks[id] !== 0))) { +/******/ for(moduleId in moreModules) { +/******/ if(__webpack_require__.o(moreModules, moduleId)) { +/******/ __webpack_require__.m[moduleId] = moreModules[moduleId]; +/******/ } +/******/ } +/******/ if(runtime) var result = runtime(__webpack_require__); +/******/ } +/******/ if(parentChunkLoadingFunction) parentChunkLoadingFunction(data); +/******/ for(;i < chunkIds.length; i++) { +/******/ chunkId = chunkIds[i]; +/******/ if(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) { +/******/ installedChunks[chunkId][0](); +/******/ } +/******/ installedChunks[chunkId] = 0; +/******/ } +/******/ return __webpack_require__.O(result); +/******/ } +/******/ +/******/ var chunkLoadingGlobal = self["webpackChunkwporg_plugins_2024"] = self["webpackChunkwporg_plugins_2024"] || []; +/******/ chunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0)); +/******/ chunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal)); +/******/ })(); +/******/ +/************************************************************************/ +/******/ +/******/ // startup +/******/ // Load entry module and return exports +/******/ // This entry module depends on other loaded chunks and execution need to be delayed +/******/ var __webpack_exports__ = __webpack_require__.O(undefined, ["blocks/release-result-list/style-index"], () => (__webpack_require__("./src/blocks/release-result-list/index.js"))) +/******/ __webpack_exports__ = __webpack_require__.O(__webpack_exports__); +/******/ +/******/ })() +; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-list/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-list/render.php new file mode 100644 index 0000000000..1df49ea1ef --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-list/render.php @@ -0,0 +1,22 @@ +
  • > +
    + attributes['status'] ) : ?> + + + + + + attributes['status'] ) : ?> + + + + attributes['status'] ) : ?> + + + + + +
    + + inner_html ); ?> +
  • diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-list/style-index.css b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-list/style-index.css new file mode 100644 index 0000000000..1ef3e67a05 --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-list/style-index.css @@ -0,0 +1,17 @@ +/*!******************************************************************************************************************************************************************************************************************************************************************!*\ + !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/blocks/release-result-list/style.scss ***! + \******************************************************************************************************************************************************************************************************************************************************************/ +.wp-block-wporg-release-result-item { + display: flex; + margin: 0 !important; + position: relative; + gap: 8px; + list-style: none; +} +.wp-block-wporg-release-result-item > div:first-child { + height: 25px; + display: flex; + align-items: center; +} + +/*# sourceMappingURL=style-index.css.map*/ \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status/render.php index 0517e2e2f2..a4012c0db0 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status/render.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status/render.php @@ -4,12 +4,12 @@ return; } -$post = get_post( $block->context['postId'] ); -if ( ! $post ) { +$release_post = get_post( $block->context['postId'] ); +if ( ! $release_post ) { return; } -if('draft' != $post->post_s) { +if ( 'draft' != $release_post->post_status ) { return; } ?> diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/client/components/plugin/_spinner.scss b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/client/components/plugin/_spinner.scss new file mode 100644 index 0000000000..0ac9a79e9b --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/client/components/plugin/_spinner.scss @@ -0,0 +1,49 @@ +.wporg-spinner { + --local-size: 16px; + --spinner-color: var(--wp--custom--spinner--color, var(--wp--preset--color--blueberry-1, currentColor)); + --background-stroke-color: rgb(221, 221, 221); + + width: var(--local-size); + height: var(--local-size); + display: inline-block; + background-color: transparent; + position: relative; +} + +/* Static outer circle */ +.wporg-spinner::before { + content: ''; + width: 100%; + height: 100%; + border-radius: 50%; + border: 1.5px solid var(--background-stroke-color); + display: block; + box-sizing: border-box; +} + +/* Rotating semicircle (arc) */ +.wporg-spinner::after { + content: ''; + width: 100%; + height: 100%; + border-radius: 50%; + border: 1.5px solid transparent; + border-top-color: var(--spinner-color); + border-right-color: var(--spinner-color); + display: block; + box-sizing: border-box; + animation: wporg-spinner-rotate 1.4s linear infinite; + transform-origin: center; + position: absolute; + top: 0; + left: 0; +} + +@keyframes wporg-spinner-rotate { + from { + transform: rotate(0deg); + } + to { + transform: rotate(360deg); + } +} diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/client/styles/components/_components.scss b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/client/styles/components/_components.scss index 66e63d0b08..77be260a4f 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/client/styles/components/_components.scss +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/client/styles/components/_components.scss @@ -22,6 +22,7 @@ @import "../../components/plugin/sections-screenshots"; @import "../../components/plugin/sections-stats"; @import "../../components/plugin/sections"; +@import "../../components/plugin/spinner"; @import "../../components/plugin/style"; @import "../../components/widget-area/widgets-adopt-me"; @import "../../components/widget-area/widgets-categorization"; diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/css/style-rtl.css b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/css/style-rtl.css index 06d154b748..01016b968f 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/css/style-rtl.css +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/css/style-rtl.css @@ -1 +1 @@ -@charset "UTF-8";.avatar{border-radius:50%;vertical-align:middle}.wp-block-wporg-language-suggest>p{margin:0}.block-validator>details summary{padding:var(--wp--style--block-gap) 0}.block-validator .block-validator__plugin-form label{display:block;margin-bottom:.8em}.block-validator .block-validator__plugin-input-container{display:flex;max-width:34rem}.block-validator .block-validator__plugin-input{flex:1}.block-validator .block-validator__plugin-submit{flex:0;margin-right:4px}@media (max-width:36rem){.block-validator .block-validator__plugin-submit{width:100%}.block-validator .block-validator__plugin-input-container{display:block}.block-validator .block-validator__plugin-input{width:100%}.block-validator .block-validator__plugin-submit{margin-right:0;margin-top:var(--wp--style--block-gap)}}.block-validator .notice details,.block-validator .notice p{font-size:var(--wp--preset--font-size--normal);margin:var(--wp--style--block-gap) 0}.block-validator .notice details p{font-size:var(--wp--preset--font-size--small);margin-right:1rem}.block-validator .notice summary{display:list-item}.block-validator figure{border:1px solid #aaa;display:inline-block;padding:1em}.block-validator .test-screenshot{text-align:center}.block-validator .plugin-upload-form-controls{align-items:center;display:flex;gap:4px}.block-validator .plugin-upload-form-controls>label{border:1px solid var(--wp--custom--form--border--color);border-radius:var(--wp--custom--form--border--radius);cursor:pointer;min-width:200px;padding:4px 8px}.notice{background:#fff;border-right:4px solid #fff;box-shadow:0 1px 1px 0 #0000001a;font-size:var(--wp--preset--font-size--small);margin:var(--wp--style--block-gap) 0;padding:1px 12px}.notice p,.notice ul{margin:.5em 0;padding:2px}.notice pre{white-space:pre-wrap}.notice ul{list-style:none;margin:.5em}.notice.notice-alt{box-shadow:none}.notice.notice-large{padding:10px 20px}.notice.notice-success{border-right-color:#46b450}.notice.notice-success.notice-alt{background-color:#ecf7ed}.notice.notice-warning{border-right-color:#ffb900}.notice.notice-warning.notice-alt{background-color:#fff8e5}.notice.notice-error{border-right-color:#dc3232}.notice.notice-error.notice-alt{background-color:#fbeaea}.notice.notice-info{border-right-color:#00a0d2}.notice.notice-info.notice-alt{background-color:#e5f5fa}.notice.hidden{display:none}.plugin-upload-form.hidden{display:none}.plugin-upload-form fieldset{border:none;margin:0;padding:0}.plugin-upload-form legend{margin:1rem 0}.plugin-upload-form .category-checklist{list-style-type:none;margin:0 0 2rem}.plugin-upload-form .category-checklist li{float:right;padding:.5rem 0;width:50%}@media screen and (min-width:48em){.plugin-upload-form .category-checklist li{padding:0}.plugin-upload-form .category-checklist label{font-size:var(--wp--preset--font-size--small)}.plugin-upload-form label.button{line-height:1.8}}.plugin-upload-form .plugin-file{height:.1px;opacity:0;overflow:hidden;position:absolute;width:.1px;z-index:-1}.plugin-queue-message code{font-size:1em}.plugin-queue-message dialog.slug-change input[type=text]{font-family:monospace;font-size:1.2em;width:20em}:where(main) a:where(:not(.wp-element-button,.wp-block-wporg-link-wrapper)):focus,:where(main) button:where(:not([class*=wp-block-button])):focus{border-radius:2px;box-shadow:0 0 0 1.5px currentColor;outline:none}.wporg-filter-bar{--wporg--filter-bar--gap:20px;--wporg--filter-bar--color:#40464d;--wporg--filter-bar--active--background-color:var(--wp--custom--button--color--background);--wporg--filter-bar--focus--border-color:var(--wp--custom--button--focus--border--color);margin:var(--wp--style--block-gap) 0}.wporg-filter-bar .wporg-query-filter__toggle.is-active,.wporg-filter-bar .wporg-query-filter__toggle:active,.wporg-filter-bar .wporg-query-filter__toggle:focus{background-color:var(--wporg--filter-bar--active--background-color);color:var(--wp--custom--button--color--text)}.wporg-filter-bar .wporg-filter-bar__navigation{flex-grow:1;margin-bottom:var(--wporg--filter-bar--gap)}.wporg-filter-bar .wporg-filter-bar__navigation ul{display:inline-block;font-size:13px;line-height:1.538;list-style:none;margin:0;padding-right:0}.wporg-filter-bar .wporg-filter-bar__navigation ul li{display:inline-block}.wporg-filter-bar .wporg-filter-bar__navigation ul li+li{margin-right:8px}.wporg-filter-bar .wporg-filter-bar__navigation ul a{border-radius:2px;color:var(--wporg--filter-bar--color);display:block;padding:8px 12px;text-decoration:none}.wporg-filter-bar .wporg-filter-bar__navigation ul a:focus,.wporg-filter-bar .wporg-filter-bar__navigation ul a:hover{text-decoration:underline}.wporg-filter-bar .wporg-filter-bar__navigation ul a:focus-visible{box-shadow:none;outline:1.5px solid var(--wporg--filter-bar--focus--border-color);outline-offset:-.5px}.wporg-filter-bar .wporg-filter-bar__navigation ul a.is-active{background-color:var(--wporg--filter-bar--active--background-color);color:#fff}.wporg-filter-bar .wporg-filter-bar__navigation ul a.is-active:focus,.wporg-filter-bar .wporg-filter-bar__navigation ul a.is-active:hover{color:#fff}.wporg-filter-bar .wporg-filter-bar__navigation ul a.is-active:focus-visible{box-shadow:inset 0 0 0 1.5px #fff;outline:1.5px solid var(--wporg--filter-bar--focus--border-color);outline-offset:-.5px}@media screen and (min-width:737px){.wporg-filter-bar{align-items:center;display:flex;flex-wrap:wrap;gap:var(--wporg--filter-bar--gap);justify-content:space-between;width:100%}.wporg-filter-bar .wporg-filter-bar__navigation{margin-bottom:0}}.wp-block-search__inside-wrapper{background:var(--wp--preset--color--light-grey-2);border:none}.button-link{background:none;border:0;border-radius:0;box-shadow:none;cursor:pointer;margin:0;outline:none;padding:0}.button{background-color:var(--wp--custom--button--color--background);border:0;border-radius:var(--wp--custom--button--border--radius);color:var(--wp--custom--button--color--text);cursor:pointer;opacity:1;padding:calc(var(--wp--custom--button--small--spacing--padding--top) + var(--wp--custom--button--border--width)) calc(var(--wp--custom--button--small--spacing--padding--left) + var(--wp--custom--button--border--width)) calc(var(--wp--custom--button--small--spacing--padding--bottom) + var(--wp--custom--button--border--width)) calc(var(--wp--custom--button--small--spacing--padding--right) + var(--wp--custom--button--border--width));vertical-align:middle}.button.button-large{padding:calc(var(--wp--custom--button--spacing--padding--top) + var(--wp--custom--button--border--width)) calc(var(--wp--custom--button--spacing--padding--left) + var(--wp--custom--button--border--width)) calc(var(--wp--custom--button--spacing--padding--bottom) + var(--wp--custom--button--border--width)) calc(var(--wp--custom--button--spacing--padding--right) + var(--wp--custom--button--border--width))}input+button.button,select+button.button{margin-top:-3px}.button.disabled{cursor:not-allowed;opacity:.6}.wp-block-post-content a.button{text-decoration:none}.wp-block-button__link{width:auto}pre{background-color:#f7f7f7;border:1px solid var(--wp--preset--color--light-grey-1);overflow:scroll;padding:20px}code,pre{border-radius:2px}code{background:var(--wp--preset--color--light-grey-2);display:inline-block;line-height:var(--wp--custom--body--extra-small--typography--line-height);max-width:100%;padding-inline-end:3px;padding-inline-start:3px}dialog{border:0;box-shadow:-6px 6px 6px #0003;min-height:50%;min-width:30%}@media (min-width:1280px){dialog{max-width:55%}}dialog::backdrop{background:#000;opacity:.5}dialog .close{color:inherit;cursor:pointer;position:absolute;left:1em;text-decoration:none!important;top:1em}.plugin-card{display:flex;flex-direction:column;height:100%;justify-content:space-between}.plugin-card .entry{display:inline-block;vertical-align:top}.plugin-card .entry-title{display:block;display:-webkit-box;font-size:var(--wp--preset--font-size--heading-5);font-weight:500;line-height:1.3;margin-bottom:2px!important;max-height:2.6em;overflow:hidden;-webkit-line-clamp:2;-webkit-box-orient:vertical}.plugin-card .entry-title a{display:block;text-decoration:none}.plugin-card .entry-title a:focus{box-shadow:none}.plugin-card .entry-excerpt{clear:both;font-size:var(--wp--preset--font-size--small)}.plugin-card .entry-excerpt p{margin:0}.plugin-card footer{font-size:var(--wp--preset--font-size--small);margin-top:var(--wp--style--block-gap)}.plugin-card footer span{color:var(--wp--preset--color--charcoal-4);display:inline-block;line-height:var(--wp--preset--font-size--normal);overflow:hidden}.plugin-card footer span.plugin-author{width:100%}.plugin-card footer span.plugin-author span{color:var(--wp--preset--color--charcoal-1)}.plugin-card footer span.plugin-author path{fill:var(--wp--preset--color--charcoal-1)}.plugin-card footer span svg{height:24px;vertical-align:bottom;width:24px}.plugin-card footer span svg path{fill:var(--wp--preset--color--charcoal-4)}.plugin-card footer span.active-installs{min-width:48%}.plugin-cards{cursor:pointer}.plugin-cards .is-style-cards-grid li:hover{background-color:#fff!important;border:1px solid var(--wp--preset--color--charcoal-1)!important}.plugin-cards .is-style-cards-grid li:focus-within{border-color:#0000;border-radius:2px;box-shadow:0 0 0 1.5px var(--wp--custom--link--color--text)}@media screen and (max-width:737px){.plugin-cards .is-style-cards-grid{grid-template-columns:100%}}.entry-thumbnail{display:none;margin-bottom:var(--wp--style--block-gap);margin-left:var(--wp--style--block-gap);max-width:80px}.entry-thumbnail .plugin-icon{background-size:cover;border-radius:var(--wp--custom--button--border--radius);display:block;height:80px;width:80px}@media screen and (min-width:21em){.entry-thumbnail{display:inline-block;float:right;vertical-align:top}}.single .entry-thumbnail{display:none;float:right;height:96px;margin-bottom:0;max-width:96px}@media screen and (min-width:26em){.single .entry-thumbnail{display:block}}.single .entry-thumbnail .plugin-icon{background-size:contain!important;height:96px!important;width:96px!important}.plugin-rating{line-height:1;margin:0 0 8px 10px}.plugin-rating .wporg-ratings{display:inline-block;margin-left:5px}.plugin-rating .rating-count{color:var(--wp--preset--color--charcoal-4);font-size:var(--wp--preset--font-size--extra-small);vertical-align:text-bottom}.plugin-rating .rating-count a{color:inherit;cursor:hand;text-decoration:none}[class*=dashicons-star-]{color:var(--wp--preset--color--pomegrade-1)}.rtl .dashicons-star-half{transform:rotateY(-180deg)}#main .plugin-section{margin:0 auto var(--wp--preset--spacing--60)}#main .plugin-section:last-of-type{margin-bottom:0}#main .plugin-section .section-header{align-items:center;column-gap:10px;display:flex;justify-content:space-between;margin-bottom:var(--wp--style--block-gap)}#main .plugin-section .section-header>h2{margin-bottom:0}#main .plugin-section .section-link{align-self:center;flex:0 0 auto;text-decoration:underline}.pagination .nav-links{margin-top:var(--wp--style--block-gap);padding-top:var(--wp--style--block-gap);text-align:center}.pagination .nav-links a{text-decoration:none}.pagination .nav-links .page-numbers{cursor:pointer;display:inline-block;min-width:2em;padding:8px;text-align:center}.pagination .nav-links .page-numbers.dots,.pagination .nav-links .page-numbers.next,.pagination .nav-links .page-numbers.prev{background:none;font-size:.9em;width:auto}.pagination .nav-links .page-numbers.dots{cursor:inherit}@media screen and (max-width:737px){.pagination .nav-links .page-numbers.next,.pagination .nav-links .page-numbers.prev{font-size:0;min-width:auto;padding:0}.pagination .nav-links .page-numbers.next:after,.pagination .nav-links .page-numbers.prev:before{display:inline-block;font-size:medium;line-height:1.5;min-width:2em;padding:8px}.pagination .nav-links .page-numbers.prev:before{content:"‹"}.pagination .nav-links .page-numbers.next:after{content:"›"}}.pagination .nav-links span.page-numbers{font-weight:700}.pagination .nav-links span.page-numbers.current{text-decoration:underline}@keyframes favme-anime{0%{font-size:var(--wp--preset--font-size--large);opacity:1;-webkit-text-stroke-color:#0000}25%{color:#fff;font-size:var(--wp--preset--font-size--small);opacity:.6;-webkit-text-stroke-width:1px;-webkit-text-stroke-color:#dc3232}75%{color:#fff;font-size:var(--wp--preset--font-size--large);opacity:.6;-webkit-text-stroke-width:1px;-webkit-text-stroke-color:#dc3232}to{font-size:var(--wp--preset--font-size--normal);opacity:1;-webkit-text-stroke-color:#0000}}.plugin-favorite{height:calc(var(--wp--custom--button--spacing--padding--top)*2 + var(--wp--preset--font-size--normal)*2);text-align:center;vertical-align:top;width:36px}.plugin-favorite .plugin-favorite-heart{align-items:center;background:none;border:0;border-radius:0;box-shadow:none;color:#cbcdce;cursor:pointer;display:flex;font-size:var(--wp--preset--font-size--large);height:100%;justify-content:center;line-height:1;margin:0;outline:none;padding:0;text-decoration:none}.plugin-favorite .plugin-favorite-heart.favorited{color:#dc3232}.plugin-favorite .plugin-favorite-heart:focus,.plugin-favorite .plugin-favorite-heart:hover{color:var(----wp--preset--color--charcoal-2);text-decoration:none}.plugin-favorite .plugin-favorite-heart:after{content:"\f487";font-family:dashicons;vertical-align:top}.plugin-banner img{aspect-ratio:3.089;border-radius:var(--wp--custom--button--border--radius);display:block;margin:0 auto var(--wp--preset--spacing--30);width:100%}.plugin-releases{list-style-type:none;padding:0}.plugin-releases-item{border:1px solid var(--wp--preset--color--light-grey-1);border-radius:4px;margin-bottom:var(--wp--preset--spacing--30);padding:var(--wp--style--block-gap)}.plugin-releases-item-header{display:flex;justify-content:space-between}.plugin-releases-item-header h3{margin:0!important}@keyframes hideAnimation{to{visibility:hidden}}.categorization .help{color:var(--wp--preset--color--charcoal-4);display:inline-block;font-size:.8rem;margin-top:0}.categorization label{display:block;font-weight:700}.categorization input{width:100%}.categorization .success-msg{background:#eff7ed;border:solid #64b450;border-width:0 5px 0 0;font-size:.8rem;margin-right:1rem;opacity:0;overflow:auto;padding:.1rem .6rem .2rem;position:relative;transition:visibility 0s,opacity .5s linear;-webkit-user-select:none;user-select:none;visibility:hidden}.categorization .success-msg.saved{animation:hideAnimation 0s ease-in 5s;animation-fill-mode:forwards;opacity:1;visibility:visible}.plugin-changelog code{font-size:var(--wp--preset--font-size--small)}.plugin-developers .contributors-list li{align-items:center;display:flex;padding-bottom:var(--wp--style--block-gap)}@media screen and (min-width:500px){.plugin-developers .contributors-list{display:flex;flex-wrap:wrap}.plugin-developers .contributors-list li{padding-bottom:unset;width:50%}}.plugin-faq dl{border-bottom:1px solid var(--wp--preset--color--light-grey-1)}.plugin-faq dt{border-top:1px solid var(--wp--preset--color--light-grey-1);cursor:pointer;padding:1rem 0}.plugin-faq dt:before{content:"\f347";float:left;font-family:dashicons;margin:0 1rem}.plugin-faq dt.open:before{content:"\f343"}.plugin-faq dt .button-link{display:inherit;text-align:inherit}.plugin-faq dt .button-link.no-focus{box-shadow:none;outline:none}.plugin-faq dt h3{color:var(--wp--custom--link--color--text);display:inline;font-size:var(--wp--preset--font-size--normal);font-weight:400;margin-bottom:0;margin-top:0!important;text-decoration:underline}.plugin-faq dt h3 button{all:inherit;max-width:calc(100% - 60px)}.plugin-faq dt h3 button:focus,.plugin-faq dt h3 button:hover{text-decoration:underline}.plugin-faq dd{display:none;margin:0 0 1rem}.no-js .plugin-faq dd{display:block}.plugin-faq dd p{margin:0}.plugin-faq dd p+p{margin-top:1rem}.image-gallery{-webkit-user-select:none;user-select:none}.image-gallery-content{position:relative}.image-gallery-content .image-gallery-left-nav,.image-gallery-content .image-gallery-right-nav{border-color:var(--wp--preset--color--light-grey-1);display:none;font-size:48px;height:100%;position:absolute;top:0;transition:background .1s ease,border .1s ease;z-index:4}@media (max-width:768px){.image-gallery-content .image-gallery-left-nav,.image-gallery-content .image-gallery-right-nav{font-size:3.4em}}@media (min-width:768px){.image-gallery-content .image-gallery-left-nav:hover,.image-gallery-content .image-gallery-right-nav:hover{background:#fff;border:1px solid var(--wp--preset--color--light-grey-1);opacity:.8}}.image-gallery-content .image-gallery-left-nav:before,.image-gallery-content .image-gallery-right-nav:before{font-family:dashicons;position:relative}.image-gallery-content .image-gallery-left-nav{right:0}.image-gallery-content .image-gallery-left-nav:before{content:"\f345"}.image-gallery-content .image-gallery-left-nav:hover{margin-right:-1px}.image-gallery-content .image-gallery-right-nav{left:0}.image-gallery-content .image-gallery-right-nav:before{content:"\f341"}.image-gallery-content .image-gallery-right-nav:hover{margin-left:-1px}.image-gallery-content:hover .image-gallery-left-nav,.image-gallery-content:hover .image-gallery-right-nav{display:block}.image-gallery-slides{border:1px solid #eee;line-height:0;overflow:hidden;position:relative;white-space:nowrap}.image-gallery-slide{right:0;position:absolute;top:0;width:100%}.image-gallery-slide.center{position:relative}.image-gallery-slide .image-gallery-image{margin:0}.image-gallery-slide img{display:block;margin:0 auto}.image-gallery-slide .image-gallery-description{background:var(--wp--preset--color--light-grey-2);color:var(--wp--preset--color--charcoal-1);font-size:var(--wp--preset--font-size--small);line-height:1.5;padding:10px 20px;white-space:normal}@media (max-width:768px){.image-gallery-slide .image-gallery-description{padding:8px 15px}}.image-gallery-thumbnails{background:#fff;margin-top:5px}.image-gallery-thumbnails .image-gallery-thumbnails-container{cursor:pointer;text-align:center;white-space:nowrap}.image-gallery-thumbnail{border:1px solid #eee;display:table-cell;margin-left:5px;max-height:100px;overflow:hidden}.image-gallery-thumbnail .image-gallery-image{margin:0}.image-gallery-thumbnail img{vertical-align:middle;width:100px}@media (max-width:768px){.image-gallery-thumbnail img{width:75px}}.image-gallery-thumbnail:hover{box-shadow:0 1px 8px #0000004d}.image-gallery-thumbnail.active{border:1px solid #337ab7}.image-gallery-thumbnail-label{color:#222;font-size:1em}@media (max-width:768px){.image-gallery-thumbnail-label{font-size:.8em}}.image-gallery-index{background:#0006;bottom:0;color:#fff;line-height:1;padding:10px 20px;position:absolute;left:0;z-index:4}.plugin-reviews{list-style-type:none;margin:0;padding:0}.plugin-reviews .plugin-review{border-bottom:1px solid var(--wp--preset--color--light-grey-1);margin:2rem 0 1rem;padding-bottom:1rem}.plugin-reviews .plugin-review a{text-decoration:none}.plugin-reviews .plugin-review:first-child{margin-top:0}.plugin-reviews .plugin-review .header-top{display:flex}.plugin-reviews .plugin-review .header-top .wporg-ratings{flex-shrink:0}.plugin-reviews .plugin-review .header-bottom{display:flex;margin-top:4px}.plugin-reviews .review-avatar{display:none}.plugin-reviews .review,.plugin-reviews .review-author,.plugin-reviews .wporg-ratings{display:inline-block;vertical-align:top}.plugin-reviews .review-header{margin:0 0 .5rem}.plugin-reviews .review-title{font-size:var(--wp--preset--font-size--normal);font-weight:500;margin:2px 12px 0 0!important;text-transform:inherit}.plugin-reviews .review-author,.plugin-reviews .review-date,.plugin-reviews .review-replies{font-size:var(--wp--preset--font-size--extra-small);line-height:1.25}.plugin-reviews .review-date,.plugin-reviews .review-replies{color:var(--wp--preset--color--charcoal-4);font-size:var(--wp--preset--font-size--extra-small);margin-right:12px}.plugin-reviews .review-replies:before{content:"•";margin-left:12px}.plugin-reviews .review-content{margin:1em 0}@media screen and (min-width:737px){.plugin-reviews .review-avatar{display:inline-block;vertical-align:top}.plugin-reviews .review-avatar .avatar{margin-left:1rem}.plugin-reviews .review{width:calc(100% - 60px - 1rem)}.plugin-reviews .review-header{margin:0}.plugin-reviews .review-author,.plugin-reviews .review-date,.plugin-reviews .review-replies{line-height:1}}.plugin-reviews .reviews-link{display:inline-block;font-size:var(--wp--preset--font-size--small);text-decoration:none}.plugin-reviews .reviews-link:after{content:"\f341";float:left;font-family:dashicons;padding-right:5px;position:relative;top:1px;vertical-align:text-top}.plugin-screenshots{list-style-type:none;margin:0;padding:0}.plugin-screenshots .image-gallery-content{display:table;width:100%}.plugin-screenshots .image-gallery-slides{display:table-cell;max-height:600px}.plugin-screenshots .image-gallery-image img{max-height:550px;max-width:100%}.plugin-screenshots .image-gallery-thumbnail{vertical-align:top}.plugin-screenshots .image-gallery-thumbnail img{max-height:100px}.plugin-screenshots .image-gallery-thumbnails{overflow:hidden}.download-history-stats td{text-align:left}.previous-versions{max-width:60%}@media screen and (min-width:737px){.previous-versions{height:32px;vertical-align:middle}}hr{margin:2.5rem auto}.section h1:nth-child(2),.section h2:nth-child(2),.section h3:nth-child(2),.section h4:nth-child(2),.section h5:nth-child(2),.section h6:nth-child(2){margin-top:0}.section-heading{font-family:var(--wp--preset--font-family--inter)!important;font-size:var(--wp--preset--font-size--heading-5)!important;font-style:normal;font-weight:600;line-height:var(--wp--custom--heading--level-5--typography--line-height)}.section-intro{color:var(--wp--preset--color--charcoal-4);font-size:var(--wp--preset--font-size--small);margin-bottom:var(--wp--preset--spacing--20);margin-top:var(--wp--preset--spacing--10)}.type-plugin .plugin-notice{margin-top:0}.type-plugin .plugin-header{border-bottom:0;padding-top:var(--wp--preset--spacing--40)}.type-plugin .plugin-header:after,.type-plugin .plugin-header:before{content:"";display:table;table-layout:fixed}.type-plugin .plugin-header:after{clear:both}.type-plugin .plugin-header .entry-heading-container{display:flex;flex-direction:column;justify-content:space-between}@media screen and (max-width:599px){.type-plugin .plugin-header .entry-heading-container{--wp--custom--button--spacing--padding--top:12px;--wp--custom--button--spacing--padding--bottom:12px;--wp--custom--button--spacing--padding--left:16px;--wp--custom--button--spacing--padding--right:16px}}@media screen and (min-width:700px){.type-plugin .plugin-header .entry-heading-container{flex-direction:row}}.type-plugin .plugin-header .entry-heading-container>:first-child{align-items:center;display:flex;flex:1}.type-plugin .plugin-header .plugin-actions{align-items:center;display:flex;gap:16px;margin-top:var(--wp--style--block-gap)}@media screen and (min-width:700px){.type-plugin .plugin-header .plugin-actions{margin-top:0;margin-inline-start:1rem}}.type-plugin .plugin-header .plugin-actions>.button,.type-plugin .plugin-header .plugin-actions>div{display:inline-block;text-align:center}@media screen and (max-width:34em){.type-plugin .plugin-header .plugin-actions>.button.download-button{display:none}}.type-plugin .plugin-header .plugin-title{clear:none;font-size:var(--wp--preset--font-size--heading-3);font-weight:400;line-height:var(--wp--custom--heading--level-3--typography--line-height);margin:0}.type-plugin .plugin-header .plugin-title a{color:inherit;text-decoration:none}.type-plugin .plugin-header .plugin-title a:hover{text-decoration:underline}.type-plugin .plugin-header .byline{color:var(--wp--preset--color--charcoal-4);display:block;margin-top:4px}.type-plugin .plugin-banner+.plugin-header{padding-top:0}.type-plugin .plugin-banner+.plugin-header>.notice:first-of-type{margin-top:0}.type-plugin .tabs{border-bottom:1px solid var(--wp--preset--color--light-grey-1);list-style:none;margin:0}.type-plugin .tabs li{border:1px solid #0000;display:inline-block;font-size:.9rem;margin-bottom:-1px;transition:background .2s ease}.type-plugin .tabs li a{background:#fff;border:0;color:var(--wp--preset--color--charcoal-1);display:block;font-size:var(--wp--preset--font-size--normal);padding:.64rem 1.25rem;text-decoration:none}.type-plugin .tabs li a.active,.type-plugin .tabs li a:hover{background:var(--wp--preset--color--light-grey-2)!important}.type-plugin .tabs li.active,.type-plugin .tabs li:hover{border:1px solid var(--wp--preset--color--light-grey-1)}@media screen and (max-width:38em){.type-plugin .tabs{border-top:1px solid var(--wp--preset--color--light-grey-1)}.type-plugin .tabs li{display:block;margin-bottom:1px}.type-plugin .tabs li,.type-plugin .tabs li.active,.type-plugin .tabs li:hover{border:none;border-bottom:1px solid var(--wp--preset--color--light-grey-1)}}@media screen and (min-width:737px){.type-plugin .entry-content{float:right;padding:0;width:65%}}.type-plugin .entry-content>div,.type-plugin .entry-content>div~button{border:0;display:none}.type-plugin .entry-content ol>li>p,.type-plugin .entry-content ul>li>p{margin:0}.type-plugin .entry-content #admin{display:block!important}.type-plugin .plugin-blocks-list{list-style:none;margin-right:0;padding-right:0}.type-plugin .plugin-blocks-list .plugin-blocks-list-item{display:grid;grid-template-columns:auto 1fr;margin-bottom:var(--wp--style--block-gap)}.type-plugin .plugin-blocks-list .block-icon{border:1px solid var(--wp--preset--color--light-grey-1);border-radius:2px;display:inline-block;height:3.5rem;line-height:16px;margin-left:var(--wp--style--block-gap);padding:var(--wp--style--block-gap);width:3.5rem}.type-plugin .plugin-blocks-list .block-icon.dashicons{color:inherit}.type-plugin .plugin-blocks-list .block-icon.dashicons:before{margin-right:-3px}.type-plugin .plugin-blocks-list .block-icon svg{height:16px;width:16px;fill:currentColor;margin-right:-1px}.type-plugin .plugin-blocks-list .block-title{align-self:center;font-weight:700}.type-plugin .plugin-blocks-list .has-description .block-icon{grid-row:1/span 2}.type-plugin .plugin-blocks-list .has-description .block-title{margin-bottom:.4em}.type-plugin span#description,.type-plugin span#developers,.type-plugin span#installation,.type-plugin span#releases,.type-plugin span#reviews{position:fixed}.type-plugin span#advanced.displayed~#section-links .tabs li#tablink-advanced,.type-plugin span#developers:target~#section-links .tabs li#tablink-developers,.type-plugin span#installation:target~#section-links .tabs li#tablink-installation,.type-plugin span#releases:target~#section-links .tabs li#tablink-releases,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~span#advanced:not(.displayed)~#section-links .tabs li#tablink-description,.type-plugin span#reviews:target~#section-links .tabs li#tablink-reviews{background:#fff;border:1px solid var(--wp--preset--color--light-grey-1);border-bottom:0;padding-bottom:1px}@media screen and (max-width:38em){.type-plugin span#advanced.displayed~#section-links .tabs li#tablink-advanced.active,.type-plugin span#advanced.displayed~#section-links .tabs li#tablink-advanced:hover,.type-plugin span#developers:target~#section-links .tabs li#tablink-developers.active,.type-plugin span#developers:target~#section-links .tabs li#tablink-developers:hover,.type-plugin span#installation:target~#section-links .tabs li#tablink-installation.active,.type-plugin span#installation:target~#section-links .tabs li#tablink-installation:hover,.type-plugin span#releases:target~#section-links .tabs li#tablink-releases.active,.type-plugin span#releases:target~#section-links .tabs li#tablink-releases:hover,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~span#advanced:not(.displayed)~#section-links .tabs li#tablink-description.active,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~span#advanced:not(.displayed)~#section-links .tabs li#tablink-description:hover,.type-plugin span#reviews:target~#section-links .tabs li#tablink-reviews.active,.type-plugin span#reviews:target~#section-links .tabs li#tablink-reviews:hover{padding-bottom:1px!important}}.type-plugin span#section-links{display:flex;flex-flow:row wrap;margin-top:var(--wp--preset--spacing--30)}.type-plugin span#section-links .tabs{flex:1 1 auto;padding-right:0}@media screen and (max-width:38em){.type-plugin span#section-links .tabs{border:1px solid var(--wp--preset--color--light-grey-1)!important}.type-plugin span#section-links .tabs li{border:none!important}.type-plugin span#section-links{display:block}}.type-plugin #link-support{align-self:flex-end;border-bottom:1px solid var(--wp--preset--color--light-grey-1);flex:0 0 auto;font-size:.9rem}.type-plugin #link-support a{display:inline-block;font-size:var(--wp--preset--font-size--normal);padding:.64rem 1.25rem .64rem 0}@media screen and (max-width:38em){.type-plugin #link-support{border-bottom:0;display:block;width:100%}.type-plugin #link-support a{padding-left:1.25rem}}.type-plugin span#developers:target~.entry-content #tab-changelog,.type-plugin span#developers:target~.entry-content #tab-developers,.type-plugin span#developers:target~.entry-content #tab-developers .plugin-development,.type-plugin span#developers:target~.entry-content #tab-developers~button,.type-plugin span#installation:target~.entry-content #tab-installation,.type-plugin span#releases:target~.entry-content #tab-releases,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~.entry-content #blocks,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~.entry-content #faq,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~.entry-content #screenshots,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~.entry-content #tab-description,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~.entry-content #tab-developers,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~.entry-content #tab-developers~button,.type-plugin span#reviews:target~.entry-content #tab-reviews{display:block}.type-plugin span#developers:target~.entry-content #tab-developers .plugin-contributors,.type-plugin span#installation:target~.entry-meta .plugin-contributors,.type-plugin span#releases:target~.entry-meta,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~.entry-content #tab-developers .plugin-development,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~.entry-meta .plugin-contributors,.type-plugin span#reviews:target~.entry-meta .plugin-contributors,.type-plugin span#reviews:target~.entry-meta .plugin-donate,.type-plugin span#reviews:target~.entry-meta .plugin-meta,.type-plugin span#reviews:target~.entry-meta .plugin-support{display:none}.type-plugin span#releases:target~.entry-content{width:100%}@media screen and (min-width:737px){.type-plugin .entry-content,.type-plugin .entry-meta{padding-right:0;padding-left:0}.type-plugin .entry-meta{float:left;width:30%}}.type-plugin .plugin-danger-zone h4{margin-top:var(--wp--preset--spacing--60)}.plugin-releases-listing{border-collapse:collapse;width:100%}.plugin-releases-listing tbody td:nth-child(4) div{font-size:14px}.plugin-releases-listing-actions{display:flex;flex-direction:column;gap:8px}@media screen and (min-width:34em){.plugin-releases-listing-actions{flex-direction:row}}.plugin-adopt-me{background:#e6f4fa;margin-top:36px;padding:12px}.plugin-adopt-me .widget-title{margin-top:0}.plugin-adopt-me p{margin-bottom:0}.widget.plugin-categorization{margin-top:var(--wp--style--block-gap)}.widget.plugin-categorization .widget-head h2{font-size:var(--wp--preset--font-size--heading-4);margin-bottom:.2rem;margin-top:0}.widget.plugin-categorization .widget-head a{font-size:var(--wp--preset--font-size--small)}.widget.plugin-categorization .widget-head a[href=""]{display:none}.widget.plugin-categorization p{font-size:var(--wp--preset--font-size--small);margin-top:.5rem}.widget.plugin-categorization~.plugin-meta li:first-child{border-top:1px solid var(--wp--preset--color--light-grey-1)}.committer-list,.support-rep-list{list-style:none;margin:0;padding:0}.committer-list li,.support-rep-list li{padding-bottom:.5rem}.committer-list li .remove,.support-rep-list li .remove{color:red;visibility:hidden}.committer-list li:hover .remove,.support-rep-list li:hover .remove{visibility:visible}.committer-list .avatar,.support-rep-list .avatar{float:right;margin-left:10px}.committer-list .spinner,.support-rep-list .spinner{position:relative}.committer-list .spinner:after,.support-rep-list .spinner:after{background:url(/wp-admin/images/spinner.gif) no-repeat 50%;background-size:20px 20px;content:"";display:block;height:20px;margin:-10px 0 0 -10px;position:absolute;left:-50%;top:50%;transform:translateZ(0);width:20px}@media (min-resolution:120dpi),print{.committer-list .spinner:after,.support-rep-list .spinner:after{background-image:url(/wp-admin/images/spinner-2x.gif)}}.committer-list .new,.support-rep-list .new{margin-top:var(--wp--style--block-gap)}.plugin-contributors.read-more{border-bottom:1px solid var(--wp--preset--color--light-grey-1);max-height:200px;overflow:hidden;padding-bottom:1px}.plugin-contributors.read-more.toggled{max-height:none}.no-js .plugin-contributors.read-more{max-height:none;overflow:auto}.contributors-list{list-style-type:none;margin:0;padding:0}.contributors-list li{align-items:center;display:flex;margin-bottom:1rem}.contributors-list .avatar{float:right;margin-left:10px}.plugin-meta{font-size:var(--wp--preset--font-size--small);margin-top:var(--wp--style--block-gap)}.plugin-meta ul{list-style-type:none;margin:0;padding:0}.plugin-meta li{border-top:1px solid var(--wp--preset--color--light-grey-1);display:inline-block;padding:.5rem 0;position:relative;width:100%}.plugin-meta li strong{float:left;font-weight:500}.plugin-meta li .plugin-admin{font-size:var(--wp--preset--font-size--normal);font-weight:400}.plugin-meta li:first-child{border-top:0}.plugin-meta .languages,.plugin-meta .tags{float:left;text-align:left}.plugin-meta .tags{width:60%}.plugin-meta .languages button{font-size:var(--wp--preset--font-size--small);outline:revert}.plugin-meta .languages .popover{margin-top:8px}.plugin-meta .languages .popover-trigger{color:var(--wp--custom--link--color--text);text-decoration:underline}.plugin-meta .languages .popover-trigger:hover{text-decoration:underline}.plugin-meta [rel=tag]{background:var(--wp--preset--color--blueberry-4);border-radius:2px;color:var(--wp--preset--color--charcoal-1);display:inline-block;font-size:var(--wp--preset--font-size--extra-small);margin:2px;max-width:95%;overflow:hidden;padding:3px 6px;position:relative;text-decoration:none;text-overflow:ellipsis;white-space:nowrap;width:auto}.plugin-meta [rel=tag]:hover{text-decoration:underline}.popover{background-color:#fff;border:1px solid var(--wp--preset--color--light-grey-1);border-radius:2px;box-shadow:0 2px 10px #0000001a;display:none;right:0;margin-top:10px;max-width:300px;padding:1em 1em 2em;position:absolute;width:100%;z-index:100}.popover.is-top-right{right:auto;left:0}.popover.is-visible{display:block}.popover .popover-close{bottom:.5em;color:var(--wp--custom--link--color--text);font-size:small;position:absolute;left:.6em}.popover .popover-close:active,.popover .popover-close:focus,.popover .popover-close:hover{text-decoration:underline}.popover .popover-arrow{border:10px solid #0000;border-bottom:10px solid #ccc;border-top:none;height:0;position:absolute;left:20px;top:-10px;width:0;z-index:-1}.popover .popover-arrow:after{border:10px solid #0000;border-bottom:10px solid #fff;border-top:none;content:"";right:-10px;position:absolute;top:2px}.popover .popover-inner{text-align:right}.popover .popover-inner p:first-child{margin-top:0}.popover .popover-inner p:last-child{margin-bottom:0}.plugin-support .counter-container{margin-bottom:1rem;position:relative}.plugin-support .counter-back,.plugin-support .counter-bar{display:inline-block;height:30px;vertical-align:middle}.plugin-support .counter-back{background-color:var(--wp--preset--color--light-grey-2);width:100%}.plugin-support .counter-bar{background-color:var(--wp--preset--color--acid-green-2);display:block}.plugin-support .counter-count{font-size:var(--wp--preset--font-size--extra-small);right:8px;position:absolute;top:8px;width:100%;width:calc(100% - 8px)}@media screen and (min-width:737px){.plugin-support .counter-count{top:5px}}.home .widget,.widget-area.home .widget{display:inline-block;font-size:var(--wp--preset--font-size--small);margin:0;margin:var(--wp--style--block-gap);vertical-align:top;width:auto}@media screen and (min-width:737px){.home .widget,.widget-area.home .widget{margin:0;width:30%}.home .widget:first-child,.widget-area.home .widget:first-child{margin-left:5%}.home .widget:last-child,.widget-area.home .widget:last-child{margin-right:5%}}.home .widget select,.widget-area.home .widget select{max-width:100%}.entry-meta .widget-title{font-size:var(--wp--preset--font-size--heading-4)}body.single.single-plugin .entry-meta{font-size:var(--wp--preset--font-size--normal)}.widget-area{margin:0 auto;padding:var(--wp--preset--spacing--40) 0}.widget-area .widget-title{font-size:var(--wp--preset--font-size--heading-1);font-weight:var(--wp--custom--heading--typography--font-weight);margin-top:var(--wp--preset--spacing--50)}.widget-area .textwidget{text-wrap:pretty} \ No newline at end of file +@charset "UTF-8";.avatar{border-radius:50%;vertical-align:middle}.wp-block-wporg-language-suggest>p{margin:0}.block-validator>details summary{padding:var(--wp--style--block-gap) 0}.block-validator .block-validator__plugin-form label{display:block;margin-bottom:.8em}.block-validator .block-validator__plugin-input-container{display:flex;max-width:34rem}.block-validator .block-validator__plugin-input{flex:1}.block-validator .block-validator__plugin-submit{flex:0;margin-right:4px}@media (max-width:36rem){.block-validator .block-validator__plugin-submit{width:100%}.block-validator .block-validator__plugin-input-container{display:block}.block-validator .block-validator__plugin-input{width:100%}.block-validator .block-validator__plugin-submit{margin-right:0;margin-top:var(--wp--style--block-gap)}}.block-validator .notice details,.block-validator .notice p{font-size:var(--wp--preset--font-size--normal);margin:var(--wp--style--block-gap) 0}.block-validator .notice details p{font-size:var(--wp--preset--font-size--small);margin-right:1rem}.block-validator .notice summary{display:list-item}.block-validator figure{border:1px solid #aaa;display:inline-block;padding:1em}.block-validator .test-screenshot{text-align:center}.block-validator .plugin-upload-form-controls{align-items:center;display:flex;gap:4px}.block-validator .plugin-upload-form-controls>label{border:1px solid var(--wp--custom--form--border--color);border-radius:var(--wp--custom--form--border--radius);cursor:pointer;min-width:200px;padding:4px 8px}.notice{background:#fff;border-right:4px solid #fff;box-shadow:0 1px 1px 0 #0000001a;font-size:var(--wp--preset--font-size--small);margin:var(--wp--style--block-gap) 0;padding:1px 12px}.notice p,.notice ul{margin:.5em 0;padding:2px}.notice pre{white-space:pre-wrap}.notice ul{list-style:none;margin:.5em}.notice.notice-alt{box-shadow:none}.notice.notice-large{padding:10px 20px}.notice.notice-success{border-right-color:#46b450}.notice.notice-success.notice-alt{background-color:#ecf7ed}.notice.notice-warning{border-right-color:#ffb900}.notice.notice-warning.notice-alt{background-color:#fff8e5}.notice.notice-error{border-right-color:#dc3232}.notice.notice-error.notice-alt{background-color:#fbeaea}.notice.notice-info{border-right-color:#00a0d2}.notice.notice-info.notice-alt{background-color:#e5f5fa}.notice.hidden{display:none}.plugin-upload-form.hidden{display:none}.plugin-upload-form fieldset{border:none;margin:0;padding:0}.plugin-upload-form legend{margin:1rem 0}.plugin-upload-form .category-checklist{list-style-type:none;margin:0 0 2rem}.plugin-upload-form .category-checklist li{float:right;padding:.5rem 0;width:50%}@media screen and (min-width:48em){.plugin-upload-form .category-checklist li{padding:0}.plugin-upload-form .category-checklist label{font-size:var(--wp--preset--font-size--small)}.plugin-upload-form label.button{line-height:1.8}}.plugin-upload-form .plugin-file{height:.1px;opacity:0;overflow:hidden;position:absolute;width:.1px;z-index:-1}.plugin-queue-message code{font-size:1em}.plugin-queue-message dialog.slug-change input[type=text]{font-family:monospace;font-size:1.2em;width:20em}:where(main) a:where(:not(.wp-element-button,.wp-block-wporg-link-wrapper)):focus,:where(main) button:where(:not([class*=wp-block-button])):focus{border-radius:2px;box-shadow:0 0 0 1.5px currentColor;outline:none}.wporg-filter-bar{--wporg--filter-bar--gap:20px;--wporg--filter-bar--color:#40464d;--wporg--filter-bar--active--background-color:var(--wp--custom--button--color--background);--wporg--filter-bar--focus--border-color:var(--wp--custom--button--focus--border--color);margin:var(--wp--style--block-gap) 0}.wporg-filter-bar .wporg-query-filter__toggle.is-active,.wporg-filter-bar .wporg-query-filter__toggle:active,.wporg-filter-bar .wporg-query-filter__toggle:focus{background-color:var(--wporg--filter-bar--active--background-color);color:var(--wp--custom--button--color--text)}.wporg-filter-bar .wporg-filter-bar__navigation{flex-grow:1;margin-bottom:var(--wporg--filter-bar--gap)}.wporg-filter-bar .wporg-filter-bar__navigation ul{display:inline-block;font-size:13px;line-height:1.538;list-style:none;margin:0;padding-right:0}.wporg-filter-bar .wporg-filter-bar__navigation ul li{display:inline-block}.wporg-filter-bar .wporg-filter-bar__navigation ul li+li{margin-right:8px}.wporg-filter-bar .wporg-filter-bar__navigation ul a{border-radius:2px;color:var(--wporg--filter-bar--color);display:block;padding:8px 12px;text-decoration:none}.wporg-filter-bar .wporg-filter-bar__navigation ul a:focus,.wporg-filter-bar .wporg-filter-bar__navigation ul a:hover{text-decoration:underline}.wporg-filter-bar .wporg-filter-bar__navigation ul a:focus-visible{box-shadow:none;outline:1.5px solid var(--wporg--filter-bar--focus--border-color);outline-offset:-.5px}.wporg-filter-bar .wporg-filter-bar__navigation ul a.is-active{background-color:var(--wporg--filter-bar--active--background-color);color:#fff}.wporg-filter-bar .wporg-filter-bar__navigation ul a.is-active:focus,.wporg-filter-bar .wporg-filter-bar__navigation ul a.is-active:hover{color:#fff}.wporg-filter-bar .wporg-filter-bar__navigation ul a.is-active:focus-visible{box-shadow:inset 0 0 0 1.5px #fff;outline:1.5px solid var(--wporg--filter-bar--focus--border-color);outline-offset:-.5px}@media screen and (min-width:737px){.wporg-filter-bar{align-items:center;display:flex;flex-wrap:wrap;gap:var(--wporg--filter-bar--gap);justify-content:space-between;width:100%}.wporg-filter-bar .wporg-filter-bar__navigation{margin-bottom:0}}.wp-block-search__inside-wrapper{background:var(--wp--preset--color--light-grey-2);border:none}.button-link{background:none;border:0;border-radius:0;box-shadow:none;cursor:pointer;margin:0;outline:none;padding:0}.button{background-color:var(--wp--custom--button--color--background);border:0;border-radius:var(--wp--custom--button--border--radius);color:var(--wp--custom--button--color--text);cursor:pointer;opacity:1;padding:calc(var(--wp--custom--button--small--spacing--padding--top) + var(--wp--custom--button--border--width)) calc(var(--wp--custom--button--small--spacing--padding--left) + var(--wp--custom--button--border--width)) calc(var(--wp--custom--button--small--spacing--padding--bottom) + var(--wp--custom--button--border--width)) calc(var(--wp--custom--button--small--spacing--padding--right) + var(--wp--custom--button--border--width));vertical-align:middle}.button.button-large{padding:calc(var(--wp--custom--button--spacing--padding--top) + var(--wp--custom--button--border--width)) calc(var(--wp--custom--button--spacing--padding--left) + var(--wp--custom--button--border--width)) calc(var(--wp--custom--button--spacing--padding--bottom) + var(--wp--custom--button--border--width)) calc(var(--wp--custom--button--spacing--padding--right) + var(--wp--custom--button--border--width))}input+button.button,select+button.button{margin-top:-3px}.button.disabled{cursor:not-allowed;opacity:.6}.wp-block-post-content a.button{text-decoration:none}.wp-block-button__link{width:auto}pre{background-color:#f7f7f7;border:1px solid var(--wp--preset--color--light-grey-1);overflow:scroll;padding:20px}code,pre{border-radius:2px}code{background:var(--wp--preset--color--light-grey-2);display:inline-block;line-height:var(--wp--custom--body--extra-small--typography--line-height);max-width:100%;padding-inline-end:3px;padding-inline-start:3px}dialog{border:0;box-shadow:-6px 6px 6px #0003;min-height:50%;min-width:30%}@media (min-width:1280px){dialog{max-width:55%}}dialog::backdrop{background:#000;opacity:.5}dialog .close{color:inherit;cursor:pointer;position:absolute;left:1em;text-decoration:none!important;top:1em}.plugin-card{display:flex;flex-direction:column;height:100%;justify-content:space-between}.plugin-card .entry{display:inline-block;vertical-align:top}.plugin-card .entry-title{display:block;display:-webkit-box;font-size:var(--wp--preset--font-size--heading-5);font-weight:500;line-height:1.3;margin-bottom:2px!important;max-height:2.6em;overflow:hidden;-webkit-line-clamp:2;-webkit-box-orient:vertical}.plugin-card .entry-title a{display:block;text-decoration:none}.plugin-card .entry-title a:focus{box-shadow:none}.plugin-card .entry-excerpt{clear:both;font-size:var(--wp--preset--font-size--small)}.plugin-card .entry-excerpt p{margin:0}.plugin-card footer{font-size:var(--wp--preset--font-size--small);margin-top:var(--wp--style--block-gap)}.plugin-card footer span{color:var(--wp--preset--color--charcoal-4);display:inline-block;line-height:var(--wp--preset--font-size--normal);overflow:hidden}.plugin-card footer span.plugin-author{width:100%}.plugin-card footer span.plugin-author span{color:var(--wp--preset--color--charcoal-1)}.plugin-card footer span.plugin-author path{fill:var(--wp--preset--color--charcoal-1)}.plugin-card footer span svg{height:24px;vertical-align:bottom;width:24px}.plugin-card footer span svg path{fill:var(--wp--preset--color--charcoal-4)}.plugin-card footer span.active-installs{min-width:48%}.plugin-cards{cursor:pointer}.plugin-cards .is-style-cards-grid li:hover{background-color:#fff!important;border:1px solid var(--wp--preset--color--charcoal-1)!important}.plugin-cards .is-style-cards-grid li:focus-within{border-color:#0000;border-radius:2px;box-shadow:0 0 0 1.5px var(--wp--custom--link--color--text)}@media screen and (max-width:737px){.plugin-cards .is-style-cards-grid{grid-template-columns:100%}}.entry-thumbnail{display:none;margin-bottom:var(--wp--style--block-gap);margin-left:var(--wp--style--block-gap);max-width:80px}.entry-thumbnail .plugin-icon{background-size:cover;border-radius:var(--wp--custom--button--border--radius);display:block;height:80px;width:80px}@media screen and (min-width:21em){.entry-thumbnail{display:inline-block;float:right;vertical-align:top}}.single .entry-thumbnail{display:none;float:right;height:96px;margin-bottom:0;max-width:96px}@media screen and (min-width:26em){.single .entry-thumbnail{display:block}}.single .entry-thumbnail .plugin-icon{background-size:contain!important;height:96px!important;width:96px!important}.plugin-rating{line-height:1;margin:0 0 8px 10px}.plugin-rating .wporg-ratings{display:inline-block;margin-left:5px}.plugin-rating .rating-count{color:var(--wp--preset--color--charcoal-4);font-size:var(--wp--preset--font-size--extra-small);vertical-align:text-bottom}.plugin-rating .rating-count a{color:inherit;cursor:hand;text-decoration:none}[class*=dashicons-star-]{color:var(--wp--preset--color--pomegrade-1)}.rtl .dashicons-star-half{transform:rotateY(-180deg)}#main .plugin-section{margin:0 auto var(--wp--preset--spacing--60)}#main .plugin-section:last-of-type{margin-bottom:0}#main .plugin-section .section-header{align-items:center;column-gap:10px;display:flex;justify-content:space-between;margin-bottom:var(--wp--style--block-gap)}#main .plugin-section .section-header>h2{margin-bottom:0}#main .plugin-section .section-link{align-self:center;flex:0 0 auto;text-decoration:underline}.pagination .nav-links{margin-top:var(--wp--style--block-gap);padding-top:var(--wp--style--block-gap);text-align:center}.pagination .nav-links a{text-decoration:none}.pagination .nav-links .page-numbers{cursor:pointer;display:inline-block;min-width:2em;padding:8px;text-align:center}.pagination .nav-links .page-numbers.dots,.pagination .nav-links .page-numbers.next,.pagination .nav-links .page-numbers.prev{background:none;font-size:.9em;width:auto}.pagination .nav-links .page-numbers.dots{cursor:inherit}@media screen and (max-width:737px){.pagination .nav-links .page-numbers.next,.pagination .nav-links .page-numbers.prev{font-size:0;min-width:auto;padding:0}.pagination .nav-links .page-numbers.next:after,.pagination .nav-links .page-numbers.prev:before{display:inline-block;font-size:medium;line-height:1.5;min-width:2em;padding:8px}.pagination .nav-links .page-numbers.prev:before{content:"‹"}.pagination .nav-links .page-numbers.next:after{content:"›"}}.pagination .nav-links span.page-numbers{font-weight:700}.pagination .nav-links span.page-numbers.current{text-decoration:underline}@keyframes favme-anime{0%{font-size:var(--wp--preset--font-size--large);opacity:1;-webkit-text-stroke-color:#0000}25%{color:#fff;font-size:var(--wp--preset--font-size--small);opacity:.6;-webkit-text-stroke-width:1px;-webkit-text-stroke-color:#dc3232}75%{color:#fff;font-size:var(--wp--preset--font-size--large);opacity:.6;-webkit-text-stroke-width:1px;-webkit-text-stroke-color:#dc3232}to{font-size:var(--wp--preset--font-size--normal);opacity:1;-webkit-text-stroke-color:#0000}}.plugin-favorite{height:calc(var(--wp--custom--button--spacing--padding--top)*2 + var(--wp--preset--font-size--normal)*2);text-align:center;vertical-align:top;width:36px}.plugin-favorite .plugin-favorite-heart{align-items:center;background:none;border:0;border-radius:0;box-shadow:none;color:#cbcdce;cursor:pointer;display:flex;font-size:var(--wp--preset--font-size--large);height:100%;justify-content:center;line-height:1;margin:0;outline:none;padding:0;text-decoration:none}.plugin-favorite .plugin-favorite-heart.favorited{color:#dc3232}.plugin-favorite .plugin-favorite-heart:focus,.plugin-favorite .plugin-favorite-heart:hover{color:var(----wp--preset--color--charcoal-2);text-decoration:none}.plugin-favorite .plugin-favorite-heart:after{content:"\f487";font-family:dashicons;vertical-align:top}.plugin-banner img{aspect-ratio:3.089;border-radius:var(--wp--custom--button--border--radius);display:block;margin:0 auto var(--wp--preset--spacing--30);width:100%}.plugin-releases{list-style-type:none;padding:0}.plugin-releases-item{border:1px solid var(--wp--preset--color--light-grey-1);border-radius:4px;margin-bottom:var(--wp--preset--spacing--30);padding:var(--wp--style--block-gap)}.plugin-releases-item-header{display:flex;justify-content:space-between}.plugin-releases-item-header h3{margin:0!important}@keyframes hideAnimation{to{visibility:hidden}}.categorization .help{color:var(--wp--preset--color--charcoal-4);display:inline-block;font-size:.8rem;margin-top:0}.categorization label{display:block;font-weight:700}.categorization input{width:100%}.categorization .success-msg{background:#eff7ed;border:solid #64b450;border-width:0 5px 0 0;font-size:.8rem;margin-right:1rem;opacity:0;overflow:auto;padding:.1rem .6rem .2rem;position:relative;transition:visibility 0s,opacity .5s linear;-webkit-user-select:none;user-select:none;visibility:hidden}.categorization .success-msg.saved{animation:hideAnimation 0s ease-in 5s;animation-fill-mode:forwards;opacity:1;visibility:visible}.plugin-changelog code{font-size:var(--wp--preset--font-size--small)}.plugin-developers .contributors-list li{align-items:center;display:flex;padding-bottom:var(--wp--style--block-gap)}@media screen and (min-width:500px){.plugin-developers .contributors-list{display:flex;flex-wrap:wrap}.plugin-developers .contributors-list li{padding-bottom:unset;width:50%}}.plugin-faq dl{border-bottom:1px solid var(--wp--preset--color--light-grey-1)}.plugin-faq dt{border-top:1px solid var(--wp--preset--color--light-grey-1);cursor:pointer;padding:1rem 0}.plugin-faq dt:before{content:"\f347";float:left;font-family:dashicons;margin:0 1rem}.plugin-faq dt.open:before{content:"\f343"}.plugin-faq dt .button-link{display:inherit;text-align:inherit}.plugin-faq dt .button-link.no-focus{box-shadow:none;outline:none}.plugin-faq dt h3{color:var(--wp--custom--link--color--text);display:inline;font-size:var(--wp--preset--font-size--normal);font-weight:400;margin-bottom:0;margin-top:0!important;text-decoration:underline}.plugin-faq dt h3 button{all:inherit;max-width:calc(100% - 60px)}.plugin-faq dt h3 button:focus,.plugin-faq dt h3 button:hover{text-decoration:underline}.plugin-faq dd{display:none;margin:0 0 1rem}.no-js .plugin-faq dd{display:block}.plugin-faq dd p{margin:0}.plugin-faq dd p+p{margin-top:1rem}.image-gallery{-webkit-user-select:none;user-select:none}.image-gallery-content{position:relative}.image-gallery-content .image-gallery-left-nav,.image-gallery-content .image-gallery-right-nav{border-color:var(--wp--preset--color--light-grey-1);display:none;font-size:48px;height:100%;position:absolute;top:0;transition:background .1s ease,border .1s ease;z-index:4}@media (max-width:768px){.image-gallery-content .image-gallery-left-nav,.image-gallery-content .image-gallery-right-nav{font-size:3.4em}}@media (min-width:768px){.image-gallery-content .image-gallery-left-nav:hover,.image-gallery-content .image-gallery-right-nav:hover{background:#fff;border:1px solid var(--wp--preset--color--light-grey-1);opacity:.8}}.image-gallery-content .image-gallery-left-nav:before,.image-gallery-content .image-gallery-right-nav:before{font-family:dashicons;position:relative}.image-gallery-content .image-gallery-left-nav{right:0}.image-gallery-content .image-gallery-left-nav:before{content:"\f345"}.image-gallery-content .image-gallery-left-nav:hover{margin-right:-1px}.image-gallery-content .image-gallery-right-nav{left:0}.image-gallery-content .image-gallery-right-nav:before{content:"\f341"}.image-gallery-content .image-gallery-right-nav:hover{margin-left:-1px}.image-gallery-content:hover .image-gallery-left-nav,.image-gallery-content:hover .image-gallery-right-nav{display:block}.image-gallery-slides{border:1px solid #eee;line-height:0;overflow:hidden;position:relative;white-space:nowrap}.image-gallery-slide{right:0;position:absolute;top:0;width:100%}.image-gallery-slide.center{position:relative}.image-gallery-slide .image-gallery-image{margin:0}.image-gallery-slide img{display:block;margin:0 auto}.image-gallery-slide .image-gallery-description{background:var(--wp--preset--color--light-grey-2);color:var(--wp--preset--color--charcoal-1);font-size:var(--wp--preset--font-size--small);line-height:1.5;padding:10px 20px;white-space:normal}@media (max-width:768px){.image-gallery-slide .image-gallery-description{padding:8px 15px}}.image-gallery-thumbnails{background:#fff;margin-top:5px}.image-gallery-thumbnails .image-gallery-thumbnails-container{cursor:pointer;text-align:center;white-space:nowrap}.image-gallery-thumbnail{border:1px solid #eee;display:table-cell;margin-left:5px;max-height:100px;overflow:hidden}.image-gallery-thumbnail .image-gallery-image{margin:0}.image-gallery-thumbnail img{vertical-align:middle;width:100px}@media (max-width:768px){.image-gallery-thumbnail img{width:75px}}.image-gallery-thumbnail:hover{box-shadow:0 1px 8px #0000004d}.image-gallery-thumbnail.active{border:1px solid #337ab7}.image-gallery-thumbnail-label{color:#222;font-size:1em}@media (max-width:768px){.image-gallery-thumbnail-label{font-size:.8em}}.image-gallery-index{background:#0006;bottom:0;color:#fff;line-height:1;padding:10px 20px;position:absolute;left:0;z-index:4}.plugin-reviews{list-style-type:none;margin:0;padding:0}.plugin-reviews .plugin-review{border-bottom:1px solid var(--wp--preset--color--light-grey-1);margin:2rem 0 1rem;padding-bottom:1rem}.plugin-reviews .plugin-review a{text-decoration:none}.plugin-reviews .plugin-review:first-child{margin-top:0}.plugin-reviews .plugin-review .header-top{display:flex}.plugin-reviews .plugin-review .header-top .wporg-ratings{flex-shrink:0}.plugin-reviews .plugin-review .header-bottom{display:flex;margin-top:4px}.plugin-reviews .review-avatar{display:none}.plugin-reviews .review,.plugin-reviews .review-author,.plugin-reviews .wporg-ratings{display:inline-block;vertical-align:top}.plugin-reviews .review-header{margin:0 0 .5rem}.plugin-reviews .review-title{font-size:var(--wp--preset--font-size--normal);font-weight:500;margin:2px 12px 0 0!important;text-transform:inherit}.plugin-reviews .review-author,.plugin-reviews .review-date,.plugin-reviews .review-replies{font-size:var(--wp--preset--font-size--extra-small);line-height:1.25}.plugin-reviews .review-date,.plugin-reviews .review-replies{color:var(--wp--preset--color--charcoal-4);font-size:var(--wp--preset--font-size--extra-small);margin-right:12px}.plugin-reviews .review-replies:before{content:"•";margin-left:12px}.plugin-reviews .review-content{margin:1em 0}@media screen and (min-width:737px){.plugin-reviews .review-avatar{display:inline-block;vertical-align:top}.plugin-reviews .review-avatar .avatar{margin-left:1rem}.plugin-reviews .review{width:calc(100% - 60px - 1rem)}.plugin-reviews .review-header{margin:0}.plugin-reviews .review-author,.plugin-reviews .review-date,.plugin-reviews .review-replies{line-height:1}}.plugin-reviews .reviews-link{display:inline-block;font-size:var(--wp--preset--font-size--small);text-decoration:none}.plugin-reviews .reviews-link:after{content:"\f341";float:left;font-family:dashicons;padding-right:5px;position:relative;top:1px;vertical-align:text-top}.plugin-screenshots{list-style-type:none;margin:0;padding:0}.plugin-screenshots .image-gallery-content{display:table;width:100%}.plugin-screenshots .image-gallery-slides{display:table-cell;max-height:600px}.plugin-screenshots .image-gallery-image img{max-height:550px;max-width:100%}.plugin-screenshots .image-gallery-thumbnail{vertical-align:top}.plugin-screenshots .image-gallery-thumbnail img{max-height:100px}.plugin-screenshots .image-gallery-thumbnails{overflow:hidden}.download-history-stats td{text-align:left}.previous-versions{max-width:60%}@media screen and (min-width:737px){.previous-versions{height:32px;vertical-align:middle}}hr{margin:2.5rem auto}.section h1:nth-child(2),.section h2:nth-child(2),.section h3:nth-child(2),.section h4:nth-child(2),.section h5:nth-child(2),.section h6:nth-child(2){margin-top:0}.section-heading{font-family:var(--wp--preset--font-family--inter)!important;font-size:var(--wp--preset--font-size--heading-5)!important;font-style:normal;font-weight:600;line-height:var(--wp--custom--heading--level-5--typography--line-height)}.section-intro{color:var(--wp--preset--color--charcoal-4);font-size:var(--wp--preset--font-size--small);margin-bottom:var(--wp--preset--spacing--20);margin-top:var(--wp--preset--spacing--10)}.wporg-spinner{--local-size:16px;--spinner-color:var(--wp--custom--spinner--color,var(--wp--preset--color--blueberry-1,currentColor));--background-stroke-color:#ddd;background-color:initial;display:inline-block;height:var(--local-size);position:relative;width:var(--local-size)}.wporg-spinner:before{border:1.5px solid var(--background-stroke-color);border-radius:50%}.wporg-spinner:after,.wporg-spinner:before{box-sizing:border-box;content:"";display:block;height:100%;width:100%}.wporg-spinner:after{animation:wporg-spinner-rotate 1.4s linear infinite;border-bottom:1.5px solid #0000;border-right:1.5px solid #0000;border-radius:50%;border-left:1.5px solid #0000;border-left-color:var(--spinner-color);border-top:1.5px solid #0000;border-top-color:var(--spinner-color);right:0;position:absolute;top:0;transform-origin:center}@keyframes wporg-spinner-rotate{0%{transform:rotate(0deg)}to{transform:rotate(-1turn)}}.type-plugin .plugin-notice{margin-top:0}.type-plugin .plugin-header{border-bottom:0;padding-top:var(--wp--preset--spacing--40)}.type-plugin .plugin-header:after,.type-plugin .plugin-header:before{content:"";display:table;table-layout:fixed}.type-plugin .plugin-header:after{clear:both}.type-plugin .plugin-header .entry-heading-container{display:flex;flex-direction:column;justify-content:space-between}@media screen and (max-width:599px){.type-plugin .plugin-header .entry-heading-container{--wp--custom--button--spacing--padding--top:12px;--wp--custom--button--spacing--padding--bottom:12px;--wp--custom--button--spacing--padding--left:16px;--wp--custom--button--spacing--padding--right:16px}}@media screen and (min-width:700px){.type-plugin .plugin-header .entry-heading-container{flex-direction:row}}.type-plugin .plugin-header .entry-heading-container>:first-child{align-items:center;display:flex;flex:1}.type-plugin .plugin-header .plugin-actions{align-items:center;display:flex;gap:16px;margin-top:var(--wp--style--block-gap)}@media screen and (min-width:700px){.type-plugin .plugin-header .plugin-actions{margin-top:0;margin-inline-start:1rem}}.type-plugin .plugin-header .plugin-actions>.button,.type-plugin .plugin-header .plugin-actions>div{display:inline-block;text-align:center}@media screen and (max-width:34em){.type-plugin .plugin-header .plugin-actions>.button.download-button{display:none}}.type-plugin .plugin-header .plugin-title{clear:none;font-size:var(--wp--preset--font-size--heading-3);font-weight:400;line-height:var(--wp--custom--heading--level-3--typography--line-height);margin:0}.type-plugin .plugin-header .plugin-title a{color:inherit;text-decoration:none}.type-plugin .plugin-header .plugin-title a:hover{text-decoration:underline}.type-plugin .plugin-header .byline{color:var(--wp--preset--color--charcoal-4);display:block;margin-top:4px}.type-plugin .plugin-banner+.plugin-header{padding-top:0}.type-plugin .plugin-banner+.plugin-header>.notice:first-of-type{margin-top:0}.type-plugin .tabs{border-bottom:1px solid var(--wp--preset--color--light-grey-1);list-style:none;margin:0}.type-plugin .tabs li{border:1px solid #0000;display:inline-block;font-size:.9rem;margin-bottom:-1px;transition:background .2s ease}.type-plugin .tabs li a{background:#fff;border:0;color:var(--wp--preset--color--charcoal-1);display:block;font-size:var(--wp--preset--font-size--normal);padding:.64rem 1.25rem;text-decoration:none}.type-plugin .tabs li a.active,.type-plugin .tabs li a:hover{background:var(--wp--preset--color--light-grey-2)!important}.type-plugin .tabs li.active,.type-plugin .tabs li:hover{border:1px solid var(--wp--preset--color--light-grey-1)}@media screen and (max-width:38em){.type-plugin .tabs{border-top:1px solid var(--wp--preset--color--light-grey-1)}.type-plugin .tabs li{display:block;margin-bottom:1px}.type-plugin .tabs li,.type-plugin .tabs li.active,.type-plugin .tabs li:hover{border:none;border-bottom:1px solid var(--wp--preset--color--light-grey-1)}}@media screen and (min-width:737px){.type-plugin .entry-content{float:right;padding:0;width:65%}}.type-plugin .entry-content>div,.type-plugin .entry-content>div~button{border:0;display:none}.type-plugin .entry-content ol>li>p,.type-plugin .entry-content ul>li>p{margin:0}.type-plugin .entry-content #admin{display:block!important}.type-plugin .plugin-blocks-list{list-style:none;margin-right:0;padding-right:0}.type-plugin .plugin-blocks-list .plugin-blocks-list-item{display:grid;grid-template-columns:auto 1fr;margin-bottom:var(--wp--style--block-gap)}.type-plugin .plugin-blocks-list .block-icon{border:1px solid var(--wp--preset--color--light-grey-1);border-radius:2px;display:inline-block;height:3.5rem;line-height:16px;margin-left:var(--wp--style--block-gap);padding:var(--wp--style--block-gap);width:3.5rem}.type-plugin .plugin-blocks-list .block-icon.dashicons{color:inherit}.type-plugin .plugin-blocks-list .block-icon.dashicons:before{margin-right:-3px}.type-plugin .plugin-blocks-list .block-icon svg{height:16px;width:16px;fill:currentColor;margin-right:-1px}.type-plugin .plugin-blocks-list .block-title{align-self:center;font-weight:700}.type-plugin .plugin-blocks-list .has-description .block-icon{grid-row:1/span 2}.type-plugin .plugin-blocks-list .has-description .block-title{margin-bottom:.4em}.type-plugin span#description,.type-plugin span#developers,.type-plugin span#installation,.type-plugin span#releases,.type-plugin span#reviews{position:fixed}.type-plugin span#advanced.displayed~#section-links .tabs li#tablink-advanced,.type-plugin span#developers:target~#section-links .tabs li#tablink-developers,.type-plugin span#installation:target~#section-links .tabs li#tablink-installation,.type-plugin span#releases:target~#section-links .tabs li#tablink-releases,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~span#advanced:not(.displayed)~#section-links .tabs li#tablink-description,.type-plugin span#reviews:target~#section-links .tabs li#tablink-reviews{background:#fff;border:1px solid var(--wp--preset--color--light-grey-1);border-bottom:0;padding-bottom:1px}@media screen and (max-width:38em){.type-plugin span#advanced.displayed~#section-links .tabs li#tablink-advanced.active,.type-plugin span#advanced.displayed~#section-links .tabs li#tablink-advanced:hover,.type-plugin span#developers:target~#section-links .tabs li#tablink-developers.active,.type-plugin span#developers:target~#section-links .tabs li#tablink-developers:hover,.type-plugin span#installation:target~#section-links .tabs li#tablink-installation.active,.type-plugin span#installation:target~#section-links .tabs li#tablink-installation:hover,.type-plugin span#releases:target~#section-links .tabs li#tablink-releases.active,.type-plugin span#releases:target~#section-links .tabs li#tablink-releases:hover,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~span#advanced:not(.displayed)~#section-links .tabs li#tablink-description.active,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~span#advanced:not(.displayed)~#section-links .tabs li#tablink-description:hover,.type-plugin span#reviews:target~#section-links .tabs li#tablink-reviews.active,.type-plugin span#reviews:target~#section-links .tabs li#tablink-reviews:hover{padding-bottom:1px!important}}.type-plugin span#section-links{display:flex;flex-flow:row wrap;margin-top:var(--wp--preset--spacing--30)}.type-plugin span#section-links .tabs{flex:1 1 auto;padding-right:0}@media screen and (max-width:38em){.type-plugin span#section-links .tabs{border:1px solid var(--wp--preset--color--light-grey-1)!important}.type-plugin span#section-links .tabs li{border:none!important}.type-plugin span#section-links{display:block}}.type-plugin #link-support{align-self:flex-end;border-bottom:1px solid var(--wp--preset--color--light-grey-1);flex:0 0 auto;font-size:.9rem}.type-plugin #link-support a{display:inline-block;font-size:var(--wp--preset--font-size--normal);padding:.64rem 1.25rem .64rem 0}@media screen and (max-width:38em){.type-plugin #link-support{border-bottom:0;display:block;width:100%}.type-plugin #link-support a{padding-left:1.25rem}}.type-plugin span#developers:target~.entry-content #tab-changelog,.type-plugin span#developers:target~.entry-content #tab-developers,.type-plugin span#developers:target~.entry-content #tab-developers .plugin-development,.type-plugin span#developers:target~.entry-content #tab-developers~button,.type-plugin span#installation:target~.entry-content #tab-installation,.type-plugin span#releases:target~.entry-content #tab-releases,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~.entry-content #blocks,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~.entry-content #faq,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~.entry-content #screenshots,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~.entry-content #tab-description,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~.entry-content #tab-developers,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~.entry-content #tab-developers~button,.type-plugin span#reviews:target~.entry-content #tab-reviews{display:block}.type-plugin span#developers:target~.entry-content #tab-developers .plugin-contributors,.type-plugin span#installation:target~.entry-meta .plugin-contributors,.type-plugin span#releases:target~.entry-meta,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~.entry-content #tab-developers .plugin-development,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~.entry-meta .plugin-contributors,.type-plugin span#reviews:target~.entry-meta .plugin-contributors,.type-plugin span#reviews:target~.entry-meta .plugin-donate,.type-plugin span#reviews:target~.entry-meta .plugin-meta,.type-plugin span#reviews:target~.entry-meta .plugin-support{display:none}.type-plugin span#releases:target~.entry-content{width:100%}@media screen and (min-width:737px){.type-plugin .entry-content,.type-plugin .entry-meta{padding-right:0;padding-left:0}.type-plugin .entry-meta{float:left;width:30%}}.type-plugin .plugin-danger-zone h4{margin-top:var(--wp--preset--spacing--60)}.plugin-releases-listing{border-collapse:collapse;width:100%}.plugin-releases-listing tbody td:nth-child(4) div{font-size:14px}.plugin-releases-listing-actions{display:flex;flex-direction:column;gap:8px}@media screen and (min-width:34em){.plugin-releases-listing-actions{flex-direction:row}}.plugin-adopt-me{background:#e6f4fa;margin-top:36px;padding:12px}.plugin-adopt-me .widget-title{margin-top:0}.plugin-adopt-me p{margin-bottom:0}.widget.plugin-categorization{margin-top:var(--wp--style--block-gap)}.widget.plugin-categorization .widget-head h2{font-size:var(--wp--preset--font-size--heading-4);margin-bottom:.2rem;margin-top:0}.widget.plugin-categorization .widget-head a{font-size:var(--wp--preset--font-size--small)}.widget.plugin-categorization .widget-head a[href=""]{display:none}.widget.plugin-categorization p{font-size:var(--wp--preset--font-size--small);margin-top:.5rem}.widget.plugin-categorization~.plugin-meta li:first-child{border-top:1px solid var(--wp--preset--color--light-grey-1)}.committer-list,.support-rep-list{list-style:none;margin:0;padding:0}.committer-list li,.support-rep-list li{padding-bottom:.5rem}.committer-list li .remove,.support-rep-list li .remove{color:red;visibility:hidden}.committer-list li:hover .remove,.support-rep-list li:hover .remove{visibility:visible}.committer-list .avatar,.support-rep-list .avatar{float:right;margin-left:10px}.committer-list .spinner,.support-rep-list .spinner{position:relative}.committer-list .spinner:after,.support-rep-list .spinner:after{background:url(/wp-admin/images/spinner.gif) no-repeat 50%;background-size:20px 20px;content:"";display:block;height:20px;margin:-10px 0 0 -10px;position:absolute;left:-50%;top:50%;transform:translateZ(0);width:20px}@media (min-resolution:120dpi),print{.committer-list .spinner:after,.support-rep-list .spinner:after{background-image:url(/wp-admin/images/spinner-2x.gif)}}.committer-list .new,.support-rep-list .new{margin-top:var(--wp--style--block-gap)}.plugin-contributors.read-more{border-bottom:1px solid var(--wp--preset--color--light-grey-1);max-height:200px;overflow:hidden;padding-bottom:1px}.plugin-contributors.read-more.toggled{max-height:none}.no-js .plugin-contributors.read-more{max-height:none;overflow:auto}.contributors-list{list-style-type:none;margin:0;padding:0}.contributors-list li{align-items:center;display:flex;margin-bottom:1rem}.contributors-list .avatar{float:right;margin-left:10px}.plugin-meta{font-size:var(--wp--preset--font-size--small);margin-top:var(--wp--style--block-gap)}.plugin-meta ul{list-style-type:none;margin:0;padding:0}.plugin-meta li{border-top:1px solid var(--wp--preset--color--light-grey-1);display:inline-block;padding:.5rem 0;position:relative;width:100%}.plugin-meta li strong{float:left;font-weight:500}.plugin-meta li .plugin-admin{font-size:var(--wp--preset--font-size--normal);font-weight:400}.plugin-meta li:first-child{border-top:0}.plugin-meta .languages,.plugin-meta .tags{float:left;text-align:left}.plugin-meta .tags{width:60%}.plugin-meta .languages button{font-size:var(--wp--preset--font-size--small);outline:revert}.plugin-meta .languages .popover{margin-top:8px}.plugin-meta .languages .popover-trigger{color:var(--wp--custom--link--color--text);text-decoration:underline}.plugin-meta .languages .popover-trigger:hover{text-decoration:underline}.plugin-meta [rel=tag]{background:var(--wp--preset--color--blueberry-4);border-radius:2px;color:var(--wp--preset--color--charcoal-1);display:inline-block;font-size:var(--wp--preset--font-size--extra-small);margin:2px;max-width:95%;overflow:hidden;padding:3px 6px;position:relative;text-decoration:none;text-overflow:ellipsis;white-space:nowrap;width:auto}.plugin-meta [rel=tag]:hover{text-decoration:underline}.popover{background-color:#fff;border:1px solid var(--wp--preset--color--light-grey-1);border-radius:2px;box-shadow:0 2px 10px #0000001a;display:none;right:0;margin-top:10px;max-width:300px;padding:1em 1em 2em;position:absolute;width:100%;z-index:100}.popover.is-top-right{right:auto;left:0}.popover.is-visible{display:block}.popover .popover-close{bottom:.5em;color:var(--wp--custom--link--color--text);font-size:small;position:absolute;left:.6em}.popover .popover-close:active,.popover .popover-close:focus,.popover .popover-close:hover{text-decoration:underline}.popover .popover-arrow{border:10px solid #0000;border-bottom:10px solid #ccc;border-top:none;height:0;position:absolute;left:20px;top:-10px;width:0;z-index:-1}.popover .popover-arrow:after{border:10px solid #0000;border-bottom:10px solid #fff;border-top:none;content:"";right:-10px;position:absolute;top:2px}.popover .popover-inner{text-align:right}.popover .popover-inner p:first-child{margin-top:0}.popover .popover-inner p:last-child{margin-bottom:0}.plugin-support .counter-container{margin-bottom:1rem;position:relative}.plugin-support .counter-back,.plugin-support .counter-bar{display:inline-block;height:30px;vertical-align:middle}.plugin-support .counter-back{background-color:var(--wp--preset--color--light-grey-2);width:100%}.plugin-support .counter-bar{background-color:var(--wp--preset--color--acid-green-2);display:block}.plugin-support .counter-count{font-size:var(--wp--preset--font-size--extra-small);right:8px;position:absolute;top:8px;width:100%;width:calc(100% - 8px)}@media screen and (min-width:737px){.plugin-support .counter-count{top:5px}}.home .widget,.widget-area.home .widget{display:inline-block;font-size:var(--wp--preset--font-size--small);margin:0;margin:var(--wp--style--block-gap);vertical-align:top;width:auto}@media screen and (min-width:737px){.home .widget,.widget-area.home .widget{margin:0;width:30%}.home .widget:first-child,.widget-area.home .widget:first-child{margin-left:5%}.home .widget:last-child,.widget-area.home .widget:last-child{margin-right:5%}}.home .widget select,.widget-area.home .widget select{max-width:100%}.entry-meta .widget-title{font-size:var(--wp--preset--font-size--heading-4)}body.single.single-plugin .entry-meta{font-size:var(--wp--preset--font-size--normal)}.widget-area{margin:0 auto;padding:var(--wp--preset--spacing--40) 0}.widget-area .widget-title{font-size:var(--wp--preset--font-size--heading-1);font-weight:var(--wp--custom--heading--typography--font-weight);margin-top:var(--wp--preset--spacing--50)}.widget-area .textwidget{text-wrap:pretty} \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/css/style.css b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/css/style.css index aa1a3e38af..e64b07ef20 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/css/style.css +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/css/style.css @@ -1 +1 @@ -@charset "UTF-8";.avatar{border-radius:50%;vertical-align:middle}.wp-block-wporg-language-suggest>p{margin:0}.block-validator>details summary{padding:var(--wp--style--block-gap) 0}.block-validator .block-validator__plugin-form label{display:block;margin-bottom:.8em}.block-validator .block-validator__plugin-input-container{display:flex;max-width:34rem}.block-validator .block-validator__plugin-input{flex:1}.block-validator .block-validator__plugin-submit{flex:0;margin-left:4px}@media (max-width:36rem){.block-validator .block-validator__plugin-submit{width:100%}.block-validator .block-validator__plugin-input-container{display:block}.block-validator .block-validator__plugin-input{width:100%}.block-validator .block-validator__plugin-submit{margin-left:0;margin-top:var(--wp--style--block-gap)}}.block-validator .notice details,.block-validator .notice p{font-size:var(--wp--preset--font-size--normal);margin:var(--wp--style--block-gap) 0}.block-validator .notice details p{font-size:var(--wp--preset--font-size--small);margin-left:1rem}.block-validator .notice summary{display:list-item}.block-validator figure{border:1px solid #aaa;display:inline-block;padding:1em}.block-validator .test-screenshot{text-align:center}.block-validator .plugin-upload-form-controls{align-items:center;display:flex;gap:4px}.block-validator .plugin-upload-form-controls>label{border:1px solid var(--wp--custom--form--border--color);border-radius:var(--wp--custom--form--border--radius);cursor:pointer;min-width:200px;padding:4px 8px}.notice{background:#fff;border-left:4px solid #fff;box-shadow:0 1px 1px 0 #0000001a;font-size:var(--wp--preset--font-size--small);margin:var(--wp--style--block-gap) 0;padding:1px 12px}.notice p,.notice ul{margin:.5em 0;padding:2px}.notice pre{white-space:pre-wrap}.notice ul{list-style:none;margin:.5em}.notice.notice-alt{box-shadow:none}.notice.notice-large{padding:10px 20px}.notice.notice-success{border-left-color:#46b450}.notice.notice-success.notice-alt{background-color:#ecf7ed}.notice.notice-warning{border-left-color:#ffb900}.notice.notice-warning.notice-alt{background-color:#fff8e5}.notice.notice-error{border-left-color:#dc3232}.notice.notice-error.notice-alt{background-color:#fbeaea}.notice.notice-info{border-left-color:#00a0d2}.notice.notice-info.notice-alt{background-color:#e5f5fa}.notice.hidden{display:none}.plugin-upload-form.hidden{display:none}.plugin-upload-form fieldset{border:none;margin:0;padding:0}.plugin-upload-form legend{margin:1rem 0}.plugin-upload-form .category-checklist{list-style-type:none;margin:0 0 2rem}.plugin-upload-form .category-checklist li{float:left;padding:.5rem 0;width:50%}@media screen and (min-width:48em){.plugin-upload-form .category-checklist li{padding:0}.plugin-upload-form .category-checklist label{font-size:var(--wp--preset--font-size--small)}.plugin-upload-form label.button{line-height:1.8}}.plugin-upload-form .plugin-file{height:.1px;opacity:0;overflow:hidden;position:absolute;width:.1px;z-index:-1}.plugin-queue-message code{font-size:1em}.plugin-queue-message dialog.slug-change input[type=text]{font-family:monospace;font-size:1.2em;width:20em}:where(main) a:where(:not(.wp-element-button,.wp-block-wporg-link-wrapper)):focus,:where(main) button:where(:not([class*=wp-block-button])):focus{border-radius:2px;box-shadow:0 0 0 1.5px currentColor;outline:none}.wporg-filter-bar{--wporg--filter-bar--gap:20px;--wporg--filter-bar--color:#40464d;--wporg--filter-bar--active--background-color:var(--wp--custom--button--color--background);--wporg--filter-bar--focus--border-color:var(--wp--custom--button--focus--border--color);margin:var(--wp--style--block-gap) 0}.wporg-filter-bar .wporg-query-filter__toggle.is-active,.wporg-filter-bar .wporg-query-filter__toggle:active,.wporg-filter-bar .wporg-query-filter__toggle:focus{background-color:var(--wporg--filter-bar--active--background-color);color:var(--wp--custom--button--color--text)}.wporg-filter-bar .wporg-filter-bar__navigation{flex-grow:1;margin-bottom:var(--wporg--filter-bar--gap)}.wporg-filter-bar .wporg-filter-bar__navigation ul{display:inline-block;font-size:13px;line-height:1.538;list-style:none;margin:0;padding-left:0}.wporg-filter-bar .wporg-filter-bar__navigation ul li{display:inline-block}.wporg-filter-bar .wporg-filter-bar__navigation ul li+li{margin-left:8px}.wporg-filter-bar .wporg-filter-bar__navigation ul a{border-radius:2px;color:var(--wporg--filter-bar--color);display:block;padding:8px 12px;text-decoration:none}.wporg-filter-bar .wporg-filter-bar__navigation ul a:focus,.wporg-filter-bar .wporg-filter-bar__navigation ul a:hover{text-decoration:underline}.wporg-filter-bar .wporg-filter-bar__navigation ul a:focus-visible{box-shadow:none;outline:1.5px solid var(--wporg--filter-bar--focus--border-color);outline-offset:-.5px}.wporg-filter-bar .wporg-filter-bar__navigation ul a.is-active{background-color:var(--wporg--filter-bar--active--background-color);color:#fff}.wporg-filter-bar .wporg-filter-bar__navigation ul a.is-active:focus,.wporg-filter-bar .wporg-filter-bar__navigation ul a.is-active:hover{color:#fff}.wporg-filter-bar .wporg-filter-bar__navigation ul a.is-active:focus-visible{box-shadow:inset 0 0 0 1.5px #fff;outline:1.5px solid var(--wporg--filter-bar--focus--border-color);outline-offset:-.5px}@media screen and (min-width:737px){.wporg-filter-bar{align-items:center;display:flex;flex-wrap:wrap;gap:var(--wporg--filter-bar--gap);justify-content:space-between;width:100%}.wporg-filter-bar .wporg-filter-bar__navigation{margin-bottom:0}}.wp-block-search__inside-wrapper{background:var(--wp--preset--color--light-grey-2);border:none}.button-link{background:none;border:0;border-radius:0;box-shadow:none;cursor:pointer;margin:0;outline:none;padding:0}.button{background-color:var(--wp--custom--button--color--background);border:0;border-radius:var(--wp--custom--button--border--radius);color:var(--wp--custom--button--color--text);cursor:pointer;opacity:1;padding:calc(var(--wp--custom--button--small--spacing--padding--top) + var(--wp--custom--button--border--width)) calc(var(--wp--custom--button--small--spacing--padding--right) + var(--wp--custom--button--border--width)) calc(var(--wp--custom--button--small--spacing--padding--bottom) + var(--wp--custom--button--border--width)) calc(var(--wp--custom--button--small--spacing--padding--left) + var(--wp--custom--button--border--width));vertical-align:middle}.button.button-large{padding:calc(var(--wp--custom--button--spacing--padding--top) + var(--wp--custom--button--border--width)) calc(var(--wp--custom--button--spacing--padding--right) + var(--wp--custom--button--border--width)) calc(var(--wp--custom--button--spacing--padding--bottom) + var(--wp--custom--button--border--width)) calc(var(--wp--custom--button--spacing--padding--left) + var(--wp--custom--button--border--width))}input+button.button,select+button.button{margin-top:-3px}.button.disabled{cursor:not-allowed;opacity:.6}.wp-block-post-content a.button{text-decoration:none}.wp-block-button__link{width:auto}pre{background-color:#f7f7f7;border:1px solid var(--wp--preset--color--light-grey-1);overflow:scroll;padding:20px}code,pre{border-radius:2px}code{background:var(--wp--preset--color--light-grey-2);display:inline-block;line-height:var(--wp--custom--body--extra-small--typography--line-height);max-width:100%;padding-inline-end:3px;padding-inline-start:3px}dialog{border:0;box-shadow:6px 6px 6px #0003;min-height:50%;min-width:30%}@media (min-width:1280px){dialog{max-width:55%}}dialog::backdrop{background:#000;opacity:.5}dialog .close{color:inherit;cursor:pointer;position:absolute;right:1em;text-decoration:none!important;top:1em}.plugin-card{display:flex;flex-direction:column;height:100%;justify-content:space-between}.plugin-card .entry{display:inline-block;vertical-align:top}.plugin-card .entry-title{display:block;display:-webkit-box;font-size:var(--wp--preset--font-size--heading-5);font-weight:500;line-height:1.3;margin-bottom:2px!important;max-height:2.6em;overflow:hidden;-webkit-line-clamp:2;-webkit-box-orient:vertical}.plugin-card .entry-title a{display:block;text-decoration:none}.plugin-card .entry-title a:focus{box-shadow:none}.plugin-card .entry-excerpt{clear:both;font-size:var(--wp--preset--font-size--small)}.plugin-card .entry-excerpt p{margin:0}.plugin-card footer{font-size:var(--wp--preset--font-size--small);margin-top:var(--wp--style--block-gap)}.plugin-card footer span{color:var(--wp--preset--color--charcoal-4);display:inline-block;line-height:var(--wp--preset--font-size--normal);overflow:hidden}.plugin-card footer span.plugin-author{width:100%}.plugin-card footer span.plugin-author span{color:var(--wp--preset--color--charcoal-1)}.plugin-card footer span.plugin-author path{fill:var(--wp--preset--color--charcoal-1)}.plugin-card footer span svg{height:24px;vertical-align:bottom;width:24px}.plugin-card footer span svg path{fill:var(--wp--preset--color--charcoal-4)}.plugin-card footer span.active-installs{min-width:48%}.plugin-cards{cursor:pointer}.plugin-cards .is-style-cards-grid li:hover{background-color:#fff!important;border:1px solid var(--wp--preset--color--charcoal-1)!important}.plugin-cards .is-style-cards-grid li:focus-within{border-color:#0000;border-radius:2px;box-shadow:0 0 0 1.5px var(--wp--custom--link--color--text)}@media screen and (max-width:737px){.plugin-cards .is-style-cards-grid{grid-template-columns:100%}}.entry-thumbnail{display:none;margin-bottom:var(--wp--style--block-gap);margin-right:var(--wp--style--block-gap);max-width:80px}.entry-thumbnail .plugin-icon{background-size:cover;border-radius:var(--wp--custom--button--border--radius);display:block;height:80px;width:80px}@media screen and (min-width:21em){.entry-thumbnail{display:inline-block;float:left;vertical-align:top}}.single .entry-thumbnail{display:none;float:left;height:96px;margin-bottom:0;max-width:96px}@media screen and (min-width:26em){.single .entry-thumbnail{display:block}}.single .entry-thumbnail .plugin-icon{background-size:contain!important;height:96px!important;width:96px!important}.plugin-rating{line-height:1;margin:0 10px 8px 0}.plugin-rating .wporg-ratings{display:inline-block;margin-right:5px}.plugin-rating .rating-count{color:var(--wp--preset--color--charcoal-4);font-size:var(--wp--preset--font-size--extra-small);vertical-align:text-bottom}.plugin-rating .rating-count a{color:inherit;cursor:hand;text-decoration:none}[class*=dashicons-star-]{color:var(--wp--preset--color--pomegrade-1)}.rtl .dashicons-star-half{transform:rotateY(180deg)}#main .plugin-section{margin:0 auto var(--wp--preset--spacing--60)}#main .plugin-section:last-of-type{margin-bottom:0}#main .plugin-section .section-header{align-items:center;column-gap:10px;display:flex;justify-content:space-between;margin-bottom:var(--wp--style--block-gap)}#main .plugin-section .section-header>h2{margin-bottom:0}#main .plugin-section .section-link{align-self:center;flex:0 0 auto;text-decoration:underline}.pagination .nav-links{margin-top:var(--wp--style--block-gap);padding-top:var(--wp--style--block-gap);text-align:center}.pagination .nav-links a{text-decoration:none}.pagination .nav-links .page-numbers{cursor:pointer;display:inline-block;min-width:2em;padding:8px;text-align:center}.pagination .nav-links .page-numbers.dots,.pagination .nav-links .page-numbers.next,.pagination .nav-links .page-numbers.prev{background:none;font-size:.9em;width:auto}.pagination .nav-links .page-numbers.dots{cursor:inherit}@media screen and (max-width:737px){.pagination .nav-links .page-numbers.next,.pagination .nav-links .page-numbers.prev{font-size:0;min-width:auto;padding:0}.pagination .nav-links .page-numbers.next:after,.pagination .nav-links .page-numbers.prev:before{display:inline-block;font-size:medium;line-height:1.5;min-width:2em;padding:8px}.pagination .nav-links .page-numbers.prev:before{content:"‹"}.pagination .nav-links .page-numbers.next:after{content:"›"}}.pagination .nav-links span.page-numbers{font-weight:700}.pagination .nav-links span.page-numbers.current{text-decoration:underline}@keyframes favme-anime{0%{font-size:var(--wp--preset--font-size--large);opacity:1;-webkit-text-stroke-color:#0000}25%{color:#fff;font-size:var(--wp--preset--font-size--small);opacity:.6;-webkit-text-stroke-width:1px;-webkit-text-stroke-color:#dc3232}75%{color:#fff;font-size:var(--wp--preset--font-size--large);opacity:.6;-webkit-text-stroke-width:1px;-webkit-text-stroke-color:#dc3232}to{font-size:var(--wp--preset--font-size--normal);opacity:1;-webkit-text-stroke-color:#0000}}.plugin-favorite{height:calc(var(--wp--custom--button--spacing--padding--top)*2 + var(--wp--preset--font-size--normal)*2);text-align:center;vertical-align:top;width:36px}.plugin-favorite .plugin-favorite-heart{align-items:center;background:none;border:0;border-radius:0;box-shadow:none;color:#cbcdce;cursor:pointer;display:flex;font-size:var(--wp--preset--font-size--large);height:100%;justify-content:center;line-height:1;margin:0;outline:none;padding:0;text-decoration:none}.plugin-favorite .plugin-favorite-heart.favorited{color:#dc3232}.plugin-favorite .plugin-favorite-heart:focus,.plugin-favorite .plugin-favorite-heart:hover{color:var(----wp--preset--color--charcoal-2);text-decoration:none}.plugin-favorite .plugin-favorite-heart:after{content:"\f487";font-family:dashicons;vertical-align:top}.plugin-banner img{aspect-ratio:3.089;border-radius:var(--wp--custom--button--border--radius);display:block;margin:0 auto var(--wp--preset--spacing--30);width:100%}.plugin-releases{list-style-type:none;padding:0}.plugin-releases-item{border:1px solid var(--wp--preset--color--light-grey-1);border-radius:4px;margin-bottom:var(--wp--preset--spacing--30);padding:var(--wp--style--block-gap)}.plugin-releases-item-header{display:flex;justify-content:space-between}.plugin-releases-item-header h3{margin:0!important}@keyframes hideAnimation{to{visibility:hidden}}.categorization .help{color:var(--wp--preset--color--charcoal-4);display:inline-block;font-size:.8rem;margin-top:0}.categorization label{display:block;font-weight:700}.categorization input{width:100%}.categorization .success-msg{background:#eff7ed;border:solid #64b450;border-width:0 0 0 5px;font-size:.8rem;margin-left:1rem;opacity:0;overflow:auto;padding:.1rem .6rem .2rem;position:relative;transition:visibility 0s,opacity .5s linear;-webkit-user-select:none;user-select:none;visibility:hidden}.categorization .success-msg.saved{animation:hideAnimation 0s ease-in 5s;animation-fill-mode:forwards;opacity:1;visibility:visible}.plugin-changelog code{font-size:var(--wp--preset--font-size--small)}.plugin-developers .contributors-list li{align-items:center;display:flex;padding-bottom:var(--wp--style--block-gap)}@media screen and (min-width:500px){.plugin-developers .contributors-list{display:flex;flex-wrap:wrap}.plugin-developers .contributors-list li{padding-bottom:unset;width:50%}}.plugin-faq dl{border-bottom:1px solid var(--wp--preset--color--light-grey-1)}.plugin-faq dt{border-top:1px solid var(--wp--preset--color--light-grey-1);cursor:pointer;padding:1rem 0}.plugin-faq dt:before{content:"\f347";float:right;font-family:dashicons;margin:0 1rem}.plugin-faq dt.open:before{content:"\f343"}.plugin-faq dt .button-link{display:inherit;text-align:inherit}.plugin-faq dt .button-link.no-focus{box-shadow:none;outline:none}.plugin-faq dt h3{color:var(--wp--custom--link--color--text);display:inline;font-size:var(--wp--preset--font-size--normal);font-weight:400;margin-bottom:0;margin-top:0!important;text-decoration:underline}.plugin-faq dt h3 button{all:inherit;max-width:calc(100% - 60px)}.plugin-faq dt h3 button:focus,.plugin-faq dt h3 button:hover{text-decoration:underline}.plugin-faq dd{display:none;margin:0 0 1rem}.no-js .plugin-faq dd{display:block}.plugin-faq dd p{margin:0}.plugin-faq dd p+p{margin-top:1rem}.image-gallery{-webkit-user-select:none;user-select:none}.image-gallery-content{position:relative}.image-gallery-content .image-gallery-left-nav,.image-gallery-content .image-gallery-right-nav{border-color:var(--wp--preset--color--light-grey-1);display:none;font-size:48px;height:100%;position:absolute;top:0;transition:background .1s ease,border .1s ease;z-index:4}@media (max-width:768px){.image-gallery-content .image-gallery-left-nav,.image-gallery-content .image-gallery-right-nav{font-size:3.4em}}@media (min-width:768px){.image-gallery-content .image-gallery-left-nav:hover,.image-gallery-content .image-gallery-right-nav:hover{background:#fff;border:1px solid var(--wp--preset--color--light-grey-1);opacity:.8}}.image-gallery-content .image-gallery-left-nav:before,.image-gallery-content .image-gallery-right-nav:before{font-family:dashicons;position:relative}.image-gallery-content .image-gallery-left-nav{left:0}.image-gallery-content .image-gallery-left-nav:before{content:"\f341"}.image-gallery-content .image-gallery-left-nav:hover{margin-left:-1px}.image-gallery-content .image-gallery-right-nav{right:0}.image-gallery-content .image-gallery-right-nav:before{content:"\f345"}.image-gallery-content .image-gallery-right-nav:hover{margin-right:-1px}.image-gallery-content:hover .image-gallery-left-nav,.image-gallery-content:hover .image-gallery-right-nav{display:block}.image-gallery-slides{border:1px solid #eee;line-height:0;overflow:hidden;position:relative;white-space:nowrap}.image-gallery-slide{left:0;position:absolute;top:0;width:100%}.image-gallery-slide.center{position:relative}.image-gallery-slide .image-gallery-image{margin:0}.image-gallery-slide img{display:block;margin:0 auto}.image-gallery-slide .image-gallery-description{background:var(--wp--preset--color--light-grey-2);color:var(--wp--preset--color--charcoal-1);font-size:var(--wp--preset--font-size--small);line-height:1.5;padding:10px 20px;white-space:normal}@media (max-width:768px){.image-gallery-slide .image-gallery-description{padding:8px 15px}}.image-gallery-thumbnails{background:#fff;margin-top:5px}.image-gallery-thumbnails .image-gallery-thumbnails-container{cursor:pointer;text-align:center;white-space:nowrap}.image-gallery-thumbnail{border:1px solid #eee;display:table-cell;margin-right:5px;max-height:100px;overflow:hidden}.image-gallery-thumbnail .image-gallery-image{margin:0}.image-gallery-thumbnail img{vertical-align:middle;width:100px}@media (max-width:768px){.image-gallery-thumbnail img{width:75px}}.image-gallery-thumbnail:hover{box-shadow:0 1px 8px #0000004d}.image-gallery-thumbnail.active{border:1px solid #337ab7}.image-gallery-thumbnail-label{color:#222;font-size:1em}@media (max-width:768px){.image-gallery-thumbnail-label{font-size:.8em}}.image-gallery-index{background:#0006;bottom:0;color:#fff;line-height:1;padding:10px 20px;position:absolute;right:0;z-index:4}.plugin-reviews{list-style-type:none;margin:0;padding:0}.plugin-reviews .plugin-review{border-bottom:1px solid var(--wp--preset--color--light-grey-1);margin:2rem 0 1rem;padding-bottom:1rem}.plugin-reviews .plugin-review a{text-decoration:none}.plugin-reviews .plugin-review:first-child{margin-top:0}.plugin-reviews .plugin-review .header-top{display:flex}.plugin-reviews .plugin-review .header-top .wporg-ratings{flex-shrink:0}.plugin-reviews .plugin-review .header-bottom{display:flex;margin-top:4px}.plugin-reviews .review-avatar{display:none}.plugin-reviews .review,.plugin-reviews .review-author,.plugin-reviews .wporg-ratings{display:inline-block;vertical-align:top}.plugin-reviews .review-header{margin:0 0 .5rem}.plugin-reviews .review-title{font-size:var(--wp--preset--font-size--normal);font-weight:500;margin:2px 0 0 12px!important;text-transform:inherit}.plugin-reviews .review-author,.plugin-reviews .review-date,.plugin-reviews .review-replies{font-size:var(--wp--preset--font-size--extra-small);line-height:1.25}.plugin-reviews .review-date,.plugin-reviews .review-replies{color:var(--wp--preset--color--charcoal-4);font-size:var(--wp--preset--font-size--extra-small);margin-left:12px}.plugin-reviews .review-replies:before{content:"•";margin-right:12px}.plugin-reviews .review-content{margin:1em 0}@media screen and (min-width:737px){.plugin-reviews .review-avatar{display:inline-block;vertical-align:top}.plugin-reviews .review-avatar .avatar{margin-right:1rem}.plugin-reviews .review{width:calc(100% - 60px - 1rem)}.plugin-reviews .review-header{margin:0}.plugin-reviews .review-author,.plugin-reviews .review-date,.plugin-reviews .review-replies{line-height:1}}.plugin-reviews .reviews-link{display:inline-block;font-size:var(--wp--preset--font-size--small);text-decoration:none}.plugin-reviews .reviews-link:after{content:"\f345";float:right;font-family:dashicons;padding-left:5px;position:relative;top:1px;vertical-align:text-top}.plugin-screenshots{list-style-type:none;margin:0;padding:0}.plugin-screenshots .image-gallery-content{display:table;width:100%}.plugin-screenshots .image-gallery-slides{display:table-cell;max-height:600px}.plugin-screenshots .image-gallery-image img{max-height:550px;max-width:100%}.plugin-screenshots .image-gallery-thumbnail{vertical-align:top}.plugin-screenshots .image-gallery-thumbnail img{max-height:100px}.plugin-screenshots .image-gallery-thumbnails{overflow:hidden}.download-history-stats td{text-align:right}.previous-versions{max-width:60%}@media screen and (min-width:737px){.previous-versions{height:32px;vertical-align:middle}}hr{margin:2.5rem auto}.section h1:nth-child(2),.section h2:nth-child(2),.section h3:nth-child(2),.section h4:nth-child(2),.section h5:nth-child(2),.section h6:nth-child(2){margin-top:0}.section-heading{font-family:var(--wp--preset--font-family--inter)!important;font-size:var(--wp--preset--font-size--heading-5)!important;font-style:normal;font-weight:600;line-height:var(--wp--custom--heading--level-5--typography--line-height)}.section-intro{color:var(--wp--preset--color--charcoal-4);font-size:var(--wp--preset--font-size--small);margin-bottom:var(--wp--preset--spacing--20);margin-top:var(--wp--preset--spacing--10)}.type-plugin .plugin-notice{margin-top:0}.type-plugin .plugin-header{border-bottom:0;padding-top:var(--wp--preset--spacing--40)}.type-plugin .plugin-header:after,.type-plugin .plugin-header:before{content:"";display:table;table-layout:fixed}.type-plugin .plugin-header:after{clear:both}.type-plugin .plugin-header .entry-heading-container{display:flex;flex-direction:column;justify-content:space-between}@media screen and (max-width:599px){.type-plugin .plugin-header .entry-heading-container{--wp--custom--button--spacing--padding--top:12px;--wp--custom--button--spacing--padding--bottom:12px;--wp--custom--button--spacing--padding--left:16px;--wp--custom--button--spacing--padding--right:16px}}@media screen and (min-width:700px){.type-plugin .plugin-header .entry-heading-container{flex-direction:row}}.type-plugin .plugin-header .entry-heading-container>:first-child{align-items:center;display:flex;flex:1}.type-plugin .plugin-header .plugin-actions{align-items:center;display:flex;gap:16px;margin-top:var(--wp--style--block-gap)}@media screen and (min-width:700px){.type-plugin .plugin-header .plugin-actions{margin-top:0;margin-inline-start:1rem}}.type-plugin .plugin-header .plugin-actions>.button,.type-plugin .plugin-header .plugin-actions>div{display:inline-block;text-align:center}@media screen and (max-width:34em){.type-plugin .plugin-header .plugin-actions>.button.download-button{display:none}}.type-plugin .plugin-header .plugin-title{clear:none;font-size:var(--wp--preset--font-size--heading-3);font-weight:400;line-height:var(--wp--custom--heading--level-3--typography--line-height);margin:0}.type-plugin .plugin-header .plugin-title a{color:inherit;text-decoration:none}.type-plugin .plugin-header .plugin-title a:hover{text-decoration:underline}.type-plugin .plugin-header .byline{color:var(--wp--preset--color--charcoal-4);display:block;margin-top:4px}.type-plugin .plugin-banner+.plugin-header{padding-top:0}.type-plugin .plugin-banner+.plugin-header>.notice:first-of-type{margin-top:0}.type-plugin .tabs{border-bottom:1px solid var(--wp--preset--color--light-grey-1);list-style:none;margin:0}.type-plugin .tabs li{border:1px solid #0000;display:inline-block;font-size:.9rem;margin-bottom:-1px;transition:background .2s ease}.type-plugin .tabs li a{background:#fff;border:0;color:var(--wp--preset--color--charcoal-1);display:block;font-size:var(--wp--preset--font-size--normal);padding:.64rem 1.25rem;text-decoration:none}.type-plugin .tabs li a.active,.type-plugin .tabs li a:hover{background:var(--wp--preset--color--light-grey-2)!important}.type-plugin .tabs li.active,.type-plugin .tabs li:hover{border:1px solid var(--wp--preset--color--light-grey-1)}@media screen and (max-width:38em){.type-plugin .tabs{border-top:1px solid var(--wp--preset--color--light-grey-1)}.type-plugin .tabs li{display:block;margin-bottom:1px}.type-plugin .tabs li,.type-plugin .tabs li.active,.type-plugin .tabs li:hover{border:none;border-bottom:1px solid var(--wp--preset--color--light-grey-1)}}@media screen and (min-width:737px){.type-plugin .entry-content{float:left;padding:0;width:65%}}.type-plugin .entry-content>div,.type-plugin .entry-content>div~button{border:0;display:none}.type-plugin .entry-content ol>li>p,.type-plugin .entry-content ul>li>p{margin:0}.type-plugin .entry-content #admin{display:block!important}.type-plugin .plugin-blocks-list{list-style:none;margin-left:0;padding-left:0}.type-plugin .plugin-blocks-list .plugin-blocks-list-item{display:grid;grid-template-columns:auto 1fr;margin-bottom:var(--wp--style--block-gap)}.type-plugin .plugin-blocks-list .block-icon{border:1px solid var(--wp--preset--color--light-grey-1);border-radius:2px;display:inline-block;height:3.5rem;line-height:16px;margin-right:var(--wp--style--block-gap);padding:var(--wp--style--block-gap);width:3.5rem}.type-plugin .plugin-blocks-list .block-icon.dashicons{color:inherit}.type-plugin .plugin-blocks-list .block-icon.dashicons:before{margin-left:-3px}.type-plugin .plugin-blocks-list .block-icon svg{height:16px;width:16px;fill:currentColor;margin-left:-1px}.type-plugin .plugin-blocks-list .block-title{align-self:center;font-weight:700}.type-plugin .plugin-blocks-list .has-description .block-icon{grid-row:1/span 2}.type-plugin .plugin-blocks-list .has-description .block-title{margin-bottom:.4em}.type-plugin span#description,.type-plugin span#developers,.type-plugin span#installation,.type-plugin span#releases,.type-plugin span#reviews{position:fixed}.type-plugin span#advanced.displayed~#section-links .tabs li#tablink-advanced,.type-plugin span#developers:target~#section-links .tabs li#tablink-developers,.type-plugin span#installation:target~#section-links .tabs li#tablink-installation,.type-plugin span#releases:target~#section-links .tabs li#tablink-releases,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~span#advanced:not(.displayed)~#section-links .tabs li#tablink-description,.type-plugin span#reviews:target~#section-links .tabs li#tablink-reviews{background:#fff;border:1px solid var(--wp--preset--color--light-grey-1);border-bottom:0;padding-bottom:1px}@media screen and (max-width:38em){.type-plugin span#advanced.displayed~#section-links .tabs li#tablink-advanced.active,.type-plugin span#advanced.displayed~#section-links .tabs li#tablink-advanced:hover,.type-plugin span#developers:target~#section-links .tabs li#tablink-developers.active,.type-plugin span#developers:target~#section-links .tabs li#tablink-developers:hover,.type-plugin span#installation:target~#section-links .tabs li#tablink-installation.active,.type-plugin span#installation:target~#section-links .tabs li#tablink-installation:hover,.type-plugin span#releases:target~#section-links .tabs li#tablink-releases.active,.type-plugin span#releases:target~#section-links .tabs li#tablink-releases:hover,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~span#advanced:not(.displayed)~#section-links .tabs li#tablink-description.active,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~span#advanced:not(.displayed)~#section-links .tabs li#tablink-description:hover,.type-plugin span#reviews:target~#section-links .tabs li#tablink-reviews.active,.type-plugin span#reviews:target~#section-links .tabs li#tablink-reviews:hover{padding-bottom:1px!important}}.type-plugin span#section-links{display:flex;flex-flow:row wrap;margin-top:var(--wp--preset--spacing--30)}.type-plugin span#section-links .tabs{flex:1 1 auto;padding-left:0}@media screen and (max-width:38em){.type-plugin span#section-links .tabs{border:1px solid var(--wp--preset--color--light-grey-1)!important}.type-plugin span#section-links .tabs li{border:none!important}.type-plugin span#section-links{display:block}}.type-plugin #link-support{align-self:flex-end;border-bottom:1px solid var(--wp--preset--color--light-grey-1);flex:0 0 auto;font-size:.9rem}.type-plugin #link-support a{display:inline-block;font-size:var(--wp--preset--font-size--normal);padding:.64rem 0 .64rem 1.25rem}@media screen and (max-width:38em){.type-plugin #link-support{border-bottom:0;display:block;width:100%}.type-plugin #link-support a{padding-right:1.25rem}}.type-plugin span#developers:target~.entry-content #tab-changelog,.type-plugin span#developers:target~.entry-content #tab-developers,.type-plugin span#developers:target~.entry-content #tab-developers .plugin-development,.type-plugin span#developers:target~.entry-content #tab-developers~button,.type-plugin span#installation:target~.entry-content #tab-installation,.type-plugin span#releases:target~.entry-content #tab-releases,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~.entry-content #blocks,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~.entry-content #faq,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~.entry-content #screenshots,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~.entry-content #tab-description,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~.entry-content #tab-developers,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~.entry-content #tab-developers~button,.type-plugin span#reviews:target~.entry-content #tab-reviews{display:block}.type-plugin span#developers:target~.entry-content #tab-developers .plugin-contributors,.type-plugin span#installation:target~.entry-meta .plugin-contributors,.type-plugin span#releases:target~.entry-meta,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~.entry-content #tab-developers .plugin-development,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~.entry-meta .plugin-contributors,.type-plugin span#reviews:target~.entry-meta .plugin-contributors,.type-plugin span#reviews:target~.entry-meta .plugin-donate,.type-plugin span#reviews:target~.entry-meta .plugin-meta,.type-plugin span#reviews:target~.entry-meta .plugin-support{display:none}.type-plugin span#releases:target~.entry-content{width:100%}@media screen and (min-width:737px){.type-plugin .entry-content,.type-plugin .entry-meta{padding-left:0;padding-right:0}.type-plugin .entry-meta{float:right;width:30%}}.type-plugin .plugin-danger-zone h4{margin-top:var(--wp--preset--spacing--60)}.plugin-releases-listing{border-collapse:collapse;width:100%}.plugin-releases-listing tbody td:nth-child(4) div{font-size:14px}.plugin-releases-listing-actions{display:flex;flex-direction:column;gap:8px}@media screen and (min-width:34em){.plugin-releases-listing-actions{flex-direction:row}}.plugin-adopt-me{background:#e6f4fa;margin-top:36px;padding:12px}.plugin-adopt-me .widget-title{margin-top:0}.plugin-adopt-me p{margin-bottom:0}.widget.plugin-categorization{margin-top:var(--wp--style--block-gap)}.widget.plugin-categorization .widget-head h2{font-size:var(--wp--preset--font-size--heading-4);margin-bottom:.2rem;margin-top:0}.widget.plugin-categorization .widget-head a{font-size:var(--wp--preset--font-size--small)}.widget.plugin-categorization .widget-head a[href=""]{display:none}.widget.plugin-categorization p{font-size:var(--wp--preset--font-size--small);margin-top:.5rem}.widget.plugin-categorization~.plugin-meta li:first-child{border-top:1px solid var(--wp--preset--color--light-grey-1)}.committer-list,.support-rep-list{list-style:none;margin:0;padding:0}.committer-list li,.support-rep-list li{padding-bottom:.5rem}.committer-list li .remove,.support-rep-list li .remove{color:red;visibility:hidden}.committer-list li:hover .remove,.support-rep-list li:hover .remove{visibility:visible}.committer-list .avatar,.support-rep-list .avatar{float:left;margin-right:10px}.committer-list .spinner,.support-rep-list .spinner{position:relative}.committer-list .spinner:after,.support-rep-list .spinner:after{background:url(/wp-admin/images/spinner.gif) no-repeat 50%;background-size:20px 20px;content:"";display:block;height:20px;margin:-10px -10px 0 0;position:absolute;right:-50%;top:50%;transform:translateZ(0);width:20px}@media (min-resolution:120dpi),print{.committer-list .spinner:after,.support-rep-list .spinner:after{background-image:url(/wp-admin/images/spinner-2x.gif)}}.committer-list .new,.support-rep-list .new{margin-top:var(--wp--style--block-gap)}.plugin-contributors.read-more{border-bottom:1px solid var(--wp--preset--color--light-grey-1);max-height:200px;overflow:hidden;padding-bottom:1px}.plugin-contributors.read-more.toggled{max-height:none}.no-js .plugin-contributors.read-more{max-height:none;overflow:auto}.contributors-list{list-style-type:none;margin:0;padding:0}.contributors-list li{align-items:center;display:flex;margin-bottom:1rem}.contributors-list .avatar{float:left;margin-right:10px}.plugin-meta{font-size:var(--wp--preset--font-size--small);margin-top:var(--wp--style--block-gap)}.plugin-meta ul{list-style-type:none;margin:0;padding:0}.plugin-meta li{border-top:1px solid var(--wp--preset--color--light-grey-1);display:inline-block;padding:.5rem 0;position:relative;width:100%}.plugin-meta li strong{float:right;font-weight:500}.plugin-meta li .plugin-admin{font-size:var(--wp--preset--font-size--normal);font-weight:400}.plugin-meta li:first-child{border-top:0}.plugin-meta .languages,.plugin-meta .tags{float:right;text-align:right}.plugin-meta .tags{width:60%}.plugin-meta .languages button{font-size:var(--wp--preset--font-size--small);outline:revert}.plugin-meta .languages .popover{margin-top:8px}.plugin-meta .languages .popover-trigger{color:var(--wp--custom--link--color--text);text-decoration:underline}.plugin-meta .languages .popover-trigger:hover{text-decoration:underline}.plugin-meta [rel=tag]{background:var(--wp--preset--color--blueberry-4);border-radius:2px;color:var(--wp--preset--color--charcoal-1);display:inline-block;font-size:var(--wp--preset--font-size--extra-small);margin:2px;max-width:95%;overflow:hidden;padding:3px 6px;position:relative;text-decoration:none;text-overflow:ellipsis;white-space:nowrap;width:auto}.plugin-meta [rel=tag]:hover{text-decoration:underline}.popover{background-color:#fff;border:1px solid var(--wp--preset--color--light-grey-1);border-radius:2px;box-shadow:0 2px 10px #0000001a;display:none;left:0;margin-top:10px;max-width:300px;padding:1em 1em 2em;position:absolute;width:100%;z-index:100}.popover.is-top-right{left:auto;right:0}.popover.is-visible{display:block}.popover .popover-close{bottom:.5em;color:var(--wp--custom--link--color--text);font-size:small;position:absolute;right:.6em}.popover .popover-close:active,.popover .popover-close:focus,.popover .popover-close:hover{text-decoration:underline}.popover .popover-arrow{border:10px solid #0000;border-bottom:10px solid #ccc;border-top:none;height:0;position:absolute;right:20px;top:-10px;width:0;z-index:-1}.popover .popover-arrow:after{border:10px solid #0000;border-bottom:10px solid #fff;border-top:none;content:"";left:-10px;position:absolute;top:2px}.popover .popover-inner{text-align:left}.popover .popover-inner p:first-child{margin-top:0}.popover .popover-inner p:last-child{margin-bottom:0}.plugin-support .counter-container{margin-bottom:1rem;position:relative}.plugin-support .counter-back,.plugin-support .counter-bar{display:inline-block;height:30px;vertical-align:middle}.plugin-support .counter-back{background-color:var(--wp--preset--color--light-grey-2);width:100%}.plugin-support .counter-bar{background-color:var(--wp--preset--color--acid-green-2);display:block}.plugin-support .counter-count{font-size:var(--wp--preset--font-size--extra-small);left:8px;position:absolute;top:8px;width:100%;width:calc(100% - 8px)}@media screen and (min-width:737px){.plugin-support .counter-count{top:5px}}.home .widget,.widget-area.home .widget{display:inline-block;font-size:var(--wp--preset--font-size--small);margin:0;margin:var(--wp--style--block-gap);vertical-align:top;width:auto}@media screen and (min-width:737px){.home .widget,.widget-area.home .widget{margin:0;width:30%}.home .widget:first-child,.widget-area.home .widget:first-child{margin-right:5%}.home .widget:last-child,.widget-area.home .widget:last-child{margin-left:5%}}.home .widget select,.widget-area.home .widget select{max-width:100%}.entry-meta .widget-title{font-size:var(--wp--preset--font-size--heading-4)}body.single.single-plugin .entry-meta{font-size:var(--wp--preset--font-size--normal)}.widget-area{margin:0 auto;padding:var(--wp--preset--spacing--40) 0}.widget-area .widget-title{font-size:var(--wp--preset--font-size--heading-1);font-weight:var(--wp--custom--heading--typography--font-weight);margin-top:var(--wp--preset--spacing--50)}.widget-area .textwidget{text-wrap:pretty} \ No newline at end of file +@charset "UTF-8";.avatar{border-radius:50%;vertical-align:middle}.wp-block-wporg-language-suggest>p{margin:0}.block-validator>details summary{padding:var(--wp--style--block-gap) 0}.block-validator .block-validator__plugin-form label{display:block;margin-bottom:.8em}.block-validator .block-validator__plugin-input-container{display:flex;max-width:34rem}.block-validator .block-validator__plugin-input{flex:1}.block-validator .block-validator__plugin-submit{flex:0;margin-left:4px}@media (max-width:36rem){.block-validator .block-validator__plugin-submit{width:100%}.block-validator .block-validator__plugin-input-container{display:block}.block-validator .block-validator__plugin-input{width:100%}.block-validator .block-validator__plugin-submit{margin-left:0;margin-top:var(--wp--style--block-gap)}}.block-validator .notice details,.block-validator .notice p{font-size:var(--wp--preset--font-size--normal);margin:var(--wp--style--block-gap) 0}.block-validator .notice details p{font-size:var(--wp--preset--font-size--small);margin-left:1rem}.block-validator .notice summary{display:list-item}.block-validator figure{border:1px solid #aaa;display:inline-block;padding:1em}.block-validator .test-screenshot{text-align:center}.block-validator .plugin-upload-form-controls{align-items:center;display:flex;gap:4px}.block-validator .plugin-upload-form-controls>label{border:1px solid var(--wp--custom--form--border--color);border-radius:var(--wp--custom--form--border--radius);cursor:pointer;min-width:200px;padding:4px 8px}.notice{background:#fff;border-left:4px solid #fff;box-shadow:0 1px 1px 0 #0000001a;font-size:var(--wp--preset--font-size--small);margin:var(--wp--style--block-gap) 0;padding:1px 12px}.notice p,.notice ul{margin:.5em 0;padding:2px}.notice pre{white-space:pre-wrap}.notice ul{list-style:none;margin:.5em}.notice.notice-alt{box-shadow:none}.notice.notice-large{padding:10px 20px}.notice.notice-success{border-left-color:#46b450}.notice.notice-success.notice-alt{background-color:#ecf7ed}.notice.notice-warning{border-left-color:#ffb900}.notice.notice-warning.notice-alt{background-color:#fff8e5}.notice.notice-error{border-left-color:#dc3232}.notice.notice-error.notice-alt{background-color:#fbeaea}.notice.notice-info{border-left-color:#00a0d2}.notice.notice-info.notice-alt{background-color:#e5f5fa}.notice.hidden{display:none}.plugin-upload-form.hidden{display:none}.plugin-upload-form fieldset{border:none;margin:0;padding:0}.plugin-upload-form legend{margin:1rem 0}.plugin-upload-form .category-checklist{list-style-type:none;margin:0 0 2rem}.plugin-upload-form .category-checklist li{float:left;padding:.5rem 0;width:50%}@media screen and (min-width:48em){.plugin-upload-form .category-checklist li{padding:0}.plugin-upload-form .category-checklist label{font-size:var(--wp--preset--font-size--small)}.plugin-upload-form label.button{line-height:1.8}}.plugin-upload-form .plugin-file{height:.1px;opacity:0;overflow:hidden;position:absolute;width:.1px;z-index:-1}.plugin-queue-message code{font-size:1em}.plugin-queue-message dialog.slug-change input[type=text]{font-family:monospace;font-size:1.2em;width:20em}:where(main) a:where(:not(.wp-element-button,.wp-block-wporg-link-wrapper)):focus,:where(main) button:where(:not([class*=wp-block-button])):focus{border-radius:2px;box-shadow:0 0 0 1.5px currentColor;outline:none}.wporg-filter-bar{--wporg--filter-bar--gap:20px;--wporg--filter-bar--color:#40464d;--wporg--filter-bar--active--background-color:var(--wp--custom--button--color--background);--wporg--filter-bar--focus--border-color:var(--wp--custom--button--focus--border--color);margin:var(--wp--style--block-gap) 0}.wporg-filter-bar .wporg-query-filter__toggle.is-active,.wporg-filter-bar .wporg-query-filter__toggle:active,.wporg-filter-bar .wporg-query-filter__toggle:focus{background-color:var(--wporg--filter-bar--active--background-color);color:var(--wp--custom--button--color--text)}.wporg-filter-bar .wporg-filter-bar__navigation{flex-grow:1;margin-bottom:var(--wporg--filter-bar--gap)}.wporg-filter-bar .wporg-filter-bar__navigation ul{display:inline-block;font-size:13px;line-height:1.538;list-style:none;margin:0;padding-left:0}.wporg-filter-bar .wporg-filter-bar__navigation ul li{display:inline-block}.wporg-filter-bar .wporg-filter-bar__navigation ul li+li{margin-left:8px}.wporg-filter-bar .wporg-filter-bar__navigation ul a{border-radius:2px;color:var(--wporg--filter-bar--color);display:block;padding:8px 12px;text-decoration:none}.wporg-filter-bar .wporg-filter-bar__navigation ul a:focus,.wporg-filter-bar .wporg-filter-bar__navigation ul a:hover{text-decoration:underline}.wporg-filter-bar .wporg-filter-bar__navigation ul a:focus-visible{box-shadow:none;outline:1.5px solid var(--wporg--filter-bar--focus--border-color);outline-offset:-.5px}.wporg-filter-bar .wporg-filter-bar__navigation ul a.is-active{background-color:var(--wporg--filter-bar--active--background-color);color:#fff}.wporg-filter-bar .wporg-filter-bar__navigation ul a.is-active:focus,.wporg-filter-bar .wporg-filter-bar__navigation ul a.is-active:hover{color:#fff}.wporg-filter-bar .wporg-filter-bar__navigation ul a.is-active:focus-visible{box-shadow:inset 0 0 0 1.5px #fff;outline:1.5px solid var(--wporg--filter-bar--focus--border-color);outline-offset:-.5px}@media screen and (min-width:737px){.wporg-filter-bar{align-items:center;display:flex;flex-wrap:wrap;gap:var(--wporg--filter-bar--gap);justify-content:space-between;width:100%}.wporg-filter-bar .wporg-filter-bar__navigation{margin-bottom:0}}.wp-block-search__inside-wrapper{background:var(--wp--preset--color--light-grey-2);border:none}.button-link{background:none;border:0;border-radius:0;box-shadow:none;cursor:pointer;margin:0;outline:none;padding:0}.button{background-color:var(--wp--custom--button--color--background);border:0;border-radius:var(--wp--custom--button--border--radius);color:var(--wp--custom--button--color--text);cursor:pointer;opacity:1;padding:calc(var(--wp--custom--button--small--spacing--padding--top) + var(--wp--custom--button--border--width)) calc(var(--wp--custom--button--small--spacing--padding--right) + var(--wp--custom--button--border--width)) calc(var(--wp--custom--button--small--spacing--padding--bottom) + var(--wp--custom--button--border--width)) calc(var(--wp--custom--button--small--spacing--padding--left) + var(--wp--custom--button--border--width));vertical-align:middle}.button.button-large{padding:calc(var(--wp--custom--button--spacing--padding--top) + var(--wp--custom--button--border--width)) calc(var(--wp--custom--button--spacing--padding--right) + var(--wp--custom--button--border--width)) calc(var(--wp--custom--button--spacing--padding--bottom) + var(--wp--custom--button--border--width)) calc(var(--wp--custom--button--spacing--padding--left) + var(--wp--custom--button--border--width))}input+button.button,select+button.button{margin-top:-3px}.button.disabled{cursor:not-allowed;opacity:.6}.wp-block-post-content a.button{text-decoration:none}.wp-block-button__link{width:auto}pre{background-color:#f7f7f7;border:1px solid var(--wp--preset--color--light-grey-1);overflow:scroll;padding:20px}code,pre{border-radius:2px}code{background:var(--wp--preset--color--light-grey-2);display:inline-block;line-height:var(--wp--custom--body--extra-small--typography--line-height);max-width:100%;padding-inline-end:3px;padding-inline-start:3px}dialog{border:0;box-shadow:6px 6px 6px #0003;min-height:50%;min-width:30%}@media (min-width:1280px){dialog{max-width:55%}}dialog::backdrop{background:#000;opacity:.5}dialog .close{color:inherit;cursor:pointer;position:absolute;right:1em;text-decoration:none!important;top:1em}.plugin-card{display:flex;flex-direction:column;height:100%;justify-content:space-between}.plugin-card .entry{display:inline-block;vertical-align:top}.plugin-card .entry-title{display:block;display:-webkit-box;font-size:var(--wp--preset--font-size--heading-5);font-weight:500;line-height:1.3;margin-bottom:2px!important;max-height:2.6em;overflow:hidden;-webkit-line-clamp:2;-webkit-box-orient:vertical}.plugin-card .entry-title a{display:block;text-decoration:none}.plugin-card .entry-title a:focus{box-shadow:none}.plugin-card .entry-excerpt{clear:both;font-size:var(--wp--preset--font-size--small)}.plugin-card .entry-excerpt p{margin:0}.plugin-card footer{font-size:var(--wp--preset--font-size--small);margin-top:var(--wp--style--block-gap)}.plugin-card footer span{color:var(--wp--preset--color--charcoal-4);display:inline-block;line-height:var(--wp--preset--font-size--normal);overflow:hidden}.plugin-card footer span.plugin-author{width:100%}.plugin-card footer span.plugin-author span{color:var(--wp--preset--color--charcoal-1)}.plugin-card footer span.plugin-author path{fill:var(--wp--preset--color--charcoal-1)}.plugin-card footer span svg{height:24px;vertical-align:bottom;width:24px}.plugin-card footer span svg path{fill:var(--wp--preset--color--charcoal-4)}.plugin-card footer span.active-installs{min-width:48%}.plugin-cards{cursor:pointer}.plugin-cards .is-style-cards-grid li:hover{background-color:#fff!important;border:1px solid var(--wp--preset--color--charcoal-1)!important}.plugin-cards .is-style-cards-grid li:focus-within{border-color:#0000;border-radius:2px;box-shadow:0 0 0 1.5px var(--wp--custom--link--color--text)}@media screen and (max-width:737px){.plugin-cards .is-style-cards-grid{grid-template-columns:100%}}.entry-thumbnail{display:none;margin-bottom:var(--wp--style--block-gap);margin-right:var(--wp--style--block-gap);max-width:80px}.entry-thumbnail .plugin-icon{background-size:cover;border-radius:var(--wp--custom--button--border--radius);display:block;height:80px;width:80px}@media screen and (min-width:21em){.entry-thumbnail{display:inline-block;float:left;vertical-align:top}}.single .entry-thumbnail{display:none;float:left;height:96px;margin-bottom:0;max-width:96px}@media screen and (min-width:26em){.single .entry-thumbnail{display:block}}.single .entry-thumbnail .plugin-icon{background-size:contain!important;height:96px!important;width:96px!important}.plugin-rating{line-height:1;margin:0 10px 8px 0}.plugin-rating .wporg-ratings{display:inline-block;margin-right:5px}.plugin-rating .rating-count{color:var(--wp--preset--color--charcoal-4);font-size:var(--wp--preset--font-size--extra-small);vertical-align:text-bottom}.plugin-rating .rating-count a{color:inherit;cursor:hand;text-decoration:none}[class*=dashicons-star-]{color:var(--wp--preset--color--pomegrade-1)}.rtl .dashicons-star-half{transform:rotateY(180deg)}#main .plugin-section{margin:0 auto var(--wp--preset--spacing--60)}#main .plugin-section:last-of-type{margin-bottom:0}#main .plugin-section .section-header{align-items:center;column-gap:10px;display:flex;justify-content:space-between;margin-bottom:var(--wp--style--block-gap)}#main .plugin-section .section-header>h2{margin-bottom:0}#main .plugin-section .section-link{align-self:center;flex:0 0 auto;text-decoration:underline}.pagination .nav-links{margin-top:var(--wp--style--block-gap);padding-top:var(--wp--style--block-gap);text-align:center}.pagination .nav-links a{text-decoration:none}.pagination .nav-links .page-numbers{cursor:pointer;display:inline-block;min-width:2em;padding:8px;text-align:center}.pagination .nav-links .page-numbers.dots,.pagination .nav-links .page-numbers.next,.pagination .nav-links .page-numbers.prev{background:none;font-size:.9em;width:auto}.pagination .nav-links .page-numbers.dots{cursor:inherit}@media screen and (max-width:737px){.pagination .nav-links .page-numbers.next,.pagination .nav-links .page-numbers.prev{font-size:0;min-width:auto;padding:0}.pagination .nav-links .page-numbers.next:after,.pagination .nav-links .page-numbers.prev:before{display:inline-block;font-size:medium;line-height:1.5;min-width:2em;padding:8px}.pagination .nav-links .page-numbers.prev:before{content:"‹"}.pagination .nav-links .page-numbers.next:after{content:"›"}}.pagination .nav-links span.page-numbers{font-weight:700}.pagination .nav-links span.page-numbers.current{text-decoration:underline}@keyframes favme-anime{0%{font-size:var(--wp--preset--font-size--large);opacity:1;-webkit-text-stroke-color:#0000}25%{color:#fff;font-size:var(--wp--preset--font-size--small);opacity:.6;-webkit-text-stroke-width:1px;-webkit-text-stroke-color:#dc3232}75%{color:#fff;font-size:var(--wp--preset--font-size--large);opacity:.6;-webkit-text-stroke-width:1px;-webkit-text-stroke-color:#dc3232}to{font-size:var(--wp--preset--font-size--normal);opacity:1;-webkit-text-stroke-color:#0000}}.plugin-favorite{height:calc(var(--wp--custom--button--spacing--padding--top)*2 + var(--wp--preset--font-size--normal)*2);text-align:center;vertical-align:top;width:36px}.plugin-favorite .plugin-favorite-heart{align-items:center;background:none;border:0;border-radius:0;box-shadow:none;color:#cbcdce;cursor:pointer;display:flex;font-size:var(--wp--preset--font-size--large);height:100%;justify-content:center;line-height:1;margin:0;outline:none;padding:0;text-decoration:none}.plugin-favorite .plugin-favorite-heart.favorited{color:#dc3232}.plugin-favorite .plugin-favorite-heart:focus,.plugin-favorite .plugin-favorite-heart:hover{color:var(----wp--preset--color--charcoal-2);text-decoration:none}.plugin-favorite .plugin-favorite-heart:after{content:"\f487";font-family:dashicons;vertical-align:top}.plugin-banner img{aspect-ratio:3.089;border-radius:var(--wp--custom--button--border--radius);display:block;margin:0 auto var(--wp--preset--spacing--30);width:100%}.plugin-releases{list-style-type:none;padding:0}.plugin-releases-item{border:1px solid var(--wp--preset--color--light-grey-1);border-radius:4px;margin-bottom:var(--wp--preset--spacing--30);padding:var(--wp--style--block-gap)}.plugin-releases-item-header{display:flex;justify-content:space-between}.plugin-releases-item-header h3{margin:0!important}@keyframes hideAnimation{to{visibility:hidden}}.categorization .help{color:var(--wp--preset--color--charcoal-4);display:inline-block;font-size:.8rem;margin-top:0}.categorization label{display:block;font-weight:700}.categorization input{width:100%}.categorization .success-msg{background:#eff7ed;border:solid #64b450;border-width:0 0 0 5px;font-size:.8rem;margin-left:1rem;opacity:0;overflow:auto;padding:.1rem .6rem .2rem;position:relative;transition:visibility 0s,opacity .5s linear;-webkit-user-select:none;user-select:none;visibility:hidden}.categorization .success-msg.saved{animation:hideAnimation 0s ease-in 5s;animation-fill-mode:forwards;opacity:1;visibility:visible}.plugin-changelog code{font-size:var(--wp--preset--font-size--small)}.plugin-developers .contributors-list li{align-items:center;display:flex;padding-bottom:var(--wp--style--block-gap)}@media screen and (min-width:500px){.plugin-developers .contributors-list{display:flex;flex-wrap:wrap}.plugin-developers .contributors-list li{padding-bottom:unset;width:50%}}.plugin-faq dl{border-bottom:1px solid var(--wp--preset--color--light-grey-1)}.plugin-faq dt{border-top:1px solid var(--wp--preset--color--light-grey-1);cursor:pointer;padding:1rem 0}.plugin-faq dt:before{content:"\f347";float:right;font-family:dashicons;margin:0 1rem}.plugin-faq dt.open:before{content:"\f343"}.plugin-faq dt .button-link{display:inherit;text-align:inherit}.plugin-faq dt .button-link.no-focus{box-shadow:none;outline:none}.plugin-faq dt h3{color:var(--wp--custom--link--color--text);display:inline;font-size:var(--wp--preset--font-size--normal);font-weight:400;margin-bottom:0;margin-top:0!important;text-decoration:underline}.plugin-faq dt h3 button{all:inherit;max-width:calc(100% - 60px)}.plugin-faq dt h3 button:focus,.plugin-faq dt h3 button:hover{text-decoration:underline}.plugin-faq dd{display:none;margin:0 0 1rem}.no-js .plugin-faq dd{display:block}.plugin-faq dd p{margin:0}.plugin-faq dd p+p{margin-top:1rem}.image-gallery{-webkit-user-select:none;user-select:none}.image-gallery-content{position:relative}.image-gallery-content .image-gallery-left-nav,.image-gallery-content .image-gallery-right-nav{border-color:var(--wp--preset--color--light-grey-1);display:none;font-size:48px;height:100%;position:absolute;top:0;transition:background .1s ease,border .1s ease;z-index:4}@media (max-width:768px){.image-gallery-content .image-gallery-left-nav,.image-gallery-content .image-gallery-right-nav{font-size:3.4em}}@media (min-width:768px){.image-gallery-content .image-gallery-left-nav:hover,.image-gallery-content .image-gallery-right-nav:hover{background:#fff;border:1px solid var(--wp--preset--color--light-grey-1);opacity:.8}}.image-gallery-content .image-gallery-left-nav:before,.image-gallery-content .image-gallery-right-nav:before{font-family:dashicons;position:relative}.image-gallery-content .image-gallery-left-nav{left:0}.image-gallery-content .image-gallery-left-nav:before{content:"\f341"}.image-gallery-content .image-gallery-left-nav:hover{margin-left:-1px}.image-gallery-content .image-gallery-right-nav{right:0}.image-gallery-content .image-gallery-right-nav:before{content:"\f345"}.image-gallery-content .image-gallery-right-nav:hover{margin-right:-1px}.image-gallery-content:hover .image-gallery-left-nav,.image-gallery-content:hover .image-gallery-right-nav{display:block}.image-gallery-slides{border:1px solid #eee;line-height:0;overflow:hidden;position:relative;white-space:nowrap}.image-gallery-slide{left:0;position:absolute;top:0;width:100%}.image-gallery-slide.center{position:relative}.image-gallery-slide .image-gallery-image{margin:0}.image-gallery-slide img{display:block;margin:0 auto}.image-gallery-slide .image-gallery-description{background:var(--wp--preset--color--light-grey-2);color:var(--wp--preset--color--charcoal-1);font-size:var(--wp--preset--font-size--small);line-height:1.5;padding:10px 20px;white-space:normal}@media (max-width:768px){.image-gallery-slide .image-gallery-description{padding:8px 15px}}.image-gallery-thumbnails{background:#fff;margin-top:5px}.image-gallery-thumbnails .image-gallery-thumbnails-container{cursor:pointer;text-align:center;white-space:nowrap}.image-gallery-thumbnail{border:1px solid #eee;display:table-cell;margin-right:5px;max-height:100px;overflow:hidden}.image-gallery-thumbnail .image-gallery-image{margin:0}.image-gallery-thumbnail img{vertical-align:middle;width:100px}@media (max-width:768px){.image-gallery-thumbnail img{width:75px}}.image-gallery-thumbnail:hover{box-shadow:0 1px 8px #0000004d}.image-gallery-thumbnail.active{border:1px solid #337ab7}.image-gallery-thumbnail-label{color:#222;font-size:1em}@media (max-width:768px){.image-gallery-thumbnail-label{font-size:.8em}}.image-gallery-index{background:#0006;bottom:0;color:#fff;line-height:1;padding:10px 20px;position:absolute;right:0;z-index:4}.plugin-reviews{list-style-type:none;margin:0;padding:0}.plugin-reviews .plugin-review{border-bottom:1px solid var(--wp--preset--color--light-grey-1);margin:2rem 0 1rem;padding-bottom:1rem}.plugin-reviews .plugin-review a{text-decoration:none}.plugin-reviews .plugin-review:first-child{margin-top:0}.plugin-reviews .plugin-review .header-top{display:flex}.plugin-reviews .plugin-review .header-top .wporg-ratings{flex-shrink:0}.plugin-reviews .plugin-review .header-bottom{display:flex;margin-top:4px}.plugin-reviews .review-avatar{display:none}.plugin-reviews .review,.plugin-reviews .review-author,.plugin-reviews .wporg-ratings{display:inline-block;vertical-align:top}.plugin-reviews .review-header{margin:0 0 .5rem}.plugin-reviews .review-title{font-size:var(--wp--preset--font-size--normal);font-weight:500;margin:2px 0 0 12px!important;text-transform:inherit}.plugin-reviews .review-author,.plugin-reviews .review-date,.plugin-reviews .review-replies{font-size:var(--wp--preset--font-size--extra-small);line-height:1.25}.plugin-reviews .review-date,.plugin-reviews .review-replies{color:var(--wp--preset--color--charcoal-4);font-size:var(--wp--preset--font-size--extra-small);margin-left:12px}.plugin-reviews .review-replies:before{content:"•";margin-right:12px}.plugin-reviews .review-content{margin:1em 0}@media screen and (min-width:737px){.plugin-reviews .review-avatar{display:inline-block;vertical-align:top}.plugin-reviews .review-avatar .avatar{margin-right:1rem}.plugin-reviews .review{width:calc(100% - 60px - 1rem)}.plugin-reviews .review-header{margin:0}.plugin-reviews .review-author,.plugin-reviews .review-date,.plugin-reviews .review-replies{line-height:1}}.plugin-reviews .reviews-link{display:inline-block;font-size:var(--wp--preset--font-size--small);text-decoration:none}.plugin-reviews .reviews-link:after{content:"\f345";float:right;font-family:dashicons;padding-left:5px;position:relative;top:1px;vertical-align:text-top}.plugin-screenshots{list-style-type:none;margin:0;padding:0}.plugin-screenshots .image-gallery-content{display:table;width:100%}.plugin-screenshots .image-gallery-slides{display:table-cell;max-height:600px}.plugin-screenshots .image-gallery-image img{max-height:550px;max-width:100%}.plugin-screenshots .image-gallery-thumbnail{vertical-align:top}.plugin-screenshots .image-gallery-thumbnail img{max-height:100px}.plugin-screenshots .image-gallery-thumbnails{overflow:hidden}.download-history-stats td{text-align:right}.previous-versions{max-width:60%}@media screen and (min-width:737px){.previous-versions{height:32px;vertical-align:middle}}hr{margin:2.5rem auto}.section h1:nth-child(2),.section h2:nth-child(2),.section h3:nth-child(2),.section h4:nth-child(2),.section h5:nth-child(2),.section h6:nth-child(2){margin-top:0}.section-heading{font-family:var(--wp--preset--font-family--inter)!important;font-size:var(--wp--preset--font-size--heading-5)!important;font-style:normal;font-weight:600;line-height:var(--wp--custom--heading--level-5--typography--line-height)}.section-intro{color:var(--wp--preset--color--charcoal-4);font-size:var(--wp--preset--font-size--small);margin-bottom:var(--wp--preset--spacing--20);margin-top:var(--wp--preset--spacing--10)}.wporg-spinner{--local-size:16px;--spinner-color:var(--wp--custom--spinner--color,var(--wp--preset--color--blueberry-1,currentColor));--background-stroke-color:#ddd;background-color:initial;display:inline-block;height:var(--local-size);position:relative;width:var(--local-size)}.wporg-spinner:before{border:1.5px solid var(--background-stroke-color);border-radius:50%}.wporg-spinner:after,.wporg-spinner:before{box-sizing:border-box;content:"";display:block;height:100%;width:100%}.wporg-spinner:after{animation:wporg-spinner-rotate 1.4s linear infinite;border-bottom:1.5px solid #0000;border-left:1.5px solid #0000;border-radius:50%;border-right:1.5px solid #0000;border-right-color:var(--spinner-color);border-top:1.5px solid #0000;border-top-color:var(--spinner-color);left:0;position:absolute;top:0;transform-origin:center}@keyframes wporg-spinner-rotate{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.type-plugin .plugin-notice{margin-top:0}.type-plugin .plugin-header{border-bottom:0;padding-top:var(--wp--preset--spacing--40)}.type-plugin .plugin-header:after,.type-plugin .plugin-header:before{content:"";display:table;table-layout:fixed}.type-plugin .plugin-header:after{clear:both}.type-plugin .plugin-header .entry-heading-container{display:flex;flex-direction:column;justify-content:space-between}@media screen and (max-width:599px){.type-plugin .plugin-header .entry-heading-container{--wp--custom--button--spacing--padding--top:12px;--wp--custom--button--spacing--padding--bottom:12px;--wp--custom--button--spacing--padding--left:16px;--wp--custom--button--spacing--padding--right:16px}}@media screen and (min-width:700px){.type-plugin .plugin-header .entry-heading-container{flex-direction:row}}.type-plugin .plugin-header .entry-heading-container>:first-child{align-items:center;display:flex;flex:1}.type-plugin .plugin-header .plugin-actions{align-items:center;display:flex;gap:16px;margin-top:var(--wp--style--block-gap)}@media screen and (min-width:700px){.type-plugin .plugin-header .plugin-actions{margin-top:0;margin-inline-start:1rem}}.type-plugin .plugin-header .plugin-actions>.button,.type-plugin .plugin-header .plugin-actions>div{display:inline-block;text-align:center}@media screen and (max-width:34em){.type-plugin .plugin-header .plugin-actions>.button.download-button{display:none}}.type-plugin .plugin-header .plugin-title{clear:none;font-size:var(--wp--preset--font-size--heading-3);font-weight:400;line-height:var(--wp--custom--heading--level-3--typography--line-height);margin:0}.type-plugin .plugin-header .plugin-title a{color:inherit;text-decoration:none}.type-plugin .plugin-header .plugin-title a:hover{text-decoration:underline}.type-plugin .plugin-header .byline{color:var(--wp--preset--color--charcoal-4);display:block;margin-top:4px}.type-plugin .plugin-banner+.plugin-header{padding-top:0}.type-plugin .plugin-banner+.plugin-header>.notice:first-of-type{margin-top:0}.type-plugin .tabs{border-bottom:1px solid var(--wp--preset--color--light-grey-1);list-style:none;margin:0}.type-plugin .tabs li{border:1px solid #0000;display:inline-block;font-size:.9rem;margin-bottom:-1px;transition:background .2s ease}.type-plugin .tabs li a{background:#fff;border:0;color:var(--wp--preset--color--charcoal-1);display:block;font-size:var(--wp--preset--font-size--normal);padding:.64rem 1.25rem;text-decoration:none}.type-plugin .tabs li a.active,.type-plugin .tabs li a:hover{background:var(--wp--preset--color--light-grey-2)!important}.type-plugin .tabs li.active,.type-plugin .tabs li:hover{border:1px solid var(--wp--preset--color--light-grey-1)}@media screen and (max-width:38em){.type-plugin .tabs{border-top:1px solid var(--wp--preset--color--light-grey-1)}.type-plugin .tabs li{display:block;margin-bottom:1px}.type-plugin .tabs li,.type-plugin .tabs li.active,.type-plugin .tabs li:hover{border:none;border-bottom:1px solid var(--wp--preset--color--light-grey-1)}}@media screen and (min-width:737px){.type-plugin .entry-content{float:left;padding:0;width:65%}}.type-plugin .entry-content>div,.type-plugin .entry-content>div~button{border:0;display:none}.type-plugin .entry-content ol>li>p,.type-plugin .entry-content ul>li>p{margin:0}.type-plugin .entry-content #admin{display:block!important}.type-plugin .plugin-blocks-list{list-style:none;margin-left:0;padding-left:0}.type-plugin .plugin-blocks-list .plugin-blocks-list-item{display:grid;grid-template-columns:auto 1fr;margin-bottom:var(--wp--style--block-gap)}.type-plugin .plugin-blocks-list .block-icon{border:1px solid var(--wp--preset--color--light-grey-1);border-radius:2px;display:inline-block;height:3.5rem;line-height:16px;margin-right:var(--wp--style--block-gap);padding:var(--wp--style--block-gap);width:3.5rem}.type-plugin .plugin-blocks-list .block-icon.dashicons{color:inherit}.type-plugin .plugin-blocks-list .block-icon.dashicons:before{margin-left:-3px}.type-plugin .plugin-blocks-list .block-icon svg{height:16px;width:16px;fill:currentColor;margin-left:-1px}.type-plugin .plugin-blocks-list .block-title{align-self:center;font-weight:700}.type-plugin .plugin-blocks-list .has-description .block-icon{grid-row:1/span 2}.type-plugin .plugin-blocks-list .has-description .block-title{margin-bottom:.4em}.type-plugin span#description,.type-plugin span#developers,.type-plugin span#installation,.type-plugin span#releases,.type-plugin span#reviews{position:fixed}.type-plugin span#advanced.displayed~#section-links .tabs li#tablink-advanced,.type-plugin span#developers:target~#section-links .tabs li#tablink-developers,.type-plugin span#installation:target~#section-links .tabs li#tablink-installation,.type-plugin span#releases:target~#section-links .tabs li#tablink-releases,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~span#advanced:not(.displayed)~#section-links .tabs li#tablink-description,.type-plugin span#reviews:target~#section-links .tabs li#tablink-reviews{background:#fff;border:1px solid var(--wp--preset--color--light-grey-1);border-bottom:0;padding-bottom:1px}@media screen and (max-width:38em){.type-plugin span#advanced.displayed~#section-links .tabs li#tablink-advanced.active,.type-plugin span#advanced.displayed~#section-links .tabs li#tablink-advanced:hover,.type-plugin span#developers:target~#section-links .tabs li#tablink-developers.active,.type-plugin span#developers:target~#section-links .tabs li#tablink-developers:hover,.type-plugin span#installation:target~#section-links .tabs li#tablink-installation.active,.type-plugin span#installation:target~#section-links .tabs li#tablink-installation:hover,.type-plugin span#releases:target~#section-links .tabs li#tablink-releases.active,.type-plugin span#releases:target~#section-links .tabs li#tablink-releases:hover,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~span#advanced:not(.displayed)~#section-links .tabs li#tablink-description.active,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~span#advanced:not(.displayed)~#section-links .tabs li#tablink-description:hover,.type-plugin span#reviews:target~#section-links .tabs li#tablink-reviews.active,.type-plugin span#reviews:target~#section-links .tabs li#tablink-reviews:hover{padding-bottom:1px!important}}.type-plugin span#section-links{display:flex;flex-flow:row wrap;margin-top:var(--wp--preset--spacing--30)}.type-plugin span#section-links .tabs{flex:1 1 auto;padding-left:0}@media screen and (max-width:38em){.type-plugin span#section-links .tabs{border:1px solid var(--wp--preset--color--light-grey-1)!important}.type-plugin span#section-links .tabs li{border:none!important}.type-plugin span#section-links{display:block}}.type-plugin #link-support{align-self:flex-end;border-bottom:1px solid var(--wp--preset--color--light-grey-1);flex:0 0 auto;font-size:.9rem}.type-plugin #link-support a{display:inline-block;font-size:var(--wp--preset--font-size--normal);padding:.64rem 0 .64rem 1.25rem}@media screen and (max-width:38em){.type-plugin #link-support{border-bottom:0;display:block;width:100%}.type-plugin #link-support a{padding-right:1.25rem}}.type-plugin span#developers:target~.entry-content #tab-changelog,.type-plugin span#developers:target~.entry-content #tab-developers,.type-plugin span#developers:target~.entry-content #tab-developers .plugin-development,.type-plugin span#developers:target~.entry-content #tab-developers~button,.type-plugin span#installation:target~.entry-content #tab-installation,.type-plugin span#releases:target~.entry-content #tab-releases,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~.entry-content #blocks,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~.entry-content #faq,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~.entry-content #screenshots,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~.entry-content #tab-description,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~.entry-content #tab-developers,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~.entry-content #tab-developers~button,.type-plugin span#reviews:target~.entry-content #tab-reviews{display:block}.type-plugin span#developers:target~.entry-content #tab-developers .plugin-contributors,.type-plugin span#installation:target~.entry-meta .plugin-contributors,.type-plugin span#releases:target~.entry-meta,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~.entry-content #tab-developers .plugin-development,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~.entry-meta .plugin-contributors,.type-plugin span#reviews:target~.entry-meta .plugin-contributors,.type-plugin span#reviews:target~.entry-meta .plugin-donate,.type-plugin span#reviews:target~.entry-meta .plugin-meta,.type-plugin span#reviews:target~.entry-meta .plugin-support{display:none}.type-plugin span#releases:target~.entry-content{width:100%}@media screen and (min-width:737px){.type-plugin .entry-content,.type-plugin .entry-meta{padding-left:0;padding-right:0}.type-plugin .entry-meta{float:right;width:30%}}.type-plugin .plugin-danger-zone h4{margin-top:var(--wp--preset--spacing--60)}.plugin-releases-listing{border-collapse:collapse;width:100%}.plugin-releases-listing tbody td:nth-child(4) div{font-size:14px}.plugin-releases-listing-actions{display:flex;flex-direction:column;gap:8px}@media screen and (min-width:34em){.plugin-releases-listing-actions{flex-direction:row}}.plugin-adopt-me{background:#e6f4fa;margin-top:36px;padding:12px}.plugin-adopt-me .widget-title{margin-top:0}.plugin-adopt-me p{margin-bottom:0}.widget.plugin-categorization{margin-top:var(--wp--style--block-gap)}.widget.plugin-categorization .widget-head h2{font-size:var(--wp--preset--font-size--heading-4);margin-bottom:.2rem;margin-top:0}.widget.plugin-categorization .widget-head a{font-size:var(--wp--preset--font-size--small)}.widget.plugin-categorization .widget-head a[href=""]{display:none}.widget.plugin-categorization p{font-size:var(--wp--preset--font-size--small);margin-top:.5rem}.widget.plugin-categorization~.plugin-meta li:first-child{border-top:1px solid var(--wp--preset--color--light-grey-1)}.committer-list,.support-rep-list{list-style:none;margin:0;padding:0}.committer-list li,.support-rep-list li{padding-bottom:.5rem}.committer-list li .remove,.support-rep-list li .remove{color:red;visibility:hidden}.committer-list li:hover .remove,.support-rep-list li:hover .remove{visibility:visible}.committer-list .avatar,.support-rep-list .avatar{float:left;margin-right:10px}.committer-list .spinner,.support-rep-list .spinner{position:relative}.committer-list .spinner:after,.support-rep-list .spinner:after{background:url(/wp-admin/images/spinner.gif) no-repeat 50%;background-size:20px 20px;content:"";display:block;height:20px;margin:-10px -10px 0 0;position:absolute;right:-50%;top:50%;transform:translateZ(0);width:20px}@media (min-resolution:120dpi),print{.committer-list .spinner:after,.support-rep-list .spinner:after{background-image:url(/wp-admin/images/spinner-2x.gif)}}.committer-list .new,.support-rep-list .new{margin-top:var(--wp--style--block-gap)}.plugin-contributors.read-more{border-bottom:1px solid var(--wp--preset--color--light-grey-1);max-height:200px;overflow:hidden;padding-bottom:1px}.plugin-contributors.read-more.toggled{max-height:none}.no-js .plugin-contributors.read-more{max-height:none;overflow:auto}.contributors-list{list-style-type:none;margin:0;padding:0}.contributors-list li{align-items:center;display:flex;margin-bottom:1rem}.contributors-list .avatar{float:left;margin-right:10px}.plugin-meta{font-size:var(--wp--preset--font-size--small);margin-top:var(--wp--style--block-gap)}.plugin-meta ul{list-style-type:none;margin:0;padding:0}.plugin-meta li{border-top:1px solid var(--wp--preset--color--light-grey-1);display:inline-block;padding:.5rem 0;position:relative;width:100%}.plugin-meta li strong{float:right;font-weight:500}.plugin-meta li .plugin-admin{font-size:var(--wp--preset--font-size--normal);font-weight:400}.plugin-meta li:first-child{border-top:0}.plugin-meta .languages,.plugin-meta .tags{float:right;text-align:right}.plugin-meta .tags{width:60%}.plugin-meta .languages button{font-size:var(--wp--preset--font-size--small);outline:revert}.plugin-meta .languages .popover{margin-top:8px}.plugin-meta .languages .popover-trigger{color:var(--wp--custom--link--color--text);text-decoration:underline}.plugin-meta .languages .popover-trigger:hover{text-decoration:underline}.plugin-meta [rel=tag]{background:var(--wp--preset--color--blueberry-4);border-radius:2px;color:var(--wp--preset--color--charcoal-1);display:inline-block;font-size:var(--wp--preset--font-size--extra-small);margin:2px;max-width:95%;overflow:hidden;padding:3px 6px;position:relative;text-decoration:none;text-overflow:ellipsis;white-space:nowrap;width:auto}.plugin-meta [rel=tag]:hover{text-decoration:underline}.popover{background-color:#fff;border:1px solid var(--wp--preset--color--light-grey-1);border-radius:2px;box-shadow:0 2px 10px #0000001a;display:none;left:0;margin-top:10px;max-width:300px;padding:1em 1em 2em;position:absolute;width:100%;z-index:100}.popover.is-top-right{left:auto;right:0}.popover.is-visible{display:block}.popover .popover-close{bottom:.5em;color:var(--wp--custom--link--color--text);font-size:small;position:absolute;right:.6em}.popover .popover-close:active,.popover .popover-close:focus,.popover .popover-close:hover{text-decoration:underline}.popover .popover-arrow{border:10px solid #0000;border-bottom:10px solid #ccc;border-top:none;height:0;position:absolute;right:20px;top:-10px;width:0;z-index:-1}.popover .popover-arrow:after{border:10px solid #0000;border-bottom:10px solid #fff;border-top:none;content:"";left:-10px;position:absolute;top:2px}.popover .popover-inner{text-align:left}.popover .popover-inner p:first-child{margin-top:0}.popover .popover-inner p:last-child{margin-bottom:0}.plugin-support .counter-container{margin-bottom:1rem;position:relative}.plugin-support .counter-back,.plugin-support .counter-bar{display:inline-block;height:30px;vertical-align:middle}.plugin-support .counter-back{background-color:var(--wp--preset--color--light-grey-2);width:100%}.plugin-support .counter-bar{background-color:var(--wp--preset--color--acid-green-2);display:block}.plugin-support .counter-count{font-size:var(--wp--preset--font-size--extra-small);left:8px;position:absolute;top:8px;width:100%;width:calc(100% - 8px)}@media screen and (min-width:737px){.plugin-support .counter-count{top:5px}}.home .widget,.widget-area.home .widget{display:inline-block;font-size:var(--wp--preset--font-size--small);margin:0;margin:var(--wp--style--block-gap);vertical-align:top;width:auto}@media screen and (min-width:737px){.home .widget,.widget-area.home .widget{margin:0;width:30%}.home .widget:first-child,.widget-area.home .widget:first-child{margin-right:5%}.home .widget:last-child,.widget-area.home .widget:last-child{margin-left:5%}}.home .widget select,.widget-area.home .widget select{max-width:100%}.entry-meta .widget-title{font-size:var(--wp--preset--font-size--heading-4)}body.single.single-plugin .entry-meta{font-size:var(--wp--preset--font-size--normal)}.widget-area{margin:0 auto;padding:var(--wp--preset--spacing--40) 0}.widget-area .widget-title{font-size:var(--wp--preset--font-size--heading-1);font-weight:var(--wp--custom--heading--typography--font-weight);margin-top:var(--wp--preset--spacing--50)}.widget-area .textwidget{text-wrap:pretty} \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/functions.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/functions.php index 37ee6f6bef..424fcce2c7 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/functions.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/functions.php @@ -28,15 +28,13 @@ require_once __DIR__ . '/src/blocks/plugin-card/index.php'; require_once __DIR__ . '/src/blocks/release-checks/index.php'; require_once __DIR__ . '/src/blocks/release-commits/index.php'; -require_once __DIR__ . '/src/blocks/release-confirmation/index.php'; -require_once __DIR__ . '/src/blocks/release-date/index.php'; require_once __DIR__ . '/src/blocks/release-draft/index.php'; -require_once __DIR__ . '/src/blocks/release-details-form/index.php'; -require_once __DIR__ . '/src/blocks/release-check-item/index.php'; +require_once __DIR__ . '/src/blocks/card/index.php'; +require_once __DIR__ . '/src/blocks/release-publish/index.php'; +require_once __DIR__ . '/src/blocks/release-result-item/index.php'; require_once __DIR__ . '/src/blocks/release-flags/index.php'; require_once __DIR__ . '/src/blocks/release-menu-options/index.php'; require_once __DIR__ . '/src/blocks/release-page/index.php'; -require_once __DIR__ . '/src/blocks/release-status/index.php'; // Block Configs require_once __DIR__ . '/inc/block-bindings.php'; @@ -463,29 +461,55 @@ function update_archive_description( $description ) { } add_filter( 'get_the_archive_description', __NAMESPACE__ . '\update_archive_description' ); + /** - * Generates a Trac changeset link for a plugin. + * Get's the plugin post object. * - * @param string $parent_id The plugin ID. - * @param string $previous_version The previous version of the plugin. - * @param string $current_version The current version of the plugin. Default is 'trunk'. + * @return WP_Post The plugin post object. + */ +function get_plugin() { + global $post; + + if ( 'plugin_release' === $post->post_type ) { + return get_post( $post->post_parent ); + } + + return $post; +} + +/** + * Filter the archive title to use custom string for business model. * - * @return string The Trac changeset link. + * @return string Plugin slug. */ -function get_trac_changeset_link( $parent_id, $previous_version, $current_version = 'trunk' ) { - $plugin = get_post( $parent_id ); +function get_plugin_slug() { + $plugin = get_plugin(); if ( ! $plugin ) { return ''; } + return $plugin->post_name; +} + +/** + * Generates a Trac changeset link for a plugin. + * + * @param string $previous_version The previous version of the plugin. + * @param string $current_version The current version of the plugin. Default is 'trunk'. + * + * @return string The Trac changeset link. + */ +function get_trac_changeset_link( $previous_version, $current_version = 'trunk' ) { + $plugin_slug = get_plugin_slug(); + $current_path = ( 'trunk' === $current_version ) ? 'trunk' : 'tags/' . $current_version; return sprintf( 'https://plugins.trac.wordpress.org/changeset?old_path=/%1$s/%2$s&new_path=/%1$s/tags/%3$s', - $plugin->post_name, + $plugin_slug, $current_path, $previous_version ); @@ -493,16 +517,17 @@ function get_trac_changeset_link( $parent_id, $previous_version, $current_versio /** * Get the releases for a plugin. - * - * @param WP_Post $parent_id The release post. + * * @return WP_Post[] The releases for the plugin. */ -function get_releases( $parent_id ) { +function get_releases() { + $plugin = get_plugin(); + $args = array( 'post_type' => 'plugin_release', 'posts_per_page' => -1, - 'post_parent' => $parent_id, + 'post_parent' => $plugin->ID, 'orderby' => 'date', 'order' => 'DESC', ); @@ -514,7 +539,7 @@ function get_releases( $parent_id ) { * Get the previous version of a plugin. * * @param WP_Post $release_post The current release post. - * @param WP_Post[] $release List of releases. + * @param WP_Post[] $releases List of releases. * * @return string|null The previous version of the plugin. */ @@ -549,7 +574,6 @@ function get_previous_version( $release_post, $releases ) { * @return WP_Post|null The latest release of the plugin. */ function get_latest_release( $plugin_id ) { - $releases = get_releases( $plugin_id ); if ( empty( $releases ) ) { @@ -575,8 +599,9 @@ function get_blueprint_url( $download_url ) { */ $blueprint = wp_json_encode( array( - 'login' => true, - 'steps' => array( + 'login' => true, + 'landingPage' => '/wp-admin/plugins.php', + 'steps' => array( array( 'step' => 'installPlugin', 'pluginData' => array( @@ -590,3 +615,151 @@ function get_blueprint_url( $download_url ) { return 'https://playground.wordpress.net/#' . base64_encode( $blueprint ); } + +/** + * Get the link to the revision log for a set of commits. + * + * @param array $commits The commits to get the log link for. + * + * @return string The link to the revision log. + */ +function get_revision_log_link( $commits ) { + $plugin_slug = get_plugin_slug(); + + $base_url = sprintf( + 'https://plugins.trac.wordpress.org/log/%s/trunk', + $plugin_slug + ); + + if ( count( $commits ) < 2 ) { + return $base_url; + } + + $latest_commit = reset( $commits ); + $earliest_commit = end( $commits ); + + return sprintf( + '%1$s?rev=%2$s&stop_rev=%3$s', + $base_url, + $latest_commit['revision'], + $earliest_commit['revision'], + ); +} + +/** + * Get the link to the revision log for a set of commits. + * + * @param array $commits The commits to get the log link for. + * + * @return string The link to the revision log. + */ +function get_revision_changeset_link( $commits ) { + global $post; + + $plugin_slug = get_plugin_slug(); + + if ( count( $commits ) < 2 ) { + return sprintf( + 'https://plugins.trac.wordpress.org/log/%s/trunk', + $plugin_slug + ); + } + + $latest_commit = reset( $commits ); + $earliest_commit = end( $commits ); + + return sprintf( + 'https://plugins.trac.wordpress.org/changeset?new=%2$s@%1$s/trunk&old=%3$s@%1$s/trunk', + $plugin_slug, + $earliest_commit['revision'], + $latest_commit['revision'], + ); +} + +/** + * Formats plugin check results into an HTML list. + * + * @param array $results The plugin check results. + * @return string HTML formatted results. + */ +function format_plugin_check_results( $results ) { + if ( empty( $results ) ) { + return '

    ' . __( 'No issues found.', 'wporg-plugins' ) . '

    '; + } + + $output = '
      '; + + foreach ( $results as $result ) { + $type_class = isset( $result['type'] ) ? strtolower( $result['type'] ) : ''; + + $output .= sprintf( + '
    • %1$s %2$s
    • ', + esc_html( $result['message'] ), + ! empty( $result['docs'] ) + ? sprintf( + '%s', + esc_url( $result['docs'] ), + __( 'More Information', 'wporg-plugins' ) + ) + : '' + ); + } + + $output .= '
    '; + + return $output; +} + +/** + * Get the test run message. + * + * @param object $plugin_check_errors The plugin check errors. + * + * @return string The test run message. + */ +function get_test_run_message( $plugin_check_errors ) { + $plugin_check_link = sprintf( + '%s', + esc_url( 'https://wordpress.org/plugins/plugin-check' ), + esc_html__( 'Plugin Check (PCP)', 'wporg-plugins' ) + ); + + if ( $plugin_check_errors['verdict'] ) { + return sprintf( + /* translators: %1$s is a link to the Plugin Check (PCP) tool. */ + __( '%1$s found no issues.', 'wporg-plugins' ), + $plugin_check_link + ); + } + + $result_count = count( $plugin_check_errors['results'] ); + $message = sprintf( + /* translators: %s number of issues reported from test. */ + _n( '%s issue', '%s issues', $result_count, 'wporg-plugins' ), + $result_count + ); + + return sprintf( + '
    %1$s%2$s
    ', + sprintf( + /* translators: %1$s is a link to the Plugin Check (PCP) tool. */ + __( '%1$s completed with %2$s.', 'wporg-plugins' ), + $plugin_check_link, + $message + ), + format_plugin_check_results( $plugin_check_errors['results'] ), + ); +} + +/** + * Get the download link for a plugin. + * + * @param string $version The version of the plugin to download. + * + * @return string The download link for the plugin. + */ +function get_download_link( $version ) { + $plugin = get_plugin(); + + return Template::download_link( $plugin , $version ); +} \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/inc/block-config.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/inc/block-config.php index e068abf643..e4a95e0aa5 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/inc/block-config.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/inc/block-config.php @@ -7,7 +7,6 @@ use WordPressdotorg\Plugin_Directory\Tools; -add_action( 'init', __NAMESPACE__ . '\handle_publish_action' ); add_filter( 'wporg_block_navigation_menus', __NAMESPACE__ . '\add_site_navigation_menus' ); add_filter( 'wporg_query_filter_options_sort', __NAMESPACE__ . '\wporg_query_filter_options_sort' ); add_filter( 'wporg_query_filter_options_business_model', __NAMESPACE__ . '\wporg_query_filter_options_business_model' ); @@ -31,14 +30,14 @@ function add_site_navigation_menus( $menus ) { $url = 'https://' . $_SERVER['HTTP_HOST'] . parse_url( $_SERVER['REQUEST_URI'], PHP_URL_PATH ); $items = array( - 'plugins' => array( + 'plugins' => array( array( 'label' => __( 'Submit a plugin', 'wporg-plugins' ), - 'url' => '/developers/', + 'url' => '/developers/', ), array( - 'label' => __( 'My favorites', 'wporg-plugins' ), - 'url' => '/browse/favorites/', + 'label' => __( 'My favorites', 'wporg-plugins' ), + 'url' => '/browse/favorites/', 'className' => 'has-separator', ), ), @@ -49,7 +48,7 @@ function add_site_navigation_menus( $menus ) { ), array( 'label' => __( 'Community', 'wporg-plugins' ), - 'url' => is_search() ? esc_url( get_search_link() . '?plugin_business_model=community' ) : esc_url( $url . '?plugin_business_model=community' ), + 'url' => is_search() ? esc_url( get_search_link() . '?plugin_business_model=community' ) : esc_url( $url . '?plugin_business_model=community' ), 'term' => get_term_by( 'slug', 'community', 'plugin_business_model' ), ), array( @@ -74,15 +73,15 @@ function add_site_navigation_menus( $menus ) { 'label' => __( 'Popular', 'wporg-plugins' ), 'term' => get_term_by( 'slug', 'popular', 'plugin_section' ), ),*/ - ) + ), ); if ( ! is_user_logged_in() ) { global $wp; - $redirect_url = home_url( $wp->request ); + $redirect_url = home_url( $wp->request ); $items['plugins'][] = array( 'label' => __( 'Log in', 'wporg-plugins' ), - 'url' => wp_login_url( $redirect_url ), + 'url' => wp_login_url( $redirect_url ), ); } @@ -108,7 +107,7 @@ function wporg_query_filter_options_sort() { global $wp_query; $orderby = strtolower( $wp_query->query['orderby'] ?? '' ); $order = strtolower( $wp_query->query['order'] ?? '' ); - $sort = $orderby . ( $order ? '_' . $order : '' ); + $sort = $orderby . ( $order ? '_' . $order : '' ); $options = array( 'relevance' => __( 'Relevance', 'wporg-plugins' ), @@ -140,7 +139,7 @@ function wporg_query_filter_options_sort() { 'key' => 'orderby', 'action' => '', 'options' => $options, - 'selected' => [ $sort ], + 'selected' => array( $sort ), ); } @@ -150,7 +149,7 @@ function wporg_query_filter_options_business_model() { 'commercial' => __( 'Commercial', 'wporg-plugins' ), 'community' => __( 'Community', 'wporg-plugins' ), ); - $label = __( 'Type', 'wporg-plugins' ); + $label = __( 'Type', 'wporg-plugins' ); if ( get_query_var( 'plugin_business_model' ) && isset( $options[ get_query_var( 'plugin_business_model' ) ] ) ) { $label = sprintf( __( 'Type: %s', 'wporg-plugins' ), $options[ get_query_var( 'plugin_business_model' ) ] ); } @@ -160,25 +159,25 @@ function wporg_query_filter_options_business_model() { 'title' => __( 'Type', 'wporg-plugins' ), 'key' => 'plugin_business_model', 'action' => '', - 'options' => $options , - 'selected' => [ get_query_var( 'plugin_business_model' ) ], + 'options' => $options, + 'selected' => array( get_query_var( 'plugin_business_model' ) ), ); } function wporg_query_filter_options_plugin_category() { - $options = []; + $options = array(); - foreach ( get_terms( 'plugin_category', [ 'hide_empty' => true ] ) as $term ) { + foreach ( get_terms( 'plugin_category', array( 'hide_empty' => true ) ) as $term ) { $options[ $term->slug ] = $term->name; } - + $count = count( (array) get_query_var( 'plugin_category' ) ); $label = sprintf( /* translators: The dropdown label for filtering, %s is the selected term count. */ _n( 'Categories %s', 'Categories %s', number_format_i18n( $count ), 'wporg-plugins' ), $count ); - + return array( 'label' => $label, 'title' => __( 'Category', 'wporg-plugins' ), @@ -229,10 +228,9 @@ function wporg_query_filter_in_form( $key ) { } // Temporary for feature flag - if ( isset( $_GET['show_filters'] ) ) { + if ( isset( $_GET['show_filters'] ) ) { echo ''; } - } function wporg_query_total_label( $label, $count ) { @@ -272,8 +270,8 @@ function wporg_query_total_label( $label, $count ) { */ function get_favorite_settings( $settings, $post_id ) { return array( - 'is_favorite' => Tools::favorited_plugin( $post_id ), - 'add_callback' => function( $_post_id ) { + 'is_favorite' => Tools::favorited_plugin( $post_id ), + 'add_callback' => function ( $_post_id ) { $result = (bool) Tools::favorite_plugin( $_post_id, get_current_user_id(), true ); // `favorite_plugin` can return false for a number of reasons (not logged in, no plugin found, ) if ( ! $result ) { @@ -281,7 +279,7 @@ function get_favorite_settings( $settings, $post_id ) { } return $result; }, - 'delete_callback' => function( $_post_id ) { + 'delete_callback' => function ( $_post_id ) { $result = (bool) Tools::favorite_plugin( $_post_id, get_current_user_id(), false ); // `favorite_plugin` can return false for a number of reasons (not logged in, no plugin found, ) if ( ! $result ) { @@ -313,7 +311,7 @@ function set_rating_data( $data, $post_id ) { /** * Why do we multiply the average rating by 20? - * The themes API does it this way, and the rating plugin was built to fit that. + * The themes API does it this way, and the rating plugin was built to fit that. * Instead of redoing everything, multiplying here keeps things simple and works well. * * @see theme-directory/class-themes-api.php for more info. @@ -321,10 +319,10 @@ function set_rating_data( $data, $post_id ) { $adjusted_rating = $rating * 20; return array( - 'rating' => $adjusted_rating, + 'rating' => $adjusted_rating, 'ratingsCount' => array_sum( $ratings ), - 'ratings' => $ratings, - 'supportUrl' => esc_url( 'https://wordpress.org/support/plugin/' . $post->post_name . '/reviews/' ) + 'ratings' => $ratings, + 'supportUrl' => esc_url( 'https://wordpress.org/support/plugin/' . $post->post_name . '/reviews/' ), ); } @@ -338,7 +336,8 @@ function filter_search_block( $block_content ) { // Remove the required attribute $block_content = preg_replace( '/(]*)\s+required\s*([^>]*)>/', '$1$2>', $block_content ); - /* Temporarily disable this until filters are enabled. + /* + Temporarily disable this until filters are enabled. // Insert the current query filters into the search form. ob_start(); wporg_query_filter_in_form( 's' ); @@ -368,9 +367,9 @@ function filter_site_title_block( $block_content ) { /** * Filter the navigation to add the current item indicator when no business model is selected. - * + * * @param string $block_content - * @param array $block + * @param array $block * @return string */ function filter_navigation_block( $block_content, $block ) { @@ -383,10 +382,10 @@ function filter_navigation_block( $block_content, $block ) { if ( get_query_var( 'plugin_business_model' ) ) { - // The menu doesn't select properly if viewing /tags/ or /browse/. + // The menu doesn't select properly if viewing /tags/ or /browse/. if ( get_query_var( 'browse' ) || get_query_var( 'plugin_tags' ) ) { $tags = new \WP_HTML_Tag_Processor( $block_content ); - + while ( $tags->next_tag( 'li' ) ) { $tags->set_bookmark( 'parent-li' ); $tags->next_tag( 'a' ); @@ -421,9 +420,9 @@ function filter_navigation_block( $block_content, $block ) { /** * Increase the visibilit of the language suggest bar to recruit translators on plugin page. - * + * * @see https://github.com/WordPress/wordpress.org/issues/301 - * + * * @param string $block_content * @return string */ @@ -438,21 +437,14 @@ function filter_language_suggest( $block_content ) { return $html->get_updated_html(); } -/** - * Handle form that publishes or discards a release. - */ -function handle_publish_action() { - if ( isset( $_POST['publish_release_nonce'] ) && wp_verify_nonce( $_POST['publish_release_nonce'], 'publish-release-action' ) ) { - if ( 'publish' === $_POST['action'] ) { - var_dump('publish: not yet implemented'); - } elseif ('discard' === $_POST['action']) { - var_dump('discard: not yet implemented'); - } - } -} - /* * Filter the query to show only the children of the plugin. + * + * @param array $query The query arguments. + * @param string $block The block name. + * @param WP_Post $page The current page. + * + * @return array */ function modify_block_query_var( $query, $block, $page ) { if ( 'plugin_release' !== $query['post_type'] ) { diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/patterns/releases-list.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/patterns/releases-list.php new file mode 100644 index 0000000000..4dd778abe5 --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/patterns/releases-list.php @@ -0,0 +1,49 @@ + + + +
    + + +
    + +
    + +
    + + +
    + + + +
    + +
    + +
    + + +
    + + + + + + + + + + +

    + + + +
    + diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-confirmation/block.json b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/card/block.json similarity index 67% rename from wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-confirmation/block.json rename to wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/card/block.json index 89f4a9bf8b..be5a2f5c8f 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-confirmation/block.json +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/card/block.json @@ -1,14 +1,19 @@ { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 2, - "name": "wporg/release-confirmation", + "name": "wporg/card", "version": "0.1.0", - "title": "Release Confirmation Banner.", + "title": "Release Card", "category": "design", "icon": "", - "description": "A block to display release confirmation banner.", + "description": "A block to display a card.", "textdomain": "wporg", - "attributes": {}, + "attributes": { + "title": { + "type": "string", + "default": "" + } + }, "supports": { "html": false, "interactivity": true diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-check-item/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/card/index.js similarity index 100% rename from wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-check-item/index.js rename to wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/card/index.js diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-date/index.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/card/index.php similarity index 66% rename from wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-date/index.php rename to wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/card/index.php index 0f4c00008a..2e69df2f57 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-date/index.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/card/index.php @@ -1,12 +1,12 @@ +
    + +

    + {$block->attributes['title']} +

    + + $content +
    + +HTML; + +$output = sprintf( + '
    %2$s
    ', + wp_kses_data( get_block_wrapper_attributes() ), + $html, +); + +echo do_blocks( $output ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/card/style.scss b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/card/style.scss new file mode 100644 index 0000000000..383d5f834b --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/card/style.scss @@ -0,0 +1,4 @@ +.wp-block-wporg-release-draft { + font-size: var(--wp--preset--font-size--small); + +} \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-checks/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-checks/render.php index b7a4b97b90..de7a1aa6b5 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-checks/render.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-checks/render.php @@ -1,8 +1,12 @@ ' . __( 'No issues found.', 'wporg-plugins' ) . '

    '; - } - - $output = '
      '; - - foreach ( $results as $result ) { - $type_class = isset( $result['type'] ) ? strtolower( $result['type'] ) : ''; - - $output .= sprintf( - '
    • %1$s %2$s
    • ', - esc_html( $result['message'] ), - ! empty( $result['docs'] ) - ? sprintf( - '%s', - esc_url( $result['docs'] ), - __( 'More Information', 'wporg-plugins' ) - ) - : '' - ); - } - - $output .= '
    '; - - return $output; -} - -/** - * Get the counts of each error type. - * - * @param array $result The plugin check result. - * - * @return array Array of error type counts. - */ -function get_error_type_counts( $result ) { - return array_reduce( - $result ?? array(), - function ( $carry, $item ) { - if ( isset( $item['type'] ) ) { - $carry[ $item['type'] ] = ( $carry[ $item['type'] ] ?? 0 ) + 1; - } - return $carry; - }, - array( - 'ERROR' => 0, - 'WARNING' => 0, - ) - ); -} - -/** - * Get the test run message. - * - * @param object $plugin_check_errors The plugin check errors. - * - * @return string The test run message. - */ -function get_test_run_message( $plugin_check_errors ) { - - $plugin_check_link = sprintf( - '%s', - esc_url( 'https://wordpress.org/plugins/plugin-check' ), - esc_html__( 'Plugin Check (PCP)', 'wporg-plugins' ) - ); - - if ( $plugin_check_errors->verdict ) { - return sprintf( - /* translators: %1$s is a link to the Plugin Check (PCP) tool. */ - __( 'Passed the %1$s.', 'wporg-plugins' ), - $plugin_check_link - ); - } - - $counts = get_error_type_counts( $plugin_check_errors['results'] ); - - $error_message = sprintf( _n( '%s error', '%s errors', $counts['ERROR'], 'wporg-plugins' ), $counts['ERROR'] ); - $warning_message = sprintf( _n( '%s warning', '%s warnings', $counts['WARNING'], 'wporg-plugins' ), $counts['WARNING'] ); - $message = ''; - - if ( empty( $counts['ERROR'] ) ) { - $message = $warning_message; - } elseif ( empty( $counts['WARNING'] ) ) { - $message = $error_message; - } else { - /* translators: %1$s: number of errors, %2$s: number of warnings */ - $message = sprintf( - '%1$s and %2$s', - $error_message, - $warning_message - ); - } - - return sprintf( - '
    %1$s%2$s
    ', - sprintf( - /* translators: %1$s is a link to the Plugin Check (PCP) tool. */ - __( '%1$s completed with %2$s.', 'wporg-plugins' ), - $plugin_check_link, - $message - ), - format_plugin_check_results( $plugin_check_errors['results'] ), - ); -} - $plugin_check_errors = get_post_meta( get_post( $block->context['postId'] )->ID, 'plugin_check_result', true ); $heading = sprintf( @@ -143,8 +36,8 @@ function get_test_run_message( $plugin_check_errors ) { // Create a block with the overall status. $status_block = sprintf( - '%2$s', - $plugin_check_errors->verdict ? 'success' : 'error', + '%2$s', + $plugin_check_errors['verdict'] ? 'success' : 'warning', get_test_run_message( $plugin_check_errors ) ); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-commits/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-commits/render.php index 1f7388593b..827e1b442e 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-commits/render.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-commits/render.php @@ -6,10 +6,7 @@ */ use WordPressdotorg\Plugin_Directory\Readme\Validator as Readme_Validator; - -if ( ! current_user_can( 'plugin_admin_edit', $post ) ) { - return; -} +use function WordPressdotorg\Plugin_Directory\Theme\{get_plugin_slug, get_revision_log_link}; if ( ! $block->context['postId'] ) { return; @@ -21,79 +18,16 @@ return '

    ' . __( 'No commits found.', 'wporg-plugins' ) . '

    '; } -/** - * Count the number of files edited, added, and deleted in the given commits. - * - * @param array $commits Array of commits. - * @return array Associative array with keys 'edited', 'added', and 'deleted'. - */ -function count_file_changes( $commits ) { - $file_actions = array(); - - ksort( $commits ); - - foreach ( $commits as $commit ) { - if ( ! isset( $commit['actions'] ) || ! is_array( $commit['actions'] ) ) { - continue; - } - - foreach ( $commit['actions'] as $file_path => $action ) { - $file_actions[ $file_path ] = $action; - } - } - - $edited_files = array(); - $added_files = array(); - $deleted_files = array(); - - foreach ( $file_actions as $file_path => $action ) { - switch ( $action ) { - case 'M': - $edited_files[ $file_path ] = true; - break; - case 'A': - $added_files[ $file_path ] = true; - break; - case 'D': - $deleted_files[ $file_path ] = true; - break; - } - } - - return array( - 'edited' => count( $edited_files ), - 'added' => count( $added_files ), - 'deleted' => count( $deleted_files ), - ); -} - -/** - * Generate a summary of the changes made in the given commits. - * - * @param array $change_counts Associative array with keys 'edited', 'added', and 'deleted'. - * @return string Summary of the changes. - */ -function generate_summary( $change_counts ) { - $parts = array(); - - if ( $change_counts['added'] > 0 ) { - $parts[] = sprintf( '%d added', $change_counts['added'] ); - } - - if ( $change_counts['deleted'] > 0 ) { - $parts[] = sprintf( '%d deleted', $change_counts['deleted'] ); - } - - if ( $change_counts['edited'] > 0 ) { - $parts[] = sprintf( '%d edited', $change_counts['edited'] ); +// Newest commits first. +usort( + $commits, + function ( $a, $b ) { + return $b['date'] <=> $a['date']; } +); - if ( empty( $parts ) ) { - return ''; - } - - return implode( ', ', $parts ); -} +$maximum_commits = 5; +$sliced_commits = array_slice( $commits, 0, $maximum_commits ); ?> @@ -107,54 +41,59 @@ function generate_summary( $change_counts ) { esc_attr__( 'Commits', 'wporg-plugins' ) ); - $change_counts = count_file_changes( $commits ); - $summary = generate_summary( $change_counts ); - - $subheading = sprintf( - ' - - ', - $summary - ); - echo do_blocks( $heading ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped - echo do_blocks( $subheading ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?> -
      +
      • - - ID, 20 ); ?> - display_name ); ?> - - context['postId'] ); - $parent_post = get_post( $release_post->post_parent ); + printf( + '%2$s', + esc_url( + sprintf( + 'https://plugins.trac.wordpress.org/changeset/%1$s/%2$s/trunk', + $commit['revision'], + get_plugin_slug() + ) + ), + esc_html( $commit['message'] ) + ); + ?> + - if ( $parent_post ) { + -
      • + + + $maximum_commits ) : ?> +
      • + + + +
      • +
    diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-commits/style.scss b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-commits/style.scss index 90f8d10051..dde5a9ffd6 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-commits/style.scss +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-commits/style.scss @@ -1,16 +1,17 @@ .wp-block-wporg-release-commits { margin-top: 0 !important; +} - ul { - display: flex; - flex-direction: column; - gap: 8px; - list-style: none; - } +.wp-block-wporg-release-commit-list { + display: flex; + flex-direction: column; + gap: 8px; + list-style: none; li { display: flex; - gap: 8px; + gap: inherit; + align-items: center; } } @@ -19,4 +20,13 @@ align-items: center; gap: 8px; font-weight: 500; +} + +.wp-block-wporg-release-commit-by-line { + color: var(--wp--preset--color--charcoal-4) !important; + font-size: 12px; + + a { + color: var(--wp--preset--color--charcoal-4) !important; + } } \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-confirmation/index.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-confirmation/index.php deleted file mode 100644 index 8e7d5b81af..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-confirmation/index.php +++ /dev/null @@ -1,22 +0,0 @@ -context['postId'] ) { - return; -} - -$release_post = get_post( $block->context['postId'] ); -if ( ! $release_post ) { - return; -} - -?> -
    > - - - -
    -

    - - - -

    - - - -
    -
    - -
    - -
    - -
    -
    - - -
    - -
    diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-confirmation/style.scss b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-confirmation/style.scss deleted file mode 100644 index cd1d58a3aa..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-confirmation/style.scss +++ /dev/null @@ -1,4 +0,0 @@ -.wp-block-wporg-release-confirmation .wporg-release-confirmation-actions { - display: flex; // I'm not sure why they are not working. - gap: 8px; -} \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-date/block.json b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-date/block.json deleted file mode 100644 index f27b4236b9..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-date/block.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "$schema": "https://schemas.wp.org/trunk/block.json", - "apiVersion": 2, - "name": "wporg/release-date", - "version": "0.1.0", - "title": "Release Date", - "category": "design", - "icon": "", - "description": "A block to display release date.", - "textdomain": "wporg", - "attributes": {}, - "supports": { - "html": false - }, - "usesContext": [ "postId" ], - "editorScript": "file:./index.js", - "render": "file:./render.php", - "style": "file:./style-index.css" -} \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-date/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-date/index.js deleted file mode 100644 index 9e4580b21f..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-date/index.js +++ /dev/null @@ -1,27 +0,0 @@ -/** - * WordPress dependencies - */ -import { Disabled } from '@wordpress/components'; -import { registerBlockType } from '@wordpress/blocks'; -import ServerSideRender from '@wordpress/server-side-render'; -import { useBlockProps } from '@wordpress/block-editor'; - -/** - * Internal dependencies - */ -import metadata from './block.json'; - -function Edit( { attributes, name } ) { - return ( -
    - - - -
    - ); -} - -registerBlockType( metadata.name, { - edit: Edit, - save: () => null, -} ); \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-date/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-date/render.php deleted file mode 100644 index 9a98437739..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-date/render.php +++ /dev/null @@ -1,16 +0,0 @@ -context['postId'] ) { - return; -} - -$post = get_post( $block->context['postId'] ); -if ( ! $post ) { - return; -} - -if ( 'publish' !== $post->post_status ) { - return 3; -} - -echo do_blocks( '' ); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-details-form/index.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-details-form/index.php deleted file mode 100644 index d2b7cbe0a4..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-details-form/index.php +++ /dev/null @@ -1,22 +0,0 @@ -context['postId'] ); +$plugin_post = get_post( $block->context['postId'] ); -if ( ! $post ) { +if ( ! $plugin_post ) { return; } -// get release for the post +/** + * We are in the context of the plugin post, so we can query for the latest draft post. + */ $query_args = array( 'post_type' => 'plugin_release', 'posts_per_page' => 1, - 'post_parent' => $post->ID, + 'post_parent' => $plugin_post->ID, 'orderby' => 'date', 'post_status' => 'draft', 'order' => 'DESC', @@ -32,82 +39,39 @@ // Fetch the latest draft post. $latest_draft_query->the_post(); -$post_title = __( 'Trunk', 'wporg-plugins' ); -$intro_text = __( 'There are unpublished changes in your trunk folder.', 'wporg-plugins' ); -$publish_title = __( 'Create release', 'wporg-plugins' ); -$publish_intro_text = __( 'Before releasing your plugin, take a moment to verify and update the following values:', 'wporg-plugins' ); -$publish_button_text = __( 'Create release', 'wporg-plugins' ); +$post_title = __( 'Trunk', 'wporg-plugins' ); +$intro_text = __( 'There are unpublished changes in your trunk folder.', 'wporg-plugins' ); +$button_text = __( 'Create release', 'wporg-plugins' ); +$publish_title = __( 'Create release', 'wporg-plugins' ); $markup = << - -
    - -
    - -
    +
    + + +

    $intro_text

    + - -
    - -

    - $post_title -

    - - -
    - + + - -

    $intro_text

    - - -
    - -
    - - - -
    - - -
    - -
    + +
    -
    - +
    -
    - -
    - -
    - -

    - $publish_title -

    - -
    - - - -

    $publish_intro_text

    - - - -
    - +
    + + +
    - HTML; printf( diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-draft/style.scss b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-draft/style.scss index a7adf4781e..383d5f834b 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-draft/style.scss +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-draft/style.scss @@ -1,11 +1,4 @@ .wp-block-wporg-release-draft { font-size: var(--wp--preset--font-size--small); - ul { - margin-top: var(--wp--preset--spacing--10); - padding: 0; - display: flex; - flex-direction: column; - gap: 12px; - } } \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-menu-options/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-menu-options/render.php index 4eda65229d..61f288f3e5 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-menu-options/render.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-menu-options/render.php @@ -1,7 +1,11 @@ context['postId'] ) { return; @@ -13,43 +17,41 @@ } $current_version = get_post_meta( $release_post->ID, 'release_version', true ); - -$download_link = sprintf( +$download_link = get_download_link( $release_post->post_parent, $current_version ); +$download_link_html = sprintf( '', - esc_html( 'Download', 'wporg-plugins' ), - esc_url( get_blueprint_url( Template::download_link( $release_post->post_parent, $current_version ) ) ) + __( 'Download', 'wporg-plugins' ), + esc_url( $download_link ) ); -$blueprint_link = sprintf( +$blueprint_link_html = sprintf( '', - esc_html( 'Load in Playground', 'wporg-plugins' ), - esc_url( $encoded_blueprint_url ) + __( 'Load in Playground', 'wporg-plugins' ), + esc_url( get_blueprint_url( get_download_link( $current_version ) ) ) ); -$changes_link = ''; -$releases = get_releases( $release_post->post_parent ); +$changes_link_html = ''; +$releases = get_releases(); $previous_version = get_previous_version( $release_post, $releases ); if ( null !== $previous_version ) { - $changes_link = sprintf( + $changes_link_html = sprintf( '', - esc_html( 'View changes', 'wporg-plugins' ), - esc_url( get_trac_changeset_link( $release_post->post_parent, $previous_version, $current_version ) ) + __( 'View changes', 'wporg-plugins' ), + esc_url( get_trac_changeset_link( $previous_version, $current_version ) ) ); } -$submenu = sprintf( - '%2$s%3$s%4$s', - esc_html( 'Release options', 'wporg-plugins' ), - $download_link, - $blueprint_link, - $changes_link -); - $navigation = sprintf( '%2$s', - esc_html( 'Release options', 'release options label', 'wporg-plugins' ), - $submenu + __( 'Release options', 'wporg-plugins' ), + sprintf( + '%2$s%3$s%4$s', + __( 'Release options', 'wporg-plugins' ), + $download_link_html, + $blueprint_link_html, + $changes_link_html + ) ); -echo do_blocks( $navigation ); +echo do_blocks( $navigation ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-page/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-page/render.php index 878b57533b..f939f21d4b 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-page/render.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-page/render.php @@ -1,88 +1,55 @@ context['postId'] ) { return; } -$release_post = get_post( $post->ID ); +$plugin_post = get_post( $block->context['postId'] ); -if ( ! $release_post ) { +if ( ! $plugin_post ) { return; } -// Why use `do_blocks` here? for some reason, just outputting the content directly doesn't work and context gets messed up. +$heading_text = __( 'Releases', 'wporg-plugins' ); + $markup = << -

    Releases

    +

    $heading_text

    -
    - - - - - - -
    - - -
    - -
    - -
    - - -
    - - - -
    - -
    - -
    - - -
    - - - - - - - - - - -

    There are no releases yet

    - - +
    + + + -
    - +
    HTML; - -// Interactivity API context -$form_context = array( - 'btnDefaultText' => 'Publish release', - 'btnLoadingText' => 'Publishing...', - 'preSubmitting' => false, - 'isWaiting' => false, - 'isComplete' => false, - 'errorMessage' => '', - 'pluginSlug' => $release_post->post_name, - 'nonce' => wp_create_nonce( 'wp_rest' ) +/** + * Create initial state for the async-action-block. + */ +wp_interactivity_state( + 'async-action-block', + array( + 'isCreatingRelease' => false, + ) ); +/** + * Create initial context for the async-action-block. + */ + printf( - '
    %4$s
    ', - 'data-wp-interactive="async-action-block"', + '
    %3$s
    ', wp_kses_data( get_block_wrapper_attributes() ), - wp_interactivity_data_wp_context( $form_context ), // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped + 'data-wp-interactive="async-action-block"', do_blocks( $markup ) // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-page/view.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-page/view.js index 90ba4e75a9..5047ca83e2 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-page/view.js +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-page/view.js @@ -4,17 +4,10 @@ import { store, getContext } from '@wordpress/interactivity'; const { state } = store('async-action-block', { - state: { - get btnText() { - const { btnDefaultText, btnLoadingText } = getContext(); - - return state.isWaiting ? btnLoadingText : btnDefaultText; - }, - }, actions: { handlePreSubmit(event) { event.preventDefault(); - state.preSubmitting = true; + state.isCreatingRelease = true; const element = document.querySelector( '.wp-block-wporg-release-page' @@ -27,49 +20,5 @@ const { state } = store('async-action-block', { }); } }, - handleBackClick(event) { - event.preventDefault(); - state.preSubmitting = false; - }, - *handleSubmit(event) { - // Prevent default form submission - event.preventDefault(); - - debugger; - - // Set waiting state - state.isWaiting = true; - state.errorMessage = ''; - - const { pluginSlug, nonce, homeUrl } = getContext(); - - try { - const response = yield fetch( - '/plugins/wp-json/plugins/v2/plugin/clapback/release', - { - method: 'POST', - headers: { - 'Content-Type': 'application/json', - 'X-WP-Nonce': nonce, - }, - body: JSON.stringify({ - plugin_slug: pluginSlug, - }), - } - ); - - const data = yield response.json(); - - // Update state based on response - if (data.success) { - } else { - state.errorMessage = data.message || 'Action failed'; - } - } catch (error) { - state.errorMessage = 'Network error occurred'; - } finally { - state.isWaiting = false; - } - }, }, }); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-details-form/block.json b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-publish/block.json similarity index 55% rename from wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-details-form/block.json rename to wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-publish/block.json index f0634c46e0..72cf2534ae 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-details-form/block.json +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-publish/block.json @@ -1,20 +1,21 @@ { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 2, - "name": "wporg/release-details-form", + "name": "wporg/release-publish", "version": "0.1.0", - "title": "Release Details Form", + "title": "Release Publish", "category": "design", "icon": "", - "description": "A block to display release details form.", + "description": "A block to display release publish view.", "textdomain": "wporg", "attributes": {}, "supports": { "html": false, "interactivity": true }, - "usesContext": [ "postId" ], + "usesContext": [ "postId", "pluginSlug" ], "editorScript": "file:./index.js", "render": "file:./render.php", - "style": "file:./style-index.css" + "style": "file:./style-index.css", + "viewScriptModule": "file:./view.js" } \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-confirmation/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-publish/index.js similarity index 100% rename from wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-confirmation/index.js rename to wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-publish/index.js diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-status/index.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-publish/index.php similarity index 74% rename from wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-status/index.php rename to wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-publish/index.php index 20c2397bf2..52957ada81 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-status/index.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-publish/index.php @@ -1,12 +1,12 @@ context['postId'] ) ) { + return; +} + +$release_post = get_post( $block->context['postId'] ); + +// Bail if the release post does not exist. +if ( ! $release_post ) { + return; +} + +$current_version = get_post_meta( $block->context['postId'], 'release_version', true ); +$tested_up_to = '6.7';// get_post_meta( $block->context['postId'], 'release_tested', true ); + +/** + * Returns whether the tested_up_to value is recent. + * + * @param string $tested_up_to The tested up to value. + * + * @return bool Whether the tested up to value is recent. + */ +function has_recently_been_tested( $tested_up_to ) { + global $wp_version; + + // If the tested up to value is empty, it's not recent. + if ( empty( $tested_up_to ) ) { + return false; + } + + $latest_release = $wp_version; + + if ( defined( 'WP_CORE_STABLE_BRANCH' ) ) { + $latest_release = WP_CORE_STABLE_BRANCH; + } + + $tested_major = (int) explode( '.', $tested_up_to )[0]; + $latest_major = (int) explode( '.', $latest_release )[0]; + + return $tested_major >= $latest_major; +} + +/** + * Generate the HTML for a release item content block. + * + * @param string $label The label for the item. + * @param string $content The additional content or description. + * @return string The formatted HTML content for the release item. + */ +function get_release_item_content( $label, $content ) { + return sprintf( + '
    %1$s
    %2$s
    ', + esc_html( $label ), + wp_kses_post( $content ) + ); +} + +/** + * Generate a release check item block with a specific status. + * + * @param string $status The status of the check item ('success' or 'error'). + * @param string $content The content to display inside the block. + * @return string The formatted block content. + */ +function get_release_check_item( $status, $content ) { + return do_blocks( + sprintf( + '%2$s', + esc_attr( $status ), + $content + ) + ); +} + +/** + * Generate the block content for the version number check item. + * + * @param bool $verdict Whether the version number is valid. + * @param string $value The current version number. + * + * @return string The block content. + */ +function get_changelog_check_item() { + $label = __( 'Update your changelog with key changes.', 'wporg-plugins' ); + $info_text = sprintf( + 'Learn more about writing useful changelogs.', + esc_url( 'https://developer.wordpress.org/plugins/wordpress-org/plugin-developer-faq/#what-should-be-in-my-changelog' ), + ); + + $content = get_release_item_content( $label, $info_text ); + + return get_release_check_item( 'default', $content ); +} + +/** + * Generate the block content for the version number check item. + * + * @param bool $verdict Whether the version number is valid. + * @param string $value The current version number. + * + * @return string The block content. + */ +function get_view_diff_check_item( $post ) { + $label = __( 'Review your changes.', 'wporg-plugins' ); + $commits = get_post_meta( $post->ID, 'release_commit_log', true ); + $info_text = sprintf( + /* translators: %s: URL to the plugin in the Plugin Directory */ + __( 'Double-check your changeset before publishing.', 'wporg-plugins' ), + esc_url( get_revision_changeset_link( $commits ) ) + ); + $content = get_release_item_content( $label, $info_text ); + + return get_release_check_item( 'default', $content ); +} + +/** + * Generate the block content for the version number check item. + * + * @param bool $verdict Whether the version number is valid. + * @param string $value The current version number. + * + * @return string The block content. + */ +function get_version_number_check_item( $verdict, $value ) { + $label = __( 'Increment your version number.', 'wporg-plugins' ); + + $info_text = sprintf( + /* translators: %s: The current version number */ + __( 'New version: %s', 'wporg-plugins' ), + '' . $value . '', + ); + + $status = ''; + + if ( ! $verdict ) { + $status = 'error'; + $info_text = sprintf( + /* translators: %s: The current version number */ + __( 'Your plugin\'s version number %s must be incremented before you can publish.', 'wporg-plugins' ), + '' . $value . '', + ); + } + + $content = get_release_item_content( $label, $info_text ); + + return get_release_check_item( $status, $content ); +} + +/** + * Generate the block content for the "Tested up to" check item. + * + * @param bool $verdict Whether the tested up to value is recent. + * @param string $value The tested up to value. + * + * @return string The block content. + */ +function get_tested_up_to_check_item( $verdict, $value ) { + $label = __( + 'Test your plugin with the latest version of WordPress.', + 'wporg-plugins' + ); + $status = ''; + + $info_text = sprintf( + /* translators: %s: The Tested Up to value */ + __( 'Tested up to: %s', 'wporg-plugins' ), + '' . $value . '', + ); + + if ( empty( $value ) ) { + $value = __( 'Unknown', 'wporg-plugins' ); + $status = 'error'; + $info_text = __( 'We weren\'t able to determine your "Tested up to" value.', 'wporg-plugins' ); + } elseif ( ! $verdict ) { + $status = 'warning'; + $info_text = sprintf( + /* translators: %s: URL to the plugin in the Plugin Directory */ + __( 'Tested up to is %1$s. Test it now in Playground and update your readme.txt. ', 'wporg-plugins' ), + '' . $value . '', + esc_url( + get_blueprint_url( + sprintf( + 'https://downloads.wordpress.org/plugin/%s.zip', + get_plugin_slug(), + ) + ) + ) + ); + } + + $content = get_release_item_content( $label, $info_text ); + + return get_release_check_item( $status, $content ); +} + +$latest_release = get_latest_release( $release_post->post_parent ); +$last_version = get_post_meta( $latest_release->ID, 'release_version', true ); +$version_pass = version_compare( $current_version, $last_version, '>' ); +$tested_up_to_pass = has_recently_been_tested( $tested_up_to ); + +$plugin_slug = get_plugin_slug(); +$form_context = array( + 'pluginSlug' => $plugin_slug, + 'nonce' => wp_create_nonce( 'wp_rest' ), + 'apiURL' => esc_url( rest_url( 'plugins/v2/plugin/' . $plugin_slug . '/publish' ) ), +); + +/** + * Create initial state for the async-action-block. + */ +wp_interactivity_state( + 'async-action-block', + array( + 'hasConfirmed' => false, + 'isPublishing' => false, + 'isPublished' => false, + 'hasError' => false, + 'errorMessage' => '', + ) +); + +?> + +
    + + > +
    + +

    %s

    + ', + __( 'Before releasing your plugin, make sure everything is up-to-date and ready for your users:', 'wporg-plugins' ) + ), + ); + ?> + +
    + +

    %s

    + ', + esc_html__( 'Checklist', 'wporg-plugins' ) + ) + ) + ?> +
      + + + + +
    + +
    + + +
    + +
    +
    + +
    + +
    + +
    +
    +
    +
    + +
    +
    + + +
    +
    + + +
    +

    +

    + +
    +
    + + + +
    +
    +
    + +
    + +
    +
    +

    +
    + ' + ); + ?> +
    +
    diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-publish/style.scss b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-publish/style.scss new file mode 100644 index 0000000000..c5b469231f --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-publish/style.scss @@ -0,0 +1,29 @@ +.wp-block-wporg-release-publish { + label { + display: block; + } + + .wp-block-wporg-release-result-item > div:last-child > div { + color: var(--wp--preset--color--charcoal-4); + } +} + +.wp-block-wporg-release-publish-user-confirm { + margin-top: var(--wp--preset--spacing--20); +} + +.wp-block-wporg-release-publish-actions { + display: flex; + margin-top: var(--wp--preset--spacing--20); + gap: 8px; + + button[disabled] { + opacity: 0.5; + } +} + +.wp-block-wporg-release-publish-spinner { + align-items: center; + display: flex; + gap: 6px; +} diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-publish/view.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-publish/view.js new file mode 100644 index 0000000000..8e18cb48f0 --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-publish/view.js @@ -0,0 +1,78 @@ +/** + * WordPress dependencies + */ +import { store, getContext } from '@wordpress/interactivity'; + +const { state } = store('async-action-block', { + state: { + get userHasConfirmed() { + return state.hasConfirmed; + }, + get isDefaultState() { + return ! state.isPublishing && !state.isPublished && !state.hasError; + }, + get isPublishingState() { + return state.isPublishing; + }, + get isPublishedState() { + return state.isPublished; + }, + }, + actions: { + handleReleaseConfirm() { + state.hasConfirmed = !state.hasConfirmed; + }, + handleBackClick(event) { + event.preventDefault(); + state.isCreatingRelease = false; + + // Make user reconfirm. + state.hasConfirmed = false; + }, + handlePageReload() { + window.location.reload(); + }, + *handleSubmit(event) { + event.preventDefault(); + + state.isPublishing = true; + state.errorMessage = ''; + + const { pluginSlug, nonce, apiURL } = getContext(); + + try { + const response = yield fetch( + apiURL, + { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + 'X-WP-Nonce': nonce, + }, + body: JSON.stringify({ + plugin_slug: pluginSlug, + }), + } + ); + + if( ! response.ok ) { + try { + const error = yield response.json(); + throw new Error( error.message ); + } catch ( error ) { // Handle cases where json is not returned, like a gateway timeout. + throw new Error( 'An error occurred while publishing the release.' ); + } + } + + state.isPublished = true; + + } catch (error) { + state.errorMessage = error.message; + state.hasError = true; + state.isPublishing = false; + } finally { + state.isPublishing = false; + } + }, + } +}); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-check-item/block.json b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-result-item/block.json similarity index 63% rename from wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-check-item/block.json rename to wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-result-item/block.json index 4751ae42a8..047300ee75 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-check-item/block.json +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-result-item/block.json @@ -1,18 +1,17 @@ { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 2, - "name": "wporg/release-check-item", + "name": "wporg/release-result-item", "version": "0.1.0", - "title": "Release Check Item", + "title": "Release Result Item", "category": "design", "icon": "", - "description": "A block to display release draft check item.", + "description": "A block to display release draft result item.", "textdomain": "wporg", "attributes": { "status": { "type": "string", - "enum": [ "error", "warning", "success" ], - "default": "success" + "enum": [ "error", "warning", "success" ] } }, "supports": { diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-details-form/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-result-item/index.js similarity index 100% rename from wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-details-form/index.js rename to wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-result-item/index.js diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-check-item/index.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-result-item/index.php similarity index 72% rename from wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-check-item/index.php rename to wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-result-item/index.php index fec62da587..d8c72264cd 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-check-item/index.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-result-item/index.php @@ -1,12 +1,12 @@ > +
    + attributes['status'] ) : ?> + + + + + + attributes['status'] ) : ?> + + + + attributes['status'] ) : ?> + + + + + + + +
    + + inner_html ); ?> + diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-check-item/style.scss b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-result-item/style.scss similarity index 51% rename from wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-check-item/style.scss rename to wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-result-item/style.scss index beed3b601f..0e833b1c26 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-check-item/style.scss +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-result-item/style.scss @@ -1,6 +1,6 @@ -.wp-block-wporg-release-check-item { +.wp-block-wporg-release-result-item { display: flex; - margin: 0 !important; + margin: 0 0 12px !important; position: relative; gap: 8px; list-style: none; @@ -11,3 +11,7 @@ align-items: center; } } + +ul .wp-block-wporg-release-result-item:last-child { + margin-bottom: 0; +} diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-status/block.json b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-status/block.json deleted file mode 100644 index 45fe373ab2..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-status/block.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "$schema": "https://schemas.wp.org/trunk/block.json", - "apiVersion": 2, - "name": "wporg/release-status", - "version": "0.1.0", - "title": "Release Status", - "category": "design", - "icon": "", - "description": "A block to display release status.", - "textdomain": "wporg", - "attributes": {}, - "supports": { - "html": false - }, - "usesContext": [ "postId" ], - "editorScript": "file:./index.js", - "render": "file:./render.php", - "style": "file:./style-index.css" -} \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-status/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-status/index.js deleted file mode 100644 index a52cd322ed..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-status/index.js +++ /dev/null @@ -1,28 +0,0 @@ -/** - * WordPress dependencies - */ -import { Disabled } from '@wordpress/components'; -import { registerBlockType } from '@wordpress/blocks'; -import ServerSideRender from '@wordpress/server-side-render'; -import { useBlockProps } from '@wordpress/block-editor'; - -/** - * Internal dependencies - */ -import metadata from './block.json'; -import './style.scss'; - -function Edit( { attributes, name } ) { - return ( -
    - - - -
    - ); -} - -registerBlockType( metadata.name, { - edit: Edit, - save: () => null, -} ); \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-status/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-status/render.php deleted file mode 100644 index 0517e2e2f2..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-status/render.php +++ /dev/null @@ -1,19 +0,0 @@ -context['postId'] ) { - return; -} - -$post = get_post( $block->context['postId'] ); -if ( ! $post ) { - return; -} - -if('draft' != $post->post_s) { - return; -} -?> - -
    > - post_status )->label; ?> -
    diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-status/style.scss b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-status/style.scss deleted file mode 100644 index d89d64b6f6..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-status/style.scss +++ /dev/null @@ -1,6 +0,0 @@ -.wp-block-wporg-release-status { - padding: 2px 10px; - border: 1px solid var(--wp--preset--color--blueberry-3); - font-size: var(--wp--preset--font-size--extra-small); - border-radius: var(--wp--custom--button--border--radius); -} \ No newline at end of file From 7caa48e124e9e98c84cf6e1160ec02ee4d3cca57 Mon Sep 17 00:00:00 2001 From: StevenDufresne Date: Tue, 10 Dec 2024 02:06:57 +0000 Subject: [PATCH 47/84] Revert "Have the save setup." This reverts commit 6ff94b3897bba96661ffce8f640ee44218592c06. --- .../bin/update-release-cpt.php | 95 ++++ .../plugin-directory/class-plugin-check.php | 201 +++++++++ .../class-plugin-directory.php | 15 +- .../plugin-directory/class-plugin-release.php | 420 ++++++++++++++++++ .../plugin-directory/cli/class-import.php | 39 ++ .../plugin-directory/tools/class-svn.php | 55 +++ .../build/blocks/card/block.json | 27 -- .../build/blocks/card/index.asset.php | 1 - .../build/blocks/card/index.js | 298 ------------- .../build/blocks/card/render.php | 27 -- .../build/blocks/card/style-index.css | 8 - .../build/blocks/release-checks/render.php | 119 ++++- .../build/blocks/release-commits/render.php | 155 +++++-- .../blocks/release-commits/style-index.css | 16 +- .../build/blocks/release-date/render.php | 11 +- .../blocks/release-details-form/block.json | 3 +- .../release-details-form/index.asset.php | 2 +- .../blocks/release-details-form/index.js | 2 +- .../blocks/release-details-form/render.php | 152 ++----- .../release-details-form/style-index.css | 6 +- .../blocks/release-draft copy/block.json | 3 +- .../blocks/release-draft copy/index.asset.php | 2 +- .../build/blocks/release-draft copy/index.js | 2 +- .../blocks/release-draft copy/render.php | 111 +++-- .../blocks/release-draft copy/style-index.css | 4 + .../blocks/release-draft-card/block.json | 27 -- .../blocks/release-draft-card/index.asset.php | 1 - .../build/blocks/release-draft-card/index.js | 298 ------------- .../blocks/release-draft-card/render.php | 25 -- .../blocks/release-draft-card/style-index.css | 8 - .../blocks/release-draft-content/block.json | 27 -- .../release-draft-content/index.asset.php | 1 - .../blocks/release-draft-content/index.js | 298 ------------- .../blocks/release-draft-content/render.php | 25 -- .../release-draft-content/style-index.css | 8 - .../build/blocks/release-draft/render.php | 96 ++-- .../blocks/release-draft/style-index.css | 7 + .../build/blocks/release-draft/view.asset.php | 2 +- .../build/blocks/release-draft/view.js | 45 +- .../blocks/release-menu-options/render.php | 52 ++- .../build/blocks/release-page/render.php | 93 ++-- .../build/blocks/release-page/view.asset.php | 2 +- .../build/blocks/release-page/view.js | 51 ++- .../blocks/release-publish-release/block.json | 23 - .../release-publish-release/index.asset.php | 1 - .../blocks/release-publish-release/index.js | 298 ------------- .../release-publish-release/style-index.css | 17 - .../build/blocks/release-publish/block.json | 24 - .../blocks/release-publish/index.asset.php | 1 - .../build/blocks/release-publish/index.js | 298 ------------- .../build/blocks/release-publish/render.php | 350 --------------- .../blocks/release-publish/style-index.css | 30 -- .../blocks/release-publish/view.asset.php | 1 - .../build/blocks/release-publish/view.js | 141 ------ .../release-result-item copy/block.json | 28 -- .../release-result-item copy/index.asset.php | 1 - .../blocks/release-result-item copy/index.js | 298 ------------- .../release-result-item copy/style-index.css | 17 - .../blocks/release-result-item/block.json | 27 -- .../release-result-item/index.asset.php | 1 - .../build/blocks/release-result-item/index.js | 298 ------------- .../blocks/release-result-item/render.php | 24 - .../release-result-item/style-index.css | 21 - .../blocks/release-result-list/block.json | 18 - .../release-result-list/index.asset.php | 1 - .../build/blocks/release-result-list/index.js | 298 ------------- .../blocks/release-result-list/render.php | 22 - .../release-result-list/style-index.css | 17 - .../build/blocks/release-status/render.php | 6 +- .../client/components/plugin/_spinner.scss | 49 -- .../client/styles/components/_components.scss | 1 - .../pub/wporg-plugins-2024/css/style-rtl.css | 2 +- .../pub/wporg-plugins-2024/css/style.css | 2 +- .../pub/wporg-plugins-2024/functions.php | 215 +-------- .../wporg-plugins-2024/inc/block-config.php | 86 ++-- .../patterns/releases-list.php | 49 -- .../src/blocks/card/render.php | 27 -- .../src/blocks/card/style.scss | 4 - .../block.json | 9 +- .../{card => release-check-item}/index.js | 0 .../index.php | 8 +- .../blocks/release-check-item}/render.php | 0 .../style.scss | 8 +- .../src/blocks/release-checks/render.php | 119 ++++- .../src/blocks/release-commits/render.php | 155 +++++-- .../src/blocks/release-commits/style.scss | 24 +- .../{card => release-confirmation}/block.json | 13 +- .../index.js | 0 .../src/blocks/release-confirmation/index.php | 22 + .../blocks/release-confirmation/render.php | 45 ++ .../blocks/release-confirmation/style.scss | 4 + .../src/blocks/release-date/block.json | 19 + .../src/blocks/release-date/index.js | 27 ++ .../index.php | 8 +- .../src/blocks/release-date/render.php | 16 + .../block.json | 11 +- .../index.js | 0 .../src/blocks/release-details-form/index.php | 22 + .../blocks/release-details-form}/render.php | 152 ++----- .../blocks/release-details-form/style.scss | 15 + .../src/blocks/release-draft/render.php | 96 ++-- .../src/blocks/release-draft/style.scss | 7 + .../blocks/release-menu-options/render.php | 52 ++- .../src/blocks/release-page/render.php | 93 ++-- .../src/blocks/release-page/view.js | 53 ++- .../src/blocks/release-publish/render.php | 350 --------------- .../src/blocks/release-publish/style.scss | 29 -- .../src/blocks/release-publish/view.js | 78 ---- .../src/blocks/release-result-item/render.php | 24 - .../src/blocks/release-status/block.json | 19 + .../src/blocks/release-status/index.js | 28 ++ .../blocks/{card => release-status}/index.php | 8 +- .../src/blocks/release-status/render.php | 19 + .../src/blocks/release-status/style.scss | 6 + 114 files changed, 2216 insertions(+), 4859 deletions(-) create mode 100644 wordpress.org/public_html/wp-content/plugins/plugin-directory/bin/update-release-cpt.php create mode 100644 wordpress.org/public_html/wp-content/plugins/plugin-directory/class-plugin-check.php create mode 100644 wordpress.org/public_html/wp-content/plugins/plugin-directory/class-plugin-release.php delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/card/block.json delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/card/index.asset.php delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/card/index.js delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/card/render.php delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/card/style-index.css delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-card/block.json delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-card/index.asset.php delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-card/index.js delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-card/render.php delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-card/style-index.css delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-content/block.json delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-content/index.asset.php delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-content/index.js delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-content/render.php delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-content/style-index.css delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish-release/block.json delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish-release/index.asset.php delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish-release/index.js delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish-release/style-index.css delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish/block.json delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish/index.asset.php delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish/index.js delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish/render.php delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish/style-index.css delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish/view.asset.php delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish/view.js delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-item copy/block.json delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-item copy/index.asset.php delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-item copy/index.js delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-item copy/style-index.css delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-item/block.json delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-item/index.asset.php delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-item/index.js delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-item/render.php delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-item/style-index.css delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-list/block.json delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-list/index.asset.php delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-list/index.js delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-list/render.php delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-list/style-index.css delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/client/components/plugin/_spinner.scss delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/patterns/releases-list.php delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/card/render.php delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/card/style.scss rename wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/{release-result-item => release-check-item}/block.json (63%) rename wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/{card => release-check-item}/index.js (100%) rename wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/{release-result-item => release-check-item}/index.php (72%) rename wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/{build/blocks/release-result-item copy => src/blocks/release-check-item}/render.php (100%) rename wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/{release-result-item => release-check-item}/style.scss (51%) rename wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/{card => release-confirmation}/block.json (67%) rename wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/{release-publish => release-confirmation}/index.js (100%) create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-confirmation/index.php create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-confirmation/render.php create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-confirmation/style.scss create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-date/block.json create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-date/index.js rename wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/{release-publish => release-date}/index.php (74%) create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-date/render.php rename wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/{release-publish => release-details-form}/block.json (55%) rename wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/{release-result-item => release-details-form}/index.js (100%) create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-details-form/index.php rename wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/{build/blocks/release-publish-release => src/blocks/release-details-form}/render.php (51%) create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-details-form/style.scss delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-publish/render.php delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-publish/style.scss delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-publish/view.js delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-result-item/render.php create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-status/block.json create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-status/index.js rename wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/{card => release-status}/index.php (65%) create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-status/render.php create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-status/style.scss diff --git a/wordpress.org/public_html/wp-content/plugins/plugin-directory/bin/update-release-cpt.php b/wordpress.org/public_html/wp-content/plugins/plugin-directory/bin/update-release-cpt.php new file mode 100644 index 0000000000..09a700e68d --- /dev/null +++ b/wordpress.org/public_html/wp-content/plugins/plugin-directory/bin/update-release-cpt.php @@ -0,0 +1,95 @@ +releases ) ) { + fwrite( STDERR, "No releases found for $plugin_slug\n" ); + die(); +} + +echo "Updating releases for $plugin_slug...\n"; + +$updated = Plugin_Release::instance()->update_releases( $plugin, $plugin->releases ); +if ( is_wp_error( $updated ) ) { + fwrite( STDERR, "Failed to update releases for $plugin_slug: " . $updated->get_error_message() . "\n" ); + die(); +} +echo "Updated " . number_format( $updated ) . " releases for $plugin_slug\n"; + +if ( $opts['publish'] ) { + $published = Plugin_Release::instance()->publish_release( $plugin ); + if ( is_wp_error( $published ) ) { + fwrite( STDERR, "Failed to publish releases for $plugin_slug: " . $published->get_error_message() . "\n" ); + die(); + } + echo "Published release post ID = " . $published . "\n"; +} + diff --git a/wordpress.org/public_html/wp-content/plugins/plugin-directory/class-plugin-check.php b/wordpress.org/public_html/wp-content/plugins/plugin-directory/class-plugin-check.php new file mode 100644 index 0000000000..554c45cac5 --- /dev/null +++ b/wordpress.org/public_html/wp-content/plugins/plugin-directory/class-plugin-check.php @@ -0,0 +1,201 @@ + true, + 'results' => [], + 'html' => '', + ]; + } + + $result = self::run_checks( $plugin_slug, $plugin_root ); + + self::log_to_slack( $result ); // FIXME: need to pass required info. + + return $result; + } + + /** + * Sends a plugin through Plugin Check. + * @param string $plugin_slug The plugin slug. + * @param string $plugin_root The path to the plugin source. + * + * @return array The results of the plugin check. + */ + public static function run_checks( $plugin_slug, $plugin_root ) { + + // Run plugin check via CLI + $start_time = microtime(1); + exec( + 'export WP_CLI_CONFIG_PATH=' . escapeshellarg( WP_CLI_CONFIG_PATH ) . '; ' . + 'timeout 45 ' . // Timeout after 45s if plugin-check is not done. + WPCLI . ' --url=https://wordpress.org/plugins ' . + 'plugin check ' . + '--error-severity=7 --warning-severity=6 --categories=plugin_repo --format=json ' . + '--slug=' . escapeshellarg( $plugin_slug ) . ' ' . + escapeshellarg( $plugin_root ), + $output, + $return_code + ); + $total_time = round( microtime(1) - $start_time, 1 ); + + /** + * Anything that plugin-check outputs that we want to discard completely. + */ + $is_ignored_code = static function( $code ) { + $ignored_codes = [ + ]; + + return ( + in_array( $code, $ignored_codes, true ) || + // All the Readme parser warnings are duplicated, we'll exclude those. + str_starts_with( $code, 'readme_parser_warnings_' ) + ); + }; + + /* + * Convert the output into an array. + * Format: + * FILE: example.extension + * [{.....}] + * + * FILE: example2.extension + * [{.....}] + */ + $verdict = true; + $results = []; + foreach ( array_chunk( $output, 3 ) as $file_result ) { + if ( ! str_starts_with( $file_result[0], 'FILE:' ) ) { + continue; + } + + $filename = trim( explode( ':' , $file_result[0], 2 )[1] ); + $json = json_decode( $file_result[1], true ); + + foreach ( $json as $record ) { + $record['file'] = $filename; + + if ( $is_ignored_code( $record['code'] ) ) { + continue; + } + + $results[] = $record; + + // Record submission stats. + if ( function_exists( 'bump_stats_extra' ) && 'production' === wp_get_environment_type() ) { + bump_stats_extra( 'plugin-check-' . $record['type'], $record['code'] ); + } + + // Determine if it failed the checks. + if ( $verdict && 'ERROR' === $record['type'] ) { + $verdict = false; + } + } + } + + // Generage the HTML for the Plugin Check output. + $html = sprintf( + '' . __( 'Results of Automated Plugin Scanning: %s', 'wporg-plugins' ) . '', + $verdict ? __( 'Pass', 'wporg-plugins' ) : __( 'Fail', 'wporg-plugins' ) + ); + if ( $results ) { + $html .= '
      '; + // Display errors, and then warnings. + foreach ( [ wp_list_filter( $results, [ 'type' => 'ERROR' ] ), wp_list_filter( $results, [ 'type' => 'ERROR' ], 'NOT' ) ] as $result_set ) { + foreach ( $result_set as $result ) { + $html .= sprintf( + '
    • %s %s: %s
    • ', + esc_html( $result['file'] ), + esc_url( $result['docs'] ?? '' ), + esc_html( $result['type'] . ' ' . $result['code'] ), + esc_html( $result['message'] ) + ); + } + } + $html .= '
    '; + } + $html .= __( 'Note: While the automated plugin scan is based on the Plugin Review Guidelines, it is not a complete review. A successful result from the scan does not guarantee that the plugin will be approved, only that it is sufficient to be reviewed. All submitted plugins are checked manually to ensure they meet security and guideline standards before approval.', 'wporg-plugins' ); + + // Return the results. + return [ + 'verdict' => $verdict, + 'results' => $results, + 'html' => $html, + 'runtime' => $total_time, + ]; + } + + public function log_to_slack( $fixme ) { + + // Copypasta, fix refs + + // If the upload is blocked; log it to slack. + if ( ! $verdict ) { + // Slack dm the logs. + $zip_name = reset( $_FILES )['name']; + $failpass = $verdict ? ':white_check_mark: passed' : ':x: failed'; + if ( $return_code > 1 ) { // TODO: Temporary, as we're always hitting this branch. + $failpass = ' :rotating_light: errored: ' . $return_code; + } + + $plugin_name_slug = $this->plugin['Name'] . ' (' . $this->plugin_slug . ')'; + // If we have a post object, link to it. + if ( $this->plugin_post ) { + $edit_post_link = admin_url( 'post.php?post=' . $this->plugin_post->ID . '&action=edit' ); // Can't use get_edit_post_link() as the user can't edit the post. + $plugin_name_slug = "<{$edit_post_link}|{$plugin_name_slug}>"; + } + + $text = "{$failpass} for {$zip_name}: {$plugin_name_slug} took {$total_time}s\n"; + + // Include a simplified / merged version of the results for review. + $group_by_code = [ 'ERROR' => [], 'WARNING' => [] ]; + foreach ( $results as $result ) { + $group_by_code[ $result['type'] ][ $result['code'] ] ??= []; + $group_by_code[ $result['type'] ][ $result['code'] ][] = $result; + } + foreach ( $group_by_code as $type => $codes ) { + foreach ( $codes as $code_results ) { + $text .= "• *{$type}: {$code_results[0]['code']}*"; + if ( 1 === count( $code_results ) ) { + $text .= ": {$code_results[0]['message']}\n"; + } else { + $text .= "\n"; + foreach ( array_unique( wp_list_pluck( $code_results, 'message' ) ) as $i => $message ) { + $multiplier = count( wp_list_filter( $code_results, [ 'message' => $message ] ) ); + $multiplier = $multiplier > 1 ? " {$multiplier}x" : ''; + + $text .= " {$i}. {$multiplier} {$message}\n"; + } + } + } + } + + notify_slack( PLUGIN_CHECK_LOGS_SLACK_CHANNEL, $text, wp_get_current_user(), true ); + } elseif ( $return_code ) { + // Log plugin-check timing out. + $zip_name = reset( $_FILES )['name']; + $text = ":rotating_light: Error: {$return_code} for {$zip_name}: {$this->plugin['Name']} ({$this->plugin_slug}) took {$total_time}s\n"; + notify_slack( PLUGIN_CHECK_LOGS_SLACK_CHANNEL, $text, wp_get_current_user(), true ); + } + + } +} \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/plugins/plugin-directory/class-plugin-directory.php b/wordpress.org/public_html/wp-content/plugins/plugin-directory/class-plugin-directory.php index ef7f4c6ca9..62ccc5fa3e 100644 --- a/wordpress.org/public_html/wp-content/plugins/plugin-directory/class-plugin-directory.php +++ b/wordpress.org/public_html/wp-content/plugins/plugin-directory/class-plugin-directory.php @@ -67,6 +67,8 @@ private function __construct() { // Search Plugin_Search::instance(); + Plugin_Release::instance(); + // Add upload size limit to limit plugin ZIP file uploads to 10M add_filter( 'upload_size_limit', function( $size ) { return 10 * MB_IN_BYTES; @@ -557,7 +559,7 @@ public function init() { // Add duplicate search rule which will be hit before the following old-plugin tab rules add_rewrite_rule( '^search/([^/]+)/?$', 'index.php?s=$matches[1]', 'top' ); - + // Add additional tags endpoint, to avoid being caught in old-plugins tab rules. See: https://meta.trac.wordpress.org/ticket/6819. add_rewrite_rule( '^tags/([^/]+)/?$', 'index.php?plugin_tags=$matches[1]', 'top' ); @@ -1735,9 +1737,9 @@ public static function get_releases( $plugin ) { $plugin = self::get_plugin_post( $plugin ); $releases = get_post_meta( $plugin->ID, 'releases', true ); - // Meta doesn't exist yet? Lets fill it out. + // Data doesn't exist yet? Lets fill it out. if ( false === $releases || ! is_array( $releases ) ) { - $releases = self::prefill_releses_meta( $plugin ); + $releases = self::prefill_releases_meta( $plugin ); } /** @@ -1756,15 +1758,12 @@ public static function get_releases( $plugin ) { } /** - * Prefill the releases meta for a plugin. + * Prefill the releases meta items for a plugin. * * @param \WP_Post $plugin Plugin post object. * @return array */ - public static function prefill_releses_meta( $plugin ) { - if ( ! $plugin->releases ) { - update_post_meta( $plugin->ID, 'releases', [] ); - } + public static function prefill_releases_meta( $plugin ) { $tags = get_post_meta( $plugin->ID, 'tags', true ); if ( $tags ) { diff --git a/wordpress.org/public_html/wp-content/plugins/plugin-directory/class-plugin-release.php b/wordpress.org/public_html/wp-content/plugins/plugin-directory/class-plugin-release.php new file mode 100644 index 0000000000..57795a8f35 --- /dev/null +++ b/wordpress.org/public_html/wp-content/plugins/plugin-directory/class-plugin-release.php @@ -0,0 +1,420 @@ + array( + 'name' => __( 'Releases', 'wporg-plugins' ), + 'singular_name' => __( 'Release', 'wporg-plugins' ), + ), + 'public' => false, + 'show_ui' => false, + 'exclude_from_search' => true, + 'publicly_queryable' => true, + 'show_in_rest' => true, // FIXME: maybe? + 'supports' => array( 'title', 'editor' ), // TBD + 'rewrite' => false, + 'query_var' => false, + 'hierarchical' => false, // Disappointingly, this doesn't help us make a Post -> Release hierarchy. + ) ); + } + + // Starting point for an internal API, mostly copilot-generated. + + /** + * Get all releases for a plugin. + */ + public function get_releases( $plugin ) { + $plugin_id = ( get_post( $plugin ) )->ID; + + $releases = get_posts( array( + 'post_type' => 'plugin_release', + 'posts_per_page' => -1, + 'post_parent' => $plugin_id, + 'orderby' => 'date', + 'order' => 'DESC', + ) ); + + return $releases; + } + + /** + * Check if a plugin has any release CPTs stored. + * Note that this intentionally does not count draft releases. If needed, we can add a parameter to support that. + */ + public function has_releases( $plugin ) { + $release = $this->get_release( $plugin, null ); + return ! empty( $release ); + } + + /** + * Backfill releases for a plugin, if none exist. This uses the releases postmeta to populate the CPTs. + */ + public function maybe_backfill_releases( $plugin ) { + $plugin = get_post( $plugin ); + + if ( !$plugin || 'plugin' !== $plugin->post_type ) { + return new \WP_Error( 'invalid_plugin', 'Invalid plugin' ); + } + + // This will backfill the releases postmeta if needed. + $releases_postmeta = Plugin_Directory::get_releases( $plugin ); + + // Add or update the release CPTs using postmeta. + if ( $releases_postmeta && ! $this->has_releases( $plugin ) ) { + return $this->update_releases( $plugin, $releases_postmeta ); + } + + return false; + } + + /** + * Add release info for a plugin. + */ + public function add_release( $plugin, $release ) { + $plugin = get_post( $plugin ); + $plugin_id = $plugin->ID; + + if ( !$plugin || 'plugin' !== $plugin->post_type ) { + return new \WP_Error( 'invalid_plugin', 'Invalid plugin' ); + } + + $release_date = date( 'Y-m-d H:i:s', $release['date'] ); + $committer_user_id = get_user_by( 'login', reset( $release['committer'] ) )->ID; + if ( ! $committer_user_id ) { + return new \WP_Error( 'invalid_committer', 'Invalid committer' ); + } + + $post_status = ( 'trunk' === $release['tag'] ) ? 'draft' : 'publish'; + $post_title = ( 'trunk' === $release['tag'] ) ? 'trunk' : $release['version']; + + $release_id = wp_insert_post( array( + 'post_type' => 'plugin_release', + 'post_title' => $post_title, + 'post_name' => $plugin->post_name . '-' . $release['version'], + 'post_parent' => $plugin_id, + 'post_status' => $post_status, + 'post_date' => $release_date, // And/or post_date_gmt? + // Mirrors the metadata. + 'meta_input' => array( + 'release_date' => $release['date'], + 'release_tag' => $release['tag'], + 'release_version' => $release['version'], + 'release_committer' => $release['committer'], + 'release_zips_built' => $release['zips_built'], + 'release_confirmations_required' => $release['confirmations_required'], + 'release_revision' => $release['revision'], + 'release_commit_log' => $release['commit_log'] ?? null, + ), + // TODO: what else? Could store the changelog or other content at the point of release for comparison purposes. + ) ); + + return $release_id; + } + + /** + * Update existing release info. + */ + public function update_release( $release_id, $release ) { + + $release_date = date( 'Y-m-d H:i:s', $release['date'] ); + $committer_user_id = get_user_by( 'login', reset( $release['committer'] ) )->ID; + if ( ! $committer_user_id ) { + return new \WP_Error( 'invalid_committer', 'Invalid committer' ); + } + + $release_post = get_post( $release_id ); + if ( ! $release_post || 'plugin_release' !== $release_post->post_type ) { + return new \WP_Error( 'invalid_release', 'Invalid release' ); + } + + $parent_plugin = get_post( $release_post->post_parent ); + if ( ! $parent_plugin || 'plugin' !== $parent_plugin->post_type ) { + return new \WP_Error( 'invalid_plugin', 'Invalid plugin' ); + } + + $post_status = ( 'trunk' === $release['tag'] ) ? 'draft' : 'publish'; + $post_title = ( 'trunk' === $release['tag'] ) ? 'trunk' : $release['version']; + + $release_id = wp_update_post( array( + 'ID' => $release_post->ID, + 'post_type' => 'plugin_release', + 'post_title' => $post_title, + 'post_name' => $parent_plugin->post_name . '-' . $release['version'], + 'post_parent' => $parent_plugin->ID, + 'post_status' => $post_status, + 'post_date' => $release_date, // And/or post_date_gmt? + // Mirrors the metadata. + 'meta_input' => array( + 'release_date' => $release['date'], + 'release_tag' => $release['tag'], + 'release_version' => $release['version'], + 'release_committer' => $release['committer'], + 'release_zips_built' => $release['zips_built'], + 'release_confirmations_required' => $release['confirmations_required'], + 'release_revision' => $release['revision'], + 'release_commit_log' => $release['commit_log'] ?? null, + 'release_tested' => $release['tested'] ?? null, + 'release_requires_php' => $release['requires_php'] ?? null, + 'release_requires_wp' => $release['requires_wp'] ?? null, + 'release_requires_plugins' => $release['requires_plugins'] ?? null, + ), + // TODO: what else? Could store the changelog or other content at the point of release for comparison purposes. + ) ); + + return $release_id; + } + + /** + * Save draft (trunk) release for a plugin. + */ + public function add_or_update_draft_release( $plugin, $release ) { + $plugin = get_post( $plugin ); + + // Tag must be 'trunk' for this to be a draft release. + if ( 'trunk' !== $release['tag'] ) { + return new \WP_Error( 'invalid_tag', 'Invalid tag' ); + } + + if ( !$plugin || 'plugin' !== $plugin->post_type ) { + return new \WP_Error( 'invalid_plugin', 'Invalid plugin' ); + } + + // If there's already a published release for this plugin, we only create a draft if there are unreleased trunk commits. + $last_release = $this->get_release( $plugin, null ); + if ( $last_release ) { + if ( !empty( $release[ 'revision' ] ) ) { + // Don't create a draft unless the revision number is higher than the last release. + if ( max( $release['revision'] ) <= max( $last_release->release_revision ) ) { + return false; // Not an error, just skip. + } + } else { + // If we don't have revision numbers, use dates. Maybe this should be removed. + if ( strtotime( $release['date'] ) <= strtotime( $last_release->release_date ) ) { + return false; // Not an error, just skip. + } + } + } + + // Store the commit log in postmeta. We'll only do this for drafts. + $last_release_revision = max( $last_release->release_revision ); + if ( $last_release_revision && $release['revision'] ) { + $trunk_url = Import::PLUGIN_SVN_BASE . '/' . $plugin->post_name . '/trunk'; + $commit_log = SVN::log( $trunk_url, [ $last_release_revision, max( $release['revision'] ) ] ); + $release['commit_log'] = $commit_log['log'] ?? null; + } + $draft_id = $this->get_release( $plugin, 'trunk' ); + if ( $draft_id ) { + $release_id = $this->update_release( $draft_id, $release ); + } else { + $release_id = $this->add_release( $plugin, $release ); + } + + return $release_id; + } + + function delete_release( $release_id ) { + $release_post = get_post( $release_id ); + if ( ! $release_post || 'plugin_release' !== $release_post->post_type ) { + return new \WP_Error( 'invalid_release', 'Invalid release' ); + } + + return wp_delete_post( $release_id, false ); // FIXME: change to true for force delete when this is ready and WELL TESTED. + } + + /** + * Update all release info for a plugin. This will insert or update each release, and remove any unknown releases. + * + * @param int|WP_Post $plugin The plugin post. + * @param array $releases An array of release data. Should be a complete array of all releases. + * @return int|WP_Error The number of changes made. + */ + public function update_releases( $plugin, $releases ) { + $plugin_id = ( get_post( $plugin ) )->ID; + + if ( 'plugin' !== get_post_type( $plugin ) ) { + return new \WP_Error( 'invalid_plugin', 'Invalid plugin' ); + } + + $changed = false; + + // The current releases, if any, that need to be updated. + $current_releases = $this->get_releases( $plugin ); + $current_versions = wp_list_pluck( $current_releases, 'post_title', 'ID' ); + + // Add or update each release. + foreach ( $releases as $release ) { + if ( ! in_array( $release['version'], $current_versions ) ) { + // Add a CPT for the release if one does not yet exist. + $r = $this->add_release( $plugin, $release ); + #fputs( STDERR, 'add: ' . var_export( $r, true ) . "\n" ); + if ( is_wp_error( $r ) ) { + return $r; + } + ++ $changed; + } else { + // Update an existing CPT for the release. + // Note that this will update the CPT even if no data has changed. + $release_id = array_search( $release['version'], $current_versions ); + $r = $this->update_release( $release_id, $release ); + #fputs( STDERR, 'update: ' . var_export( $r, true ) . "\n" ); + if ( is_wp_error( $r ) ) { + return $r; + } + ++ $changed; + } + } + + // Remove any releases that are no longer present. + foreach ( $current_versions as $release_id => $release_version ) { + // A CPT that doesn't exist in the $releases array should be removed. + if ( ! in_array( $release_version, wp_list_pluck( $releases, 'version' ) ) ) { + $r = $this->delete_release( $release_id ); + #fputs( STDERR, 'delete: ' . var_export( $r, true ) . "\n" ); + if ( is_wp_error( $r ) ) { + return $r; + } + ++ $changed; + } + // If there are multiple releases with the same version (title), remove all but the first. + // TODO: Not sure this code should stay. + if ( $release_id !== array_search( $release_version, $current_versions ) ) { + $r = $this->delete_release( $release_id ); + #fputs( STDERR, 'delete dupe: ' . var_export( $r, true ) . "\n" ); + if ( is_wp_error( $r ) ) { + return $r; + } + ++ $changed; + } + } + + return $changed; + } + + /** + * Get a specific plugin release. + */ + public function get_release( $plugin, $version ) { + $plugin_id = ( get_post( $plugin ) )->ID; + + // Note that the post_status is 'draft' for trunk releases. + $post_status = ( 'trunk' === $version ) ? 'draft' : 'publish'; + + $release = get_posts( array( + 'post_type' => 'plugin_release', + 'posts_per_page' => 1, + 'post_parent' => $plugin_id, + 'title' => $version, + 'post_status' => $post_status, + 'orderby' => 'date', + 'order' => 'DESC', + ) ); + + return $release ? $release[0] : null; + } + + /** + * Publish a draft release (ie trunk). + * This will use svn to tag the release, and then publish the release post. + * + * Note: As yet untested. + */ + public function publish_release( $plugin ) { + $plugin = get_post( $plugin ); + + // TODO: current_user_can()? Or other checks? + + $draft = $this->get_release( $plugin, 'trunk' ); + if ( ! $draft ) { + return new \WP_Error( 'no_draft', 'No draft release found' ); + } + + $new_tag = $draft->release_version; + if ( $this->get_release( $plugin, $new_tag ) ) { + return new \WP_Error( 'tag_exists', 'Tag already exists', $new_tag ); + } + + if ( !$draft->plugin_check_result || ! $draft->plugin_check_result['verdict'] ) { + return new \WP_Error( 'plugin_check_failed', 'Plugin check failed' ); + } + + // TODO: Should import warnings exist on the release CPT? + if ( $plugin->_import_warnings ) { + // These warnings are likely (always?) present because the tag hasn't been created yet. + $ignored_warnings = [ + 'stable_tag_invalid_trunk_fallback' => 1, + 'stable_tag_invalid' => 1, + ]; + // Stop here if other warnings are present. + if ( array_diff_key( $plugin->_import_warnings, $ignored_warnings ) ) { + return new \WP_Error( 'import_warnings', 'Import warnings', $plugin->_import_warnings ); + } + } + + // TODO: What sanitizing or cross-checking do we need here? + $trunk_url = 'https://plugins.svn.wordpress.org/' . $plugin->post_name . '/trunk'; + $tag_url = 'https://plugins.svn.wordpress.org/' . $plugin->post_name . '/tags/' . $new_tag; + + // TODO: Decide if we're committing this as a specific user. Also any other options needed. + // Note that since this is a url-to-url copy, the commit happens immediately. + $svn_options = [ + 'message' => 'Tagging ' . $new_tag . ' from trunk@' . reset( $draft->release_revision ), // Commit message. i18n? + ]; + $tag_result = SVN::copy( $trunk_url, $tag_url, $svn_options ); + + if ( !$tag_result || ! $tag_result['result'] ) { + return new \WP_Error( 'svn_error', 'SVN error', $tag_result['errors'] ); + } + + // Include the tag revision in the release post list of revisions. + // This is so that we can easily tell if there are trunk commits after the release. + $release_revisions = array_merge( $draft->release_revision, [ $tag_result['revision'] ] ); + + $release_id = wp_update_post( array( + 'ID' => $draft->ID, + 'post_status' => 'publish', + 'post_title' => $new_tag, + 'meta_input' => array( + 'release_revision' => $release_revisions, + #'release_tag_revision' => $tag_result['revision'], // Do we need this? Probably not. + 'release_tag' => $new_tag, // Was 'trunk' + ), + ) ); + + return $release_id; + } + +} \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/plugins/plugin-directory/cli/class-import.php b/wordpress.org/public_html/wp-content/plugins/plugin-directory/cli/class-import.php index 4894e4298b..e57ab78844 100644 --- a/wordpress.org/public_html/wp-content/plugins/plugin-directory/cli/class-import.php +++ b/wordpress.org/public_html/wp-content/plugins/plugin-directory/cli/class-import.php @@ -5,8 +5,10 @@ use WordPressdotorg\Plugin_Directory\Jobs\API_Update_Updater; use WordPressdotorg\Plugin_Directory\Jobs\Tide_Sync; use WordPressdotorg\Plugin_Directory\Block_JSON; +use WordPressdotorg\Plugin_Directory\Plugin_Check; use WordPressdotorg\Plugin_Directory\Plugin_Directory; use WordPressdotorg\Plugin_Directory\Email\Release_Confirmation as Release_Confirmation_Email; +use WordPressdotorg\Plugin_Directory\Plugin_Release; use WordPressdotorg\Plugin_Directory\Readme\{ Parser as Readme_Parser, Validator as Readme_Validator }; use WordPressdotorg\Plugin_Directory\Standalone\Plugins_Info_API; use WordPressdotorg\Plugin_Directory\Template; @@ -167,6 +169,43 @@ public function import_from_svn( $plugin_slug, $svn_changed_tags = array( 'trunk } } + // TODO: Test and confirm that this is the correct behavior. + if ( in_array( 'trunk', $svn_changed_tags ) ) { + // Backfill Release CPTs if needed. This should only happen once per plugin. + // Doing this here as a relatively safe way to distribute the load of backfilling. + Plugin_Release::instance()->maybe_backfill_releases( $plugin ); + + // Create or update a 'draft' release CPT for trunk changes. + // Note that this will only create a new draft if the version doesn't already exist as a release. + // TODO: refine this behaviour. (Maybe compare revision numbers?) + $release = Plugin_Release::instance()->add_or_update_draft_release( + $plugin, + [ + 'tag' => 'trunk', + 'version' => $version, // TODO: Is this correct? + 'committer' => [$last_committer], + 'revision' => [$last_revision], + 'tested' => $readme->tested, + 'requires' => $headers->RequiresWP, + 'requires_php' => $headers->RequiresPHP, + 'requires_plugins' => $requires_plugins, + ] + ); + + // While we're at it, run plugin check and store the results. + // FIXME: Maybe this belongs in export_and_parse_plugin()? The readme checker is run there. + $plugin_export_dir = $data['tmp_dir'] . '/export'; + if ( $release && ! is_wp_error( $release ) ) { + $plugin_check_result = Plugin_Check::run_checks( $plugin->post_name, $plugin_export_dir ); + #var_dump( $plugin_check_result ); + if ( $plugin_check_result ) { + update_post_meta( $release, 'plugin_check_result', $plugin_check_result ); + } else { + delete_post_meta( $release, 'plugin_check_result' ); + } + } + } + // Release confirmation if ( $plugin->release_confirmation ) { // If the stable tag is trunk, we shouldn't continue, as we don't support that for RC. diff --git a/wordpress.org/public_html/wp-content/plugins/plugin-directory/tools/class-svn.php b/wordpress.org/public_html/wp-content/plugins/plugin-directory/tools/class-svn.php index 0178ed857b..2a5dde9d85 100644 --- a/wordpress.org/public_html/wp-content/plugins/plugin-directory/tools/class-svn.php +++ b/wordpress.org/public_html/wp-content/plugins/plugin-directory/tools/class-svn.php @@ -428,6 +428,61 @@ public static function log( $url, $revision = 'HEAD', $options = array() ) { return compact( 'log', 'errors' ); } + /** + * Copy a SVN path (or url). + * + * @static + * + * @param string $from The path of the SVN folder to rename. May be a URL. + * @param string $to The new path of the SVN folder. May be a URL. + * @param array $options Optional. A list of options to pass to SVN. Default: empty array. + * @return array { + * @type bool $result The result of the operation. + * @type int $revision The revision. + * @type false|array $errors Whether any errors or warnings were encountered. + * } + */ + public static function copy( $from, $to, $options = array() ) { + // TODO: consider refactoring this with rename, since the code is almost identical. + $options[] = 'non-interactive'; + $is_url = ( preg_match( '#https?://#i', $from ) && preg_match( '#https?://#i', $to ) ); + + if ( $is_url ) { + // Set the message if not provided. + if ( ! isset( $options['message'] ) && ! isset( $options['m'] ) ) { + $options['message'] = sprintf( "Copy %s to %s.", basename( $from ), basename( $to ) ); + } + + if ( empty( $options['username'] ) ) { + $options['username'] = PLUGIN_SVN_MANAGEMENT_USER; + $options['password'] = PLUGIN_SVN_MANAGEMENT_PASS; + } + } + + $esc_options = self::parse_esc_parameters( $options ); + + $esc_from = escapeshellarg( $from ); + $esc_to = escapeshellarg( $to ); + + $output = self::shell_exec( "svn cp $esc_from $esc_to $esc_options 2>&1" ); + if ( $is_url && preg_match( '/Committed revision (?P\d+)[.]/i', $output, $m ) ) { + $revision = (int) $m['revision']; + $result = true; + $errors = false; + } else { + $errors = self::parse_svn_errors( $output ); + $revision = false; + + if ( $is_url || $errors ) { + $result = false; + } else { + $result = true; + } + } + + return compact( 'result', 'revision', 'errors' ); + } + /** * Rename a SVN path (or url). * diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/card/block.json b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/card/block.json deleted file mode 100644 index 3ce8c4872d..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/card/block.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "$schema": "https://schemas.wp.org/trunk/block.json", - "apiVersion": 2, - "name": "wporg/card", - "version": "0.1.0", - "title": "Release Card", - "category": "design", - "icon": "", - "description": "A block to display a card.", - "textdomain": "wporg", - "attributes": { - "title": { - "type": "string", - "default": "" - } - }, - "supports": { - "html": false, - "interactivity": true - }, - "usesContext": [ - "postId" - ], - "editorScript": "file:./index.js", - "render": "file:./render.php", - "style": "file:./style-index.css" -} \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/card/index.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/card/index.asset.php deleted file mode 100644 index 459c076b07..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/card/index.asset.php +++ /dev/null @@ -1 +0,0 @@ - array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => '47e3efb31a2fd6ac5818'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/card/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/card/index.js deleted file mode 100644 index bd122c23df..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/card/index.js +++ /dev/null @@ -1,298 +0,0 @@ -/******/ (() => { // webpackBootstrap -/******/ "use strict"; -/******/ var __webpack_modules__ = ({ - -/***/ "./src/blocks/card/index.js": -/*!**********************************!*\ - !*** ./src/blocks/card/index.js ***! - \**********************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); -/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/blocks */ "@wordpress/blocks"); -/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/server-side-render */ "@wordpress/server-side-render"); -/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/block-editor */ "@wordpress/block-editor"); -/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__); -/* harmony import */ var _block_json__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./block.json */ "./src/blocks/card/block.json"); -/* harmony import */ var _style_scss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./style.scss */ "./src/blocks/card/style.scss"); - -/** - * WordPress dependencies - */ - - - - - -/** - * Internal dependencies - */ - - -function Edit({ - attributes, - name -}) { - return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", { - ...(0,_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__.useBlockProps)() - }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Disabled, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)((_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default()), { - block: name, - attributes: attributes - }))); -} -(0,_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__.registerBlockType)(_block_json__WEBPACK_IMPORTED_MODULE_5__.name, { - edit: Edit, - save: () => null -}); - -/***/ }), - -/***/ "./src/blocks/card/style.scss": -/*!************************************!*\ - !*** ./src/blocks/card/style.scss ***! - \************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -// extracted by mini-css-extract-plugin - - -/***/ }), - -/***/ "react": -/*!************************!*\ - !*** external "React" ***! - \************************/ -/***/ ((module) => { - -module.exports = window["React"]; - -/***/ }), - -/***/ "@wordpress/block-editor": -/*!*************************************!*\ - !*** external ["wp","blockEditor"] ***! - \*************************************/ -/***/ ((module) => { - -module.exports = window["wp"]["blockEditor"]; - -/***/ }), - -/***/ "@wordpress/blocks": -/*!********************************!*\ - !*** external ["wp","blocks"] ***! - \********************************/ -/***/ ((module) => { - -module.exports = window["wp"]["blocks"]; - -/***/ }), - -/***/ "@wordpress/components": -/*!************************************!*\ - !*** external ["wp","components"] ***! - \************************************/ -/***/ ((module) => { - -module.exports = window["wp"]["components"]; - -/***/ }), - -/***/ "@wordpress/server-side-render": -/*!******************************************!*\ - !*** external ["wp","serverSideRender"] ***! - \******************************************/ -/***/ ((module) => { - -module.exports = window["wp"]["serverSideRender"]; - -/***/ }), - -/***/ "./src/blocks/card/block.json": -/*!************************************!*\ - !*** ./src/blocks/card/block.json ***! - \************************************/ -/***/ ((module) => { - -module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"wporg/card","version":"0.1.0","title":"Release Card","category":"design","icon":"","description":"A block to display a card.","textdomain":"wporg","attributes":{"title":{"type":"string","default":""}},"supports":{"html":false,"interactivity":true},"usesContext":["postId"],"editorScript":"file:./index.js","render":"file:./render.php","style":"file:./style-index.css"}'); - -/***/ }) - -/******/ }); -/************************************************************************/ -/******/ // The module cache -/******/ var __webpack_module_cache__ = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ // Check if module is in cache -/******/ var cachedModule = __webpack_module_cache__[moduleId]; -/******/ if (cachedModule !== undefined) { -/******/ return cachedModule.exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = __webpack_module_cache__[moduleId] = { -/******/ // no module.id needed -/******/ // no module.loaded needed -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = __webpack_modules__; -/******/ -/************************************************************************/ -/******/ /* webpack/runtime/chunk loaded */ -/******/ (() => { -/******/ var deferred = []; -/******/ __webpack_require__.O = (result, chunkIds, fn, priority) => { -/******/ if(chunkIds) { -/******/ priority = priority || 0; -/******/ for(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1]; -/******/ deferred[i] = [chunkIds, fn, priority]; -/******/ return; -/******/ } -/******/ var notFulfilled = Infinity; -/******/ for (var i = 0; i < deferred.length; i++) { -/******/ var chunkIds = deferred[i][0]; -/******/ var fn = deferred[i][1]; -/******/ var priority = deferred[i][2]; -/******/ var fulfilled = true; -/******/ for (var j = 0; j < chunkIds.length; j++) { -/******/ if ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) { -/******/ chunkIds.splice(j--, 1); -/******/ } else { -/******/ fulfilled = false; -/******/ if(priority < notFulfilled) notFulfilled = priority; -/******/ } -/******/ } -/******/ if(fulfilled) { -/******/ deferred.splice(i--, 1) -/******/ var r = fn(); -/******/ if (r !== undefined) result = r; -/******/ } -/******/ } -/******/ return result; -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/compat get default export */ -/******/ (() => { -/******/ // getDefaultExport function for compatibility with non-harmony modules -/******/ __webpack_require__.n = (module) => { -/******/ var getter = module && module.__esModule ? -/******/ () => (module['default']) : -/******/ () => (module); -/******/ __webpack_require__.d(getter, { a: getter }); -/******/ return getter; -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/define property getters */ -/******/ (() => { -/******/ // define getter functions for harmony exports -/******/ __webpack_require__.d = (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 */ -/******/ (() => { -/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) -/******/ })(); -/******/ -/******/ /* webpack/runtime/make namespace object */ -/******/ (() => { -/******/ // define __esModule on exports -/******/ __webpack_require__.r = (exports) => { -/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { -/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); -/******/ } -/******/ Object.defineProperty(exports, '__esModule', { value: true }); -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/jsonp chunk loading */ -/******/ (() => { -/******/ // no baseURI -/******/ -/******/ // object to store loaded and loading chunks -/******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched -/******/ // [resolve, reject, Promise] = chunk loading, 0 = chunk loaded -/******/ var installedChunks = { -/******/ "blocks/card/index": 0, -/******/ "blocks/card/style-index": 0 -/******/ }; -/******/ -/******/ // no chunk on demand loading -/******/ -/******/ // no prefetching -/******/ -/******/ // no preloaded -/******/ -/******/ // no HMR -/******/ -/******/ // no HMR manifest -/******/ -/******/ __webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0); -/******/ -/******/ // install a JSONP callback for chunk loading -/******/ var webpackJsonpCallback = (parentChunkLoadingFunction, data) => { -/******/ var chunkIds = data[0]; -/******/ var moreModules = data[1]; -/******/ var runtime = data[2]; -/******/ // add "moreModules" to the modules object, -/******/ // then flag all "chunkIds" as loaded and fire callback -/******/ var moduleId, chunkId, i = 0; -/******/ if(chunkIds.some((id) => (installedChunks[id] !== 0))) { -/******/ for(moduleId in moreModules) { -/******/ if(__webpack_require__.o(moreModules, moduleId)) { -/******/ __webpack_require__.m[moduleId] = moreModules[moduleId]; -/******/ } -/******/ } -/******/ if(runtime) var result = runtime(__webpack_require__); -/******/ } -/******/ if(parentChunkLoadingFunction) parentChunkLoadingFunction(data); -/******/ for(;i < chunkIds.length; i++) { -/******/ chunkId = chunkIds[i]; -/******/ if(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) { -/******/ installedChunks[chunkId][0](); -/******/ } -/******/ installedChunks[chunkId] = 0; -/******/ } -/******/ return __webpack_require__.O(result); -/******/ } -/******/ -/******/ var chunkLoadingGlobal = self["webpackChunkwporg_plugins_2024"] = self["webpackChunkwporg_plugins_2024"] || []; -/******/ chunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0)); -/******/ chunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal)); -/******/ })(); -/******/ -/************************************************************************/ -/******/ -/******/ // startup -/******/ // Load entry module and return exports -/******/ // This entry module depends on other loaded chunks and execution need to be delayed -/******/ var __webpack_exports__ = __webpack_require__.O(undefined, ["blocks/card/style-index"], () => (__webpack_require__("./src/blocks/card/index.js"))) -/******/ __webpack_exports__ = __webpack_require__.O(__webpack_exports__); -/******/ -/******/ })() -; -//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/card/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/card/render.php deleted file mode 100644 index f4ac504879..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/card/render.php +++ /dev/null @@ -1,27 +0,0 @@ - -
    - -

    - {$block->attributes['title']} -

    - - $content -
    - -HTML; - -$output = sprintf( - '
    %2$s
    ', - wp_kses_data( get_block_wrapper_attributes() ), - $html, -); - -echo do_blocks( $output ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/card/style-index.css b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/card/style-index.css deleted file mode 100644 index 9de758353f..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/card/style-index.css +++ /dev/null @@ -1,8 +0,0 @@ -/*!***************************************************************************************************************************************************************************************************************************************************!*\ - !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/blocks/card/style.scss ***! - \***************************************************************************************************************************************************************************************************************************************************/ -.wp-block-wporg-release-draft { - font-size: var(--wp--preset--font-size--small); -} - -/*# sourceMappingURL=style-index.css.map*/ \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks/render.php index de7a1aa6b5..b7a4b97b90 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks/render.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks/render.php @@ -1,12 +1,8 @@ ' . __( 'No issues found.', 'wporg-plugins' ) . '

    '; + } + + $output = '
      '; + + foreach ( $results as $result ) { + $type_class = isset( $result['type'] ) ? strtolower( $result['type'] ) : ''; + + $output .= sprintf( + '
    • %1$s %2$s
    • ', + esc_html( $result['message'] ), + ! empty( $result['docs'] ) + ? sprintf( + '%s', + esc_url( $result['docs'] ), + __( 'More Information', 'wporg-plugins' ) + ) + : '' + ); + } + + $output .= '
    '; + + return $output; +} + +/** + * Get the counts of each error type. + * + * @param array $result The plugin check result. + * + * @return array Array of error type counts. + */ +function get_error_type_counts( $result ) { + return array_reduce( + $result ?? array(), + function ( $carry, $item ) { + if ( isset( $item['type'] ) ) { + $carry[ $item['type'] ] = ( $carry[ $item['type'] ] ?? 0 ) + 1; + } + return $carry; + }, + array( + 'ERROR' => 0, + 'WARNING' => 0, + ) + ); +} + +/** + * Get the test run message. + * + * @param object $plugin_check_errors The plugin check errors. + * + * @return string The test run message. + */ +function get_test_run_message( $plugin_check_errors ) { + + $plugin_check_link = sprintf( + '%s', + esc_url( 'https://wordpress.org/plugins/plugin-check' ), + esc_html__( 'Plugin Check (PCP)', 'wporg-plugins' ) + ); + + if ( $plugin_check_errors->verdict ) { + return sprintf( + /* translators: %1$s is a link to the Plugin Check (PCP) tool. */ + __( 'Passed the %1$s.', 'wporg-plugins' ), + $plugin_check_link + ); + } + + $counts = get_error_type_counts( $plugin_check_errors['results'] ); + + $error_message = sprintf( _n( '%s error', '%s errors', $counts['ERROR'], 'wporg-plugins' ), $counts['ERROR'] ); + $warning_message = sprintf( _n( '%s warning', '%s warnings', $counts['WARNING'], 'wporg-plugins' ), $counts['WARNING'] ); + $message = ''; + + if ( empty( $counts['ERROR'] ) ) { + $message = $warning_message; + } elseif ( empty( $counts['WARNING'] ) ) { + $message = $error_message; + } else { + /* translators: %1$s: number of errors, %2$s: number of warnings */ + $message = sprintf( + '%1$s and %2$s', + $error_message, + $warning_message + ); + } + + return sprintf( + '
    %1$s%2$s
    ', + sprintf( + /* translators: %1$s is a link to the Plugin Check (PCP) tool. */ + __( '%1$s completed with %2$s.', 'wporg-plugins' ), + $plugin_check_link, + $message + ), + format_plugin_check_results( $plugin_check_errors['results'] ), + ); +} + $plugin_check_errors = get_post_meta( get_post( $block->context['postId'] )->ID, 'plugin_check_result', true ); $heading = sprintf( @@ -36,8 +143,8 @@ // Create a block with the overall status. $status_block = sprintf( - '%2$s', - $plugin_check_errors['verdict'] ? 'success' : 'warning', + '%2$s', + $plugin_check_errors->verdict ? 'success' : 'error', get_test_run_message( $plugin_check_errors ) ); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-commits/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-commits/render.php index 827e1b442e..1f7388593b 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-commits/render.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-commits/render.php @@ -6,7 +6,10 @@ */ use WordPressdotorg\Plugin_Directory\Readme\Validator as Readme_Validator; -use function WordPressdotorg\Plugin_Directory\Theme\{get_plugin_slug, get_revision_log_link}; + +if ( ! current_user_can( 'plugin_admin_edit', $post ) ) { + return; +} if ( ! $block->context['postId'] ) { return; @@ -18,16 +21,79 @@ return '

    ' . __( 'No commits found.', 'wporg-plugins' ) . '

    '; } -// Newest commits first. -usort( - $commits, - function ( $a, $b ) { - return $b['date'] <=> $a['date']; +/** + * Count the number of files edited, added, and deleted in the given commits. + * + * @param array $commits Array of commits. + * @return array Associative array with keys 'edited', 'added', and 'deleted'. + */ +function count_file_changes( $commits ) { + $file_actions = array(); + + ksort( $commits ); + + foreach ( $commits as $commit ) { + if ( ! isset( $commit['actions'] ) || ! is_array( $commit['actions'] ) ) { + continue; + } + + foreach ( $commit['actions'] as $file_path => $action ) { + $file_actions[ $file_path ] = $action; + } + } + + $edited_files = array(); + $added_files = array(); + $deleted_files = array(); + + foreach ( $file_actions as $file_path => $action ) { + switch ( $action ) { + case 'M': + $edited_files[ $file_path ] = true; + break; + case 'A': + $added_files[ $file_path ] = true; + break; + case 'D': + $deleted_files[ $file_path ] = true; + break; + } + } + + return array( + 'edited' => count( $edited_files ), + 'added' => count( $added_files ), + 'deleted' => count( $deleted_files ), + ); +} + +/** + * Generate a summary of the changes made in the given commits. + * + * @param array $change_counts Associative array with keys 'edited', 'added', and 'deleted'. + * @return string Summary of the changes. + */ +function generate_summary( $change_counts ) { + $parts = array(); + + if ( $change_counts['added'] > 0 ) { + $parts[] = sprintf( '%d added', $change_counts['added'] ); + } + + if ( $change_counts['deleted'] > 0 ) { + $parts[] = sprintf( '%d deleted', $change_counts['deleted'] ); + } + + if ( $change_counts['edited'] > 0 ) { + $parts[] = sprintf( '%d edited', $change_counts['edited'] ); } -); -$maximum_commits = 5; -$sliced_commits = array_slice( $commits, 0, $maximum_commits ); + if ( empty( $parts ) ) { + return ''; + } + + return implode( ', ', $parts ); +} ?> @@ -41,59 +107,54 @@ function ( $a, $b ) { esc_attr__( 'Commits', 'wporg-plugins' ) ); + $change_counts = count_file_changes( $commits ); + $summary = generate_summary( $change_counts ); + + $subheading = sprintf( + ' + + ', + $summary + ); + echo do_blocks( $heading ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped + echo do_blocks( $subheading ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?> -
      +
      • + + ID, 20 ); ?> + display_name ); ?> + + %2$s', - esc_url( - sprintf( - 'https://plugins.trac.wordpress.org/changeset/%1$s/%2$s/trunk', - $commit['revision'], - get_plugin_slug() - ) - ), - esc_html( $commit['message'] ) - ); - ?> - + $release_post = get_post( $block->context['postId'] ); + $parent_post = get_post( $release_post->post_parent ); - - -
      • + - $maximum_commits ) : ?> -
      • - - - -
      • -
    diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-commits/style-index.css b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-commits/style-index.css index 017db2a6de..466d264c4f 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-commits/style-index.css +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-commits/style-index.css @@ -4,17 +4,15 @@ .wp-block-wporg-release-commits { margin-top: 0 !important; } - -.wp-block-wporg-release-commit-list { +.wp-block-wporg-release-commits ul { display: flex; flex-direction: column; gap: 8px; list-style: none; } -.wp-block-wporg-release-commit-list li { +.wp-block-wporg-release-commits li { display: flex; - gap: inherit; - align-items: center; + gap: 8px; } .wp-block-wporg-release-commit-author { @@ -24,12 +22,4 @@ font-weight: 500; } -.wp-block-wporg-release-commit-by-line { - color: var(--wp--preset--color--charcoal-4) !important; - font-size: 12px; -} -.wp-block-wporg-release-commit-by-line a { - color: var(--wp--preset--color--charcoal-4) !important; -} - /*# sourceMappingURL=style-index.css.map*/ \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-date/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-date/render.php index 1b2a451d80..9a98437739 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-date/render.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-date/render.php @@ -1,20 +1,15 @@ context['postId'] ) { return; } -$release_post = get_post( $block->context['postId'] ); -if ( ! $release_post ) { +$post = get_post( $block->context['postId'] ); +if ( ! $post ) { return; } -if ( 'publish' !== $release_post->post_status ) { +if ( 'publish' !== $post->post_status ) { return 3; } diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-details-form/block.json b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-details-form/block.json index b6b3110b03..46b5c89954 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-details-form/block.json +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-details-form/block.json @@ -14,8 +14,7 @@ "interactivity": true }, "usesContext": [ - "postId", - "pluginSlug" + "postId" ], "editorScript": "file:./index.js", "render": "file:./render.php", diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-details-form/index.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-details-form/index.asset.php index 3d43d176f6..6e0f2c76c1 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-details-form/index.asset.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-details-form/index.asset.php @@ -1 +1 @@ - array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => 'b33dec13bb1cbe0f3761'); + array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => '314ffa4356c58663de23'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-details-form/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-details-form/index.js index 50704550b2..81a050b9a2 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-details-form/index.js +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-details-form/index.js @@ -121,7 +121,7 @@ module.exports = window["wp"]["serverSideRender"]; \****************************************************/ /***/ ((module) => { -module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"wporg/release-details-form","version":"0.1.0","title":"Release Details Form","category":"design","icon":"","description":"A block to display release details form.","textdomain":"wporg","attributes":{},"supports":{"html":false,"interactivity":true},"usesContext":["postId","pluginSlug"],"editorScript":"file:./index.js","render":"file:./render.php","style":"file:./style-index.css"}'); +module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"wporg/release-details-form","version":"0.1.0","title":"Release Details Form","category":"design","icon":"","description":"A block to display release details form.","textdomain":"wporg","attributes":{},"supports":{"html":false,"interactivity":true},"usesContext":["postId"],"editorScript":"file:./index.js","render":"file:./render.php","style":"file:./style-index.css"}'); /***/ }) diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-details-form/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-details-form/render.php index fad7f60f7d..7d35e07a2a 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-details-form/render.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-details-form/render.php @@ -5,23 +5,23 @@ * @package WordPressdotorg\Plugin_Directory */ -use function WordPressdotorg\Plugin_Directory\Theme\{get_blueprint_url, get_latest_release, get_revision_changeset_link}; +use WordPressdotorg\Plugin_Directory\Template; +use function WordPressdotorg\Plugin_Directory\Theme\{get_blueprint_url, get_latest_release}; // Ensure the block context has a valid post ID. if ( empty( $block->context['postId'] ) ) { return; } -$release_post = get_post( $block->context['postId'] ); +$release_post = get_post( $block->context['postId'] ); +$current_version = get_post_meta( $block->context['postId'], 'release_version', true ); +$tested_up_to = get_post_meta( $block->context['postId'], 'release_tested', true ); // Bail if the release post does not exist. if ( ! $release_post ) { return; } -$current_version = get_post_meta( $block->context['postId'], 'release_version', true ); -$tested_up_to = get_post_meta( $block->context['postId'], 'release_tested', true ); - /** * Returns whether the tested_up_to value is recent. * @@ -49,17 +49,20 @@ function has_recently_been_tested( $tested_up_to ) { return $tested_major >= $latest_major; } + /** * Generate the HTML for a release item content block. * * @param string $label The label for the item. + * @param string $value The value for the item. * @param string $content The additional content or description. * @return string The formatted HTML content for the release item. */ -function get_release_item_content( $label, $content ) { +function get_release_item_content( $label, $value, $content ) { return sprintf( - '
    %1$s
    %2$s
    ', - esc_html( $label ), + '
    %1$s: %2$s
    %3$s
    ', + wp_kses_post( $label ), + wp_kses_post( $value ), wp_kses_post( $content ) ); } @@ -74,7 +77,7 @@ function get_release_item_content( $label, $content ) { function get_release_check_item( $status, $content ) { return do_blocks( sprintf( - '%2$s', + '%2$s', esc_attr( $status ), $content ) @@ -84,74 +87,23 @@ function get_release_check_item( $status, $content ) { /** * Generate the block content for the version number check item. * - * @param bool $verdict Whether the version number is valid. - * @param string $value The current version number. - * - * @return string The block content. - */ -function get_changelog_check_item() { - $label = __( 'Update your changelog with key changes.', 'wporg-plugins' ); - $info_text = sprintf( - 'Learn more about writing useful changelogs.', - esc_url( 'https://developer.wordpress.org/plugins/wordpress-org/plugin-developer-faq/#what-should-be-in-my-changelog' ), - ); - - $content = get_release_item_content( $label, $info_text ); - - return get_release_check_item( 'default', $content ); -} - -/** - * Generate the block content for the version number check item. - * - * @param bool $verdict Whether the version number is valid. - * @param string $value The current version number. - * - * @return string The block content. - */ -function get_view_diff_check_item( $post ) { - $label = __( 'Review your changes.', 'wporg-plugins' ); - $commits = get_post_meta( $post->ID, 'release_commit_log', true ); - $plugin = get_post( $post->post_parent ); - $info_text = sprintf( - /* translators: %s: URL to the plugin in the Plugin Directory */ - __( 'Scan through your changeset before publishing.', 'wporg-plugins' ), - esc_url( get_revision_changeset_link( $plugin->post_name, $commits ) ) - ); - $content = get_release_item_content( $label, $info_text ); - - return get_release_check_item( 'default', $content ); -} - -/** - * Generate the block content for the version number check item. - * - * @param bool $verdict Whether the version number is valid. - * @param string $value The current version number. + * @param bool $verdict Whether the version number is valid. + * @param string $value The current version number. + * @param WP_Post $release_post The release post object. * * @return string The block content. */ -function get_version_number_check_item( $verdict, $value ) { - $label = __( 'Increment your version number.', 'wporg-plugins' ); - - $info_text = sprintf( - /* translators: %s: The current version number */ - __( 'Current version: %s', 'wporg-plugins' ), - '' . $value . '', - ); - - $status = ''; +function get_version_number_check_item( $verdict, $value, $release_post ) { + $label = __( 'Version number', 'wporg-plugins' ); + $info_text = __( 'It looks like plugin version was incremented appropriately.', 'wporg-plugins' ); + $status = 'success'; if ( ! $verdict ) { $status = 'error'; - $info_text = sprintf( - /* translators: %s: The current version number */ - __( 'Your plugin\'s version number %s must be incremented before you can publish.', 'wporg-plugins' ), - '' . $value . '', - ); + $info_text = __( 'Please increment your plugin\'s version number.', 'wporg-plugins' ); } - $content = get_release_item_content( $label, $info_text ); + $content = get_release_item_content( $label, $value, $info_text ); return get_release_check_item( $status, $content ); } @@ -159,32 +111,29 @@ function get_version_number_check_item( $verdict, $value ) { /** * Generate the block content for the "Tested up to" check item. * - * @param bool $verdict Whether the tested up to value is recent. - * @param string $value The tested up to value. - * @param WP_Post $release_post The release post object. - * + * @param string $value The tested up to value. * @return string The block content. */ function get_tested_up_to_check_item( $verdict, $value, $release_post ) { $label = __( - 'Test your plugin with the latest version of WordPress.', + 'Tested up to', 'wporg-plugins' ); - $status = ''; + $status = 'success'; - $plugin = get_post( $release_post->post_parent ); + $parent = get_post( $release_post->post_parent ); $blueprint_url = get_blueprint_url( sprintf( 'https://downloads.wordpress.org/plugin/%s.zip', - $plugin->post_name, + $parent->post_name, ) ); $info_text = sprintf( - /* translators: %s: The Tested Up to value */ - __( 'Tested up to: %s', 'wporg-plugins' ), - '' . $value . '', + /* translators: %s: URL to the plugin in the Plugin Directory */ + __( 'Everything looks great! Playground makes testing easy. If needed, you can test it here.', 'wporg-plugins' ), + esc_url( $blueprint_url ) ); if ( empty( $value ) ) { @@ -195,13 +144,12 @@ function get_tested_up_to_check_item( $verdict, $value, $release_post ) { $status = 'warning'; $info_text = sprintf( /* translators: %s: URL to the plugin in the Plugin Directory */ - __( 'Tested up to is %1$s. Test it now in Playground and update. ', 'wporg-plugins' ), - '' . $value . '', + __( 'Your plugin has been tested with recent versions of WordPress! Test it now in Playground.', 'wporg-plugins' ), esc_url( $blueprint_url ) ); } - $content = get_release_item_content( $label, $info_text ); + $content = get_release_item_content( $label, $value, $info_text ); return get_release_check_item( $status, $content ); } @@ -218,38 +166,22 @@ function get_tested_up_to_check_item( $verdict, $value, $release_post ) { data-wp-interactive="async-action-block" > - -

    %s

    - ', - esc_html__( 'Checklist', 'wporg-plugins' ) - ) + +

    %s

    + ', + esc_html__( 'Headers', 'wporg-plugins' ) ) - ?> + ); +?> +
      - - - +
    - - - //
    - //
    - //

    %s

    - //
    - // ', - // esc_html__( 'You need to increment your plugin version number and reload the page.', 'wporg-plugins' ) - // ); - // echo do_blocks( $block ); - ?> -
    -
    - -
    - -
    - -

    - $publish_title -

    - -
    - - - -

    $publish_intro_text

    - +
    + +
    + +
    + +

    + $publish_title +

    + +
    + - + +

    $publish_intro_text

    + + +
    +
    - -
    + HTML; printf( diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft copy/style-index.css b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft copy/style-index.css index 12c4011027..c229af784c 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft copy/style-index.css +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft copy/style-index.css @@ -4,5 +4,9 @@ .wp-block-wporg-release-draft { font-size: var(--wp--preset--font-size--small); } +.wp-block-wporg-release-draft ul { + margin-top: var(--wp--preset--spacing--10); + padding: 0; +} /*# sourceMappingURL=style-index.css.map*/ \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-card/block.json b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-card/block.json deleted file mode 100644 index ac65278c75..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-card/block.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "$schema": "https://schemas.wp.org/trunk/block.json", - "apiVersion": 2, - "name": "wporg/release-draft-card", - "version": "0.1.0", - "title": "Release Card", - "category": "design", - "icon": "", - "description": "A block to display release draft card.", - "textdomain": "wporg", - "attributes": { - "title": { - "type": "string", - "default": "" - } - }, - "supports": { - "html": false, - "interactivity": true - }, - "usesContext": [ - "postId" - ], - "editorScript": "file:./index.js", - "render": "file:./render.php", - "style": "file:./style-index.css" -} \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-card/index.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-card/index.asset.php deleted file mode 100644 index 0dec727d7d..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-card/index.asset.php +++ /dev/null @@ -1 +0,0 @@ - array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => 'ff8e2cb22c250b0d6bfe'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-card/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-card/index.js deleted file mode 100644 index 602db4b870..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-card/index.js +++ /dev/null @@ -1,298 +0,0 @@ -/******/ (() => { // webpackBootstrap -/******/ "use strict"; -/******/ var __webpack_modules__ = ({ - -/***/ "./src/blocks/release-draft-card/index.js": -/*!************************************************!*\ - !*** ./src/blocks/release-draft-card/index.js ***! - \************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); -/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/blocks */ "@wordpress/blocks"); -/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/server-side-render */ "@wordpress/server-side-render"); -/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/block-editor */ "@wordpress/block-editor"); -/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__); -/* harmony import */ var _block_json__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./block.json */ "./src/blocks/release-draft-card/block.json"); -/* harmony import */ var _style_scss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./style.scss */ "./src/blocks/release-draft-card/style.scss"); - -/** - * WordPress dependencies - */ - - - - - -/** - * Internal dependencies - */ - - -function Edit({ - attributes, - name -}) { - return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", { - ...(0,_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__.useBlockProps)() - }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Disabled, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)((_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default()), { - block: name, - attributes: attributes - }))); -} -(0,_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__.registerBlockType)(_block_json__WEBPACK_IMPORTED_MODULE_5__.name, { - edit: Edit, - save: () => null -}); - -/***/ }), - -/***/ "./src/blocks/release-draft-card/style.scss": -/*!**************************************************!*\ - !*** ./src/blocks/release-draft-card/style.scss ***! - \**************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -// extracted by mini-css-extract-plugin - - -/***/ }), - -/***/ "react": -/*!************************!*\ - !*** external "React" ***! - \************************/ -/***/ ((module) => { - -module.exports = window["React"]; - -/***/ }), - -/***/ "@wordpress/block-editor": -/*!*************************************!*\ - !*** external ["wp","blockEditor"] ***! - \*************************************/ -/***/ ((module) => { - -module.exports = window["wp"]["blockEditor"]; - -/***/ }), - -/***/ "@wordpress/blocks": -/*!********************************!*\ - !*** external ["wp","blocks"] ***! - \********************************/ -/***/ ((module) => { - -module.exports = window["wp"]["blocks"]; - -/***/ }), - -/***/ "@wordpress/components": -/*!************************************!*\ - !*** external ["wp","components"] ***! - \************************************/ -/***/ ((module) => { - -module.exports = window["wp"]["components"]; - -/***/ }), - -/***/ "@wordpress/server-side-render": -/*!******************************************!*\ - !*** external ["wp","serverSideRender"] ***! - \******************************************/ -/***/ ((module) => { - -module.exports = window["wp"]["serverSideRender"]; - -/***/ }), - -/***/ "./src/blocks/release-draft-card/block.json": -/*!**************************************************!*\ - !*** ./src/blocks/release-draft-card/block.json ***! - \**************************************************/ -/***/ ((module) => { - -module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"wporg/release-draft-card","version":"0.1.0","title":"Release Card","category":"design","icon":"","description":"A block to display release draft card.","textdomain":"wporg","attributes":{"title":{"type":"string","default":""}},"supports":{"html":false,"interactivity":true},"usesContext":["postId"],"editorScript":"file:./index.js","render":"file:./render.php","style":"file:./style-index.css"}'); - -/***/ }) - -/******/ }); -/************************************************************************/ -/******/ // The module cache -/******/ var __webpack_module_cache__ = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ // Check if module is in cache -/******/ var cachedModule = __webpack_module_cache__[moduleId]; -/******/ if (cachedModule !== undefined) { -/******/ return cachedModule.exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = __webpack_module_cache__[moduleId] = { -/******/ // no module.id needed -/******/ // no module.loaded needed -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = __webpack_modules__; -/******/ -/************************************************************************/ -/******/ /* webpack/runtime/chunk loaded */ -/******/ (() => { -/******/ var deferred = []; -/******/ __webpack_require__.O = (result, chunkIds, fn, priority) => { -/******/ if(chunkIds) { -/******/ priority = priority || 0; -/******/ for(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1]; -/******/ deferred[i] = [chunkIds, fn, priority]; -/******/ return; -/******/ } -/******/ var notFulfilled = Infinity; -/******/ for (var i = 0; i < deferred.length; i++) { -/******/ var chunkIds = deferred[i][0]; -/******/ var fn = deferred[i][1]; -/******/ var priority = deferred[i][2]; -/******/ var fulfilled = true; -/******/ for (var j = 0; j < chunkIds.length; j++) { -/******/ if ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) { -/******/ chunkIds.splice(j--, 1); -/******/ } else { -/******/ fulfilled = false; -/******/ if(priority < notFulfilled) notFulfilled = priority; -/******/ } -/******/ } -/******/ if(fulfilled) { -/******/ deferred.splice(i--, 1) -/******/ var r = fn(); -/******/ if (r !== undefined) result = r; -/******/ } -/******/ } -/******/ return result; -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/compat get default export */ -/******/ (() => { -/******/ // getDefaultExport function for compatibility with non-harmony modules -/******/ __webpack_require__.n = (module) => { -/******/ var getter = module && module.__esModule ? -/******/ () => (module['default']) : -/******/ () => (module); -/******/ __webpack_require__.d(getter, { a: getter }); -/******/ return getter; -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/define property getters */ -/******/ (() => { -/******/ // define getter functions for harmony exports -/******/ __webpack_require__.d = (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 */ -/******/ (() => { -/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) -/******/ })(); -/******/ -/******/ /* webpack/runtime/make namespace object */ -/******/ (() => { -/******/ // define __esModule on exports -/******/ __webpack_require__.r = (exports) => { -/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { -/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); -/******/ } -/******/ Object.defineProperty(exports, '__esModule', { value: true }); -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/jsonp chunk loading */ -/******/ (() => { -/******/ // no baseURI -/******/ -/******/ // object to store loaded and loading chunks -/******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched -/******/ // [resolve, reject, Promise] = chunk loading, 0 = chunk loaded -/******/ var installedChunks = { -/******/ "blocks/release-draft-card/index": 0, -/******/ "blocks/release-draft-card/style-index": 0 -/******/ }; -/******/ -/******/ // no chunk on demand loading -/******/ -/******/ // no prefetching -/******/ -/******/ // no preloaded -/******/ -/******/ // no HMR -/******/ -/******/ // no HMR manifest -/******/ -/******/ __webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0); -/******/ -/******/ // install a JSONP callback for chunk loading -/******/ var webpackJsonpCallback = (parentChunkLoadingFunction, data) => { -/******/ var chunkIds = data[0]; -/******/ var moreModules = data[1]; -/******/ var runtime = data[2]; -/******/ // add "moreModules" to the modules object, -/******/ // then flag all "chunkIds" as loaded and fire callback -/******/ var moduleId, chunkId, i = 0; -/******/ if(chunkIds.some((id) => (installedChunks[id] !== 0))) { -/******/ for(moduleId in moreModules) { -/******/ if(__webpack_require__.o(moreModules, moduleId)) { -/******/ __webpack_require__.m[moduleId] = moreModules[moduleId]; -/******/ } -/******/ } -/******/ if(runtime) var result = runtime(__webpack_require__); -/******/ } -/******/ if(parentChunkLoadingFunction) parentChunkLoadingFunction(data); -/******/ for(;i < chunkIds.length; i++) { -/******/ chunkId = chunkIds[i]; -/******/ if(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) { -/******/ installedChunks[chunkId][0](); -/******/ } -/******/ installedChunks[chunkId] = 0; -/******/ } -/******/ return __webpack_require__.O(result); -/******/ } -/******/ -/******/ var chunkLoadingGlobal = self["webpackChunkwporg_plugins_2024"] = self["webpackChunkwporg_plugins_2024"] || []; -/******/ chunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0)); -/******/ chunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal)); -/******/ })(); -/******/ -/************************************************************************/ -/******/ -/******/ // startup -/******/ // Load entry module and return exports -/******/ // This entry module depends on other loaded chunks and execution need to be delayed -/******/ var __webpack_exports__ = __webpack_require__.O(undefined, ["blocks/release-draft-card/style-index"], () => (__webpack_require__("./src/blocks/release-draft-card/index.js"))) -/******/ __webpack_exports__ = __webpack_require__.O(__webpack_exports__); -/******/ -/******/ })() -; -//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-card/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-card/render.php deleted file mode 100644 index 8e273d7e29..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-card/render.php +++ /dev/null @@ -1,25 +0,0 @@ - -
    - -

    - $post_title -

    - - $block->inner_html ); -
    - -HTML; - -printf( - '
    %2$s
    ', - wp_kses_data( get_block_wrapper_attributes() ), - do_blocks( $markup ) // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-card/style-index.css b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-card/style-index.css deleted file mode 100644 index 1e76ec694e..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-card/style-index.css +++ /dev/null @@ -1,8 +0,0 @@ -/*!*****************************************************************************************************************************************************************************************************************************************************************!*\ - !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/blocks/release-draft-card/style.scss ***! - \*****************************************************************************************************************************************************************************************************************************************************************/ -.wp-block-wporg-release-draft { - font-size: var(--wp--preset--font-size--small); -} - -/*# sourceMappingURL=style-index.css.map*/ \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-content/block.json b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-content/block.json deleted file mode 100644 index ca88e99adf..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-content/block.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "$schema": "https://schemas.wp.org/trunk/block.json", - "apiVersion": 2, - "name": "wporg/release-draft-content", - "version": "0.1.0", - "title": "Release Content", - "category": "design", - "icon": "", - "description": "A block to display release draft content.", - "textdomain": "wporg", - "attributes": { - "title": { - "type": "string", - "default": "" - } - }, - "supports": { - "html": false, - "interactivity": true - }, - "usesContext": [ - "postId" - ], - "editorScript": "file:./index.js", - "render": "file:./render.php", - "style": "file:./style-index.css" -} \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-content/index.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-content/index.asset.php deleted file mode 100644 index e056aa5178..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-content/index.asset.php +++ /dev/null @@ -1 +0,0 @@ - array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => '2e6e4bdad85f284eebf2'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-content/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-content/index.js deleted file mode 100644 index ad8c9bcd69..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-content/index.js +++ /dev/null @@ -1,298 +0,0 @@ -/******/ (() => { // webpackBootstrap -/******/ "use strict"; -/******/ var __webpack_modules__ = ({ - -/***/ "./src/blocks/release-draft-content/index.js": -/*!***************************************************!*\ - !*** ./src/blocks/release-draft-content/index.js ***! - \***************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); -/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/blocks */ "@wordpress/blocks"); -/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/server-side-render */ "@wordpress/server-side-render"); -/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/block-editor */ "@wordpress/block-editor"); -/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__); -/* harmony import */ var _block_json__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./block.json */ "./src/blocks/release-draft-content/block.json"); -/* harmony import */ var _style_scss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./style.scss */ "./src/blocks/release-draft-content/style.scss"); - -/** - * WordPress dependencies - */ - - - - - -/** - * Internal dependencies - */ - - -function Edit({ - attributes, - name -}) { - return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", { - ...(0,_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__.useBlockProps)() - }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Disabled, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)((_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default()), { - block: name, - attributes: attributes - }))); -} -(0,_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__.registerBlockType)(_block_json__WEBPACK_IMPORTED_MODULE_5__.name, { - edit: Edit, - save: () => null -}); - -/***/ }), - -/***/ "./src/blocks/release-draft-content/style.scss": -/*!*****************************************************!*\ - !*** ./src/blocks/release-draft-content/style.scss ***! - \*****************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -// extracted by mini-css-extract-plugin - - -/***/ }), - -/***/ "react": -/*!************************!*\ - !*** external "React" ***! - \************************/ -/***/ ((module) => { - -module.exports = window["React"]; - -/***/ }), - -/***/ "@wordpress/block-editor": -/*!*************************************!*\ - !*** external ["wp","blockEditor"] ***! - \*************************************/ -/***/ ((module) => { - -module.exports = window["wp"]["blockEditor"]; - -/***/ }), - -/***/ "@wordpress/blocks": -/*!********************************!*\ - !*** external ["wp","blocks"] ***! - \********************************/ -/***/ ((module) => { - -module.exports = window["wp"]["blocks"]; - -/***/ }), - -/***/ "@wordpress/components": -/*!************************************!*\ - !*** external ["wp","components"] ***! - \************************************/ -/***/ ((module) => { - -module.exports = window["wp"]["components"]; - -/***/ }), - -/***/ "@wordpress/server-side-render": -/*!******************************************!*\ - !*** external ["wp","serverSideRender"] ***! - \******************************************/ -/***/ ((module) => { - -module.exports = window["wp"]["serverSideRender"]; - -/***/ }), - -/***/ "./src/blocks/release-draft-content/block.json": -/*!*****************************************************!*\ - !*** ./src/blocks/release-draft-content/block.json ***! - \*****************************************************/ -/***/ ((module) => { - -module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"wporg/release-draft-content","version":"0.1.0","title":"Release Content","category":"design","icon":"","description":"A block to display release draft content.","textdomain":"wporg","attributes":{"title":{"type":"string","default":""}},"supports":{"html":false,"interactivity":true},"usesContext":["postId"],"editorScript":"file:./index.js","render":"file:./render.php","style":"file:./style-index.css"}'); - -/***/ }) - -/******/ }); -/************************************************************************/ -/******/ // The module cache -/******/ var __webpack_module_cache__ = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ // Check if module is in cache -/******/ var cachedModule = __webpack_module_cache__[moduleId]; -/******/ if (cachedModule !== undefined) { -/******/ return cachedModule.exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = __webpack_module_cache__[moduleId] = { -/******/ // no module.id needed -/******/ // no module.loaded needed -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = __webpack_modules__; -/******/ -/************************************************************************/ -/******/ /* webpack/runtime/chunk loaded */ -/******/ (() => { -/******/ var deferred = []; -/******/ __webpack_require__.O = (result, chunkIds, fn, priority) => { -/******/ if(chunkIds) { -/******/ priority = priority || 0; -/******/ for(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1]; -/******/ deferred[i] = [chunkIds, fn, priority]; -/******/ return; -/******/ } -/******/ var notFulfilled = Infinity; -/******/ for (var i = 0; i < deferred.length; i++) { -/******/ var chunkIds = deferred[i][0]; -/******/ var fn = deferred[i][1]; -/******/ var priority = deferred[i][2]; -/******/ var fulfilled = true; -/******/ for (var j = 0; j < chunkIds.length; j++) { -/******/ if ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) { -/******/ chunkIds.splice(j--, 1); -/******/ } else { -/******/ fulfilled = false; -/******/ if(priority < notFulfilled) notFulfilled = priority; -/******/ } -/******/ } -/******/ if(fulfilled) { -/******/ deferred.splice(i--, 1) -/******/ var r = fn(); -/******/ if (r !== undefined) result = r; -/******/ } -/******/ } -/******/ return result; -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/compat get default export */ -/******/ (() => { -/******/ // getDefaultExport function for compatibility with non-harmony modules -/******/ __webpack_require__.n = (module) => { -/******/ var getter = module && module.__esModule ? -/******/ () => (module['default']) : -/******/ () => (module); -/******/ __webpack_require__.d(getter, { a: getter }); -/******/ return getter; -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/define property getters */ -/******/ (() => { -/******/ // define getter functions for harmony exports -/******/ __webpack_require__.d = (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 */ -/******/ (() => { -/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) -/******/ })(); -/******/ -/******/ /* webpack/runtime/make namespace object */ -/******/ (() => { -/******/ // define __esModule on exports -/******/ __webpack_require__.r = (exports) => { -/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { -/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); -/******/ } -/******/ Object.defineProperty(exports, '__esModule', { value: true }); -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/jsonp chunk loading */ -/******/ (() => { -/******/ // no baseURI -/******/ -/******/ // object to store loaded and loading chunks -/******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched -/******/ // [resolve, reject, Promise] = chunk loading, 0 = chunk loaded -/******/ var installedChunks = { -/******/ "blocks/release-draft-content/index": 0, -/******/ "blocks/release-draft-content/style-index": 0 -/******/ }; -/******/ -/******/ // no chunk on demand loading -/******/ -/******/ // no prefetching -/******/ -/******/ // no preloaded -/******/ -/******/ // no HMR -/******/ -/******/ // no HMR manifest -/******/ -/******/ __webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0); -/******/ -/******/ // install a JSONP callback for chunk loading -/******/ var webpackJsonpCallback = (parentChunkLoadingFunction, data) => { -/******/ var chunkIds = data[0]; -/******/ var moreModules = data[1]; -/******/ var runtime = data[2]; -/******/ // add "moreModules" to the modules object, -/******/ // then flag all "chunkIds" as loaded and fire callback -/******/ var moduleId, chunkId, i = 0; -/******/ if(chunkIds.some((id) => (installedChunks[id] !== 0))) { -/******/ for(moduleId in moreModules) { -/******/ if(__webpack_require__.o(moreModules, moduleId)) { -/******/ __webpack_require__.m[moduleId] = moreModules[moduleId]; -/******/ } -/******/ } -/******/ if(runtime) var result = runtime(__webpack_require__); -/******/ } -/******/ if(parentChunkLoadingFunction) parentChunkLoadingFunction(data); -/******/ for(;i < chunkIds.length; i++) { -/******/ chunkId = chunkIds[i]; -/******/ if(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) { -/******/ installedChunks[chunkId][0](); -/******/ } -/******/ installedChunks[chunkId] = 0; -/******/ } -/******/ return __webpack_require__.O(result); -/******/ } -/******/ -/******/ var chunkLoadingGlobal = self["webpackChunkwporg_plugins_2024"] = self["webpackChunkwporg_plugins_2024"] || []; -/******/ chunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0)); -/******/ chunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal)); -/******/ })(); -/******/ -/************************************************************************/ -/******/ -/******/ // startup -/******/ // Load entry module and return exports -/******/ // This entry module depends on other loaded chunks and execution need to be delayed -/******/ var __webpack_exports__ = __webpack_require__.O(undefined, ["blocks/release-draft-content/style-index"], () => (__webpack_require__("./src/blocks/release-draft-content/index.js"))) -/******/ __webpack_exports__ = __webpack_require__.O(__webpack_exports__); -/******/ -/******/ })() -; -//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-content/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-content/render.php deleted file mode 100644 index 4132cb8682..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-content/render.php +++ /dev/null @@ -1,25 +0,0 @@ - -
    - -

    - $post_title -

    - - $block->inner_html ); -
    - -HTML; - -printf( - '
    %2$s
    ', - wp_kses_data( get_block_wrapper_attributes() ), - do_blocks( $markup ) // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-content/style-index.css b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-content/style-index.css deleted file mode 100644 index 5ca238dd3c..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-content/style-index.css +++ /dev/null @@ -1,8 +0,0 @@ -/*!********************************************************************************************************************************************************************************************************************************************************************!*\ - !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/blocks/release-draft-content/style.scss ***! - \********************************************************************************************************************************************************************************************************************************************************************/ -.wp-block-wporg-release-draft { - font-size: var(--wp--preset--font-size--small); -} - -/*# sourceMappingURL=style-index.css.map*/ \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft/render.php index e753c05f55..f412bc815f 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft/render.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft/render.php @@ -1,9 +1,4 @@ context['postId'] ); +$post = get_post( $block->context['postId'] ); -if ( ! $plugin_post ) { +if ( ! $post ) { return; } -/** - * We are in the context of the plugin post, so we can query for the latest draft post. - */ +// get release for the post $query_args = array( 'post_type' => 'plugin_release', 'posts_per_page' => 1, - 'post_parent' => $plugin_post->ID, + 'post_parent' => $post->ID, 'orderby' => 'date', 'post_status' => 'draft', 'order' => 'DESC', @@ -39,39 +32,82 @@ // Fetch the latest draft post. $latest_draft_query->the_post(); +$post_title = __( 'Trunk', 'wporg-plugins' ); +$intro_text = __( 'There are unpublished changes in your trunk folder.', 'wporg-plugins' ); -$post_title = __( 'Trunk', 'wporg-plugins' ); -$intro_text = __( 'There are unpublished changes in your trunk folder.', 'wporg-plugins' ); -$button_text = __( 'Create release', 'wporg-plugins' ); -$publish_title = __( 'Create release', 'wporg-plugins' ); +$publish_title = __( 'Create release', 'wporg-plugins' ); +$publish_intro_text = __( 'Before releasing your plugin, take a moment to verify and update the following values:', 'wporg-plugins' ); +$publish_button_text = __( 'Create release', 'wporg-plugins' ); $markup = << - - -

    $intro_text

    - +
    + +
    + +
    + +
    - - + +
    + +

    + $post_title +

    + + +
    + - -
    + +

    $intro_text

    + + +
    + +
    + + + +
    + + +
    + +
    - +
    +
    -
    - - - +
    + +
    + +
    + +

    + $publish_title +

    + +
    + + + +

    $publish_intro_text

    + + + +
    +
    + HTML; printf( diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft/style-index.css b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft/style-index.css index 9358999193..c62356a785 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft/style-index.css +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft/style-index.css @@ -4,5 +4,12 @@ .wp-block-wporg-release-draft { font-size: var(--wp--preset--font-size--small); } +.wp-block-wporg-release-draft ul { + margin-top: var(--wp--preset--spacing--10); + padding: 0; + display: flex; + flex-direction: column; + gap: 12px; +} /*# sourceMappingURL=style-index.css.map*/ \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft/view.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft/view.asset.php index f72123147f..cb485ea595 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft/view.asset.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft/view.asset.php @@ -1 +1 @@ - array('@wordpress/interactivity'), 'version' => 'b2c4b9d88f9bf4c4b32c', 'type' => 'module'); + array('@wordpress/interactivity'), 'version' => '63814ecbf0fd013d56ae', 'type' => 'module'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft/view.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft/view.js index d5acc8111d..75e14f6d6d 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft/view.js +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft/view.js @@ -68,48 +68,49 @@ const { state } = (0,_wordpress_interactivity__WEBPACK_IMPORTED_MODULE_0__.store)('async-action-block', { state: { - get userHasConfirmed() { - return state.hasConfirmed; - } + preSubmitting: false, + isWaiting: false, + isComplete: false, + errorMessage: '' }, actions: { - handleReleaseConfirm() { - state.hasConfirmed = !state.hasConfirmed; + handlePreSubmit(event) { + event.preventDefault(); + console.log('called'); + state.preSubmitting = true; }, handleBackClick(event) { event.preventDefault(); - state.isCreatingRelease = false; - - // Make user reconfirm. - state.hasConfirmed = false; + state.preSubmitting = false; }, *handleSubmit(event) { + // Prevent default form submission event.preventDefault(); + + // Set waiting state state.isWaiting = true; + state.isComplete = false; state.errorMessage = ''; - const { - pluginSlug, - nonce, - apiURL - } = (0,_wordpress_interactivity__WEBPACK_IMPORTED_MODULE_0__.getContext)(); + state.btnText = 'Processing...'; try { - const response = yield fetch(apiURL, { + const response = yield fetch('/plugins/wp-json/plugins/v2/plugin/clapback/release', { method: 'POST', headers: { - 'Content-Type': 'application/json', - 'X-WP-Nonce': nonce - }, - body: JSON.stringify({ - plugin_slug: pluginSlug - }) + 'Content-Type': 'application/json' + } }); const data = yield response.json(); // Update state based on response - if (data.success) {} else { + if (data.success) { + state.isComplete = true; + } else { state.errorMessage = data.message || 'Action failed'; + state.btnText = 'failed'; } } catch (error) { + debugger; + state.btnText = 'failed...'; state.errorMessage = 'Network error occurred'; } finally { state.isWaiting = false; diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-menu-options/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-menu-options/render.php index 61f288f3e5..4eda65229d 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-menu-options/render.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-menu-options/render.php @@ -1,11 +1,7 @@ context['postId'] ) { return; @@ -17,41 +13,43 @@ } $current_version = get_post_meta( $release_post->ID, 'release_version', true ); -$download_link = get_download_link( $release_post->post_parent, $current_version ); -$download_link_html = sprintf( + +$download_link = sprintf( '', - __( 'Download', 'wporg-plugins' ), - esc_url( $download_link ) + esc_html( 'Download', 'wporg-plugins' ), + esc_url( get_blueprint_url( Template::download_link( $release_post->post_parent, $current_version ) ) ) ); -$blueprint_link_html = sprintf( +$blueprint_link = sprintf( '', - __( 'Load in Playground', 'wporg-plugins' ), - esc_url( get_blueprint_url( get_download_link( $current_version ) ) ) + esc_html( 'Load in Playground', 'wporg-plugins' ), + esc_url( $encoded_blueprint_url ) ); -$changes_link_html = ''; -$releases = get_releases(); +$changes_link = ''; +$releases = get_releases( $release_post->post_parent ); $previous_version = get_previous_version( $release_post, $releases ); if ( null !== $previous_version ) { - $changes_link_html = sprintf( + $changes_link = sprintf( '', - __( 'View changes', 'wporg-plugins' ), - esc_url( get_trac_changeset_link( $previous_version, $current_version ) ) + esc_html( 'View changes', 'wporg-plugins' ), + esc_url( get_trac_changeset_link( $release_post->post_parent, $previous_version, $current_version ) ) ); } +$submenu = sprintf( + '%2$s%3$s%4$s', + esc_html( 'Release options', 'wporg-plugins' ), + $download_link, + $blueprint_link, + $changes_link +); + $navigation = sprintf( '%2$s', - __( 'Release options', 'wporg-plugins' ), - sprintf( - '%2$s%3$s%4$s', - __( 'Release options', 'wporg-plugins' ), - $download_link_html, - $blueprint_link_html, - $changes_link_html - ) + esc_html( 'Release options', 'release options label', 'wporg-plugins' ), + $submenu ); -echo do_blocks( $navigation ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped +echo do_blocks( $navigation ); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-page/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-page/render.php index f939f21d4b..878b57533b 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-page/render.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-page/render.php @@ -1,55 +1,88 @@ context['postId'] ) { +if ( ! current_user_can( 'plugin_admin_edit', $post ) ) { return; } -$plugin_post = get_post( $block->context['postId'] ); +$release_post = get_post( $post->ID ); -if ( ! $plugin_post ) { +if ( ! $release_post ) { return; } -$heading_text = __( 'Releases', 'wporg-plugins' ); - +// Why use `do_blocks` here? for some reason, just outputting the content directly doesn't work and context gets messed up. $markup = << -

    $heading_text

    +

    Releases

    -
    - - - +
    + + + + + + +
    + + +
    + +
    + +
    + + +
    + + + +
    + +
    + +
    + + +
    + + + + + + + + + + +

    There are no releases yet

    + + - +
    +
    HTML; -/** - * Create initial state for the async-action-block. - */ -wp_interactivity_state( - 'async-action-block', - array( - 'isCreatingRelease' => false, - ) -); -/** - * Create initial context for the async-action-block. - */ +// Interactivity API context +$form_context = array( + 'btnDefaultText' => 'Publish release', + 'btnLoadingText' => 'Publishing...', + 'preSubmitting' => false, + 'isWaiting' => false, + 'isComplete' => false, + 'errorMessage' => '', + 'pluginSlug' => $release_post->post_name, + 'nonce' => wp_create_nonce( 'wp_rest' ) +); printf( - '
    %3$s
    ', - wp_kses_data( get_block_wrapper_attributes() ), + '
    %4$s
    ', 'data-wp-interactive="async-action-block"', + wp_kses_data( get_block_wrapper_attributes() ), + wp_interactivity_data_wp_context( $form_context ), // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped do_blocks( $markup ) // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-page/view.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-page/view.asset.php index 5af485fdc6..ba0cb7c190 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-page/view.asset.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-page/view.asset.php @@ -1 +1 @@ - array('@wordpress/interactivity'), 'version' => '1fd327936eb075a65867', 'type' => 'module'); + array('@wordpress/interactivity'), 'version' => '47b004f489f4a572490c', 'type' => 'module'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-page/view.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-page/view.js index a09e9f24bf..97204c48c2 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-page/view.js +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-page/view.js @@ -67,10 +67,19 @@ __webpack_require__.r(__webpack_exports__); const { state } = (0,_wordpress_interactivity__WEBPACK_IMPORTED_MODULE_0__.store)('async-action-block', { + state: { + get btnText() { + const { + btnDefaultText, + btnLoadingText + } = (0,_wordpress_interactivity__WEBPACK_IMPORTED_MODULE_0__.getContext)(); + return state.isWaiting ? btnLoadingText : btnDefaultText; + } + }, actions: { handlePreSubmit(event) { event.preventDefault(); - state.isCreatingRelease = true; + state.preSubmitting = true; const element = document.querySelector('.wp-block-wporg-release-page'); if (element) { element.scrollIntoView({ @@ -78,6 +87,46 @@ const { block: 'center' }); } + }, + handleBackClick(event) { + event.preventDefault(); + state.preSubmitting = false; + }, + *handleSubmit(event) { + // Prevent default form submission + event.preventDefault(); + debugger; + + // Set waiting state + state.isWaiting = true; + state.errorMessage = ''; + const { + pluginSlug, + nonce, + homeUrl + } = (0,_wordpress_interactivity__WEBPACK_IMPORTED_MODULE_0__.getContext)(); + try { + const response = yield fetch('/plugins/wp-json/plugins/v2/plugin/clapback/release', { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + 'X-WP-Nonce': nonce + }, + body: JSON.stringify({ + plugin_slug: pluginSlug + }) + }); + const data = yield response.json(); + + // Update state based on response + if (data.success) {} else { + state.errorMessage = data.message || 'Action failed'; + } + } catch (error) { + state.errorMessage = 'Network error occurred'; + } finally { + state.isWaiting = false; + } } } }); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish-release/block.json b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish-release/block.json deleted file mode 100644 index b6b3110b03..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish-release/block.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "$schema": "https://schemas.wp.org/trunk/block.json", - "apiVersion": 2, - "name": "wporg/release-details-form", - "version": "0.1.0", - "title": "Release Details Form", - "category": "design", - "icon": "", - "description": "A block to display release details form.", - "textdomain": "wporg", - "attributes": {}, - "supports": { - "html": false, - "interactivity": true - }, - "usesContext": [ - "postId", - "pluginSlug" - ], - "editorScript": "file:./index.js", - "render": "file:./render.php", - "style": "file:./style-index.css" -} \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish-release/index.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish-release/index.asset.php deleted file mode 100644 index 07b3729374..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish-release/index.asset.php +++ /dev/null @@ -1 +0,0 @@ - array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => '25dccf3833ad815f8698'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish-release/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish-release/index.js deleted file mode 100644 index 7923bc57a1..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish-release/index.js +++ /dev/null @@ -1,298 +0,0 @@ -/******/ (() => { // webpackBootstrap -/******/ "use strict"; -/******/ var __webpack_modules__ = ({ - -/***/ "./src/blocks/release-publish-release/index.js": -/*!*****************************************************!*\ - !*** ./src/blocks/release-publish-release/index.js ***! - \*****************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); -/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/blocks */ "@wordpress/blocks"); -/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/server-side-render */ "@wordpress/server-side-render"); -/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/block-editor */ "@wordpress/block-editor"); -/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__); -/* harmony import */ var _block_json__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./block.json */ "./src/blocks/release-publish-release/block.json"); -/* harmony import */ var _style_scss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./style.scss */ "./src/blocks/release-publish-release/style.scss"); - -/** - * WordPress dependencies - */ - - - - - -/** - * Internal dependencies - */ - - -function Edit({ - attributes, - name -}) { - return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", { - ...(0,_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__.useBlockProps)() - }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Disabled, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)((_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default()), { - block: name, - attributes: attributes - }))); -} -(0,_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__.registerBlockType)(_block_json__WEBPACK_IMPORTED_MODULE_5__.name, { - edit: Edit, - save: () => null -}); - -/***/ }), - -/***/ "./src/blocks/release-publish-release/style.scss": -/*!*******************************************************!*\ - !*** ./src/blocks/release-publish-release/style.scss ***! - \*******************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -// extracted by mini-css-extract-plugin - - -/***/ }), - -/***/ "react": -/*!************************!*\ - !*** external "React" ***! - \************************/ -/***/ ((module) => { - -module.exports = window["React"]; - -/***/ }), - -/***/ "@wordpress/block-editor": -/*!*************************************!*\ - !*** external ["wp","blockEditor"] ***! - \*************************************/ -/***/ ((module) => { - -module.exports = window["wp"]["blockEditor"]; - -/***/ }), - -/***/ "@wordpress/blocks": -/*!********************************!*\ - !*** external ["wp","blocks"] ***! - \********************************/ -/***/ ((module) => { - -module.exports = window["wp"]["blocks"]; - -/***/ }), - -/***/ "@wordpress/components": -/*!************************************!*\ - !*** external ["wp","components"] ***! - \************************************/ -/***/ ((module) => { - -module.exports = window["wp"]["components"]; - -/***/ }), - -/***/ "@wordpress/server-side-render": -/*!******************************************!*\ - !*** external ["wp","serverSideRender"] ***! - \******************************************/ -/***/ ((module) => { - -module.exports = window["wp"]["serverSideRender"]; - -/***/ }), - -/***/ "./src/blocks/release-publish-release/block.json": -/*!*******************************************************!*\ - !*** ./src/blocks/release-publish-release/block.json ***! - \*******************************************************/ -/***/ ((module) => { - -module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"wporg/release-details-form","version":"0.1.0","title":"Release Details Form","category":"design","icon":"","description":"A block to display release details form.","textdomain":"wporg","attributes":{},"supports":{"html":false,"interactivity":true},"usesContext":["postId","pluginSlug"],"editorScript":"file:./index.js","render":"file:./render.php","style":"file:./style-index.css"}'); - -/***/ }) - -/******/ }); -/************************************************************************/ -/******/ // The module cache -/******/ var __webpack_module_cache__ = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ // Check if module is in cache -/******/ var cachedModule = __webpack_module_cache__[moduleId]; -/******/ if (cachedModule !== undefined) { -/******/ return cachedModule.exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = __webpack_module_cache__[moduleId] = { -/******/ // no module.id needed -/******/ // no module.loaded needed -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = __webpack_modules__; -/******/ -/************************************************************************/ -/******/ /* webpack/runtime/chunk loaded */ -/******/ (() => { -/******/ var deferred = []; -/******/ __webpack_require__.O = (result, chunkIds, fn, priority) => { -/******/ if(chunkIds) { -/******/ priority = priority || 0; -/******/ for(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1]; -/******/ deferred[i] = [chunkIds, fn, priority]; -/******/ return; -/******/ } -/******/ var notFulfilled = Infinity; -/******/ for (var i = 0; i < deferred.length; i++) { -/******/ var chunkIds = deferred[i][0]; -/******/ var fn = deferred[i][1]; -/******/ var priority = deferred[i][2]; -/******/ var fulfilled = true; -/******/ for (var j = 0; j < chunkIds.length; j++) { -/******/ if ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) { -/******/ chunkIds.splice(j--, 1); -/******/ } else { -/******/ fulfilled = false; -/******/ if(priority < notFulfilled) notFulfilled = priority; -/******/ } -/******/ } -/******/ if(fulfilled) { -/******/ deferred.splice(i--, 1) -/******/ var r = fn(); -/******/ if (r !== undefined) result = r; -/******/ } -/******/ } -/******/ return result; -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/compat get default export */ -/******/ (() => { -/******/ // getDefaultExport function for compatibility with non-harmony modules -/******/ __webpack_require__.n = (module) => { -/******/ var getter = module && module.__esModule ? -/******/ () => (module['default']) : -/******/ () => (module); -/******/ __webpack_require__.d(getter, { a: getter }); -/******/ return getter; -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/define property getters */ -/******/ (() => { -/******/ // define getter functions for harmony exports -/******/ __webpack_require__.d = (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 */ -/******/ (() => { -/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) -/******/ })(); -/******/ -/******/ /* webpack/runtime/make namespace object */ -/******/ (() => { -/******/ // define __esModule on exports -/******/ __webpack_require__.r = (exports) => { -/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { -/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); -/******/ } -/******/ Object.defineProperty(exports, '__esModule', { value: true }); -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/jsonp chunk loading */ -/******/ (() => { -/******/ // no baseURI -/******/ -/******/ // object to store loaded and loading chunks -/******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched -/******/ // [resolve, reject, Promise] = chunk loading, 0 = chunk loaded -/******/ var installedChunks = { -/******/ "blocks/release-publish-release/index": 0, -/******/ "blocks/release-publish-release/style-index": 0 -/******/ }; -/******/ -/******/ // no chunk on demand loading -/******/ -/******/ // no prefetching -/******/ -/******/ // no preloaded -/******/ -/******/ // no HMR -/******/ -/******/ // no HMR manifest -/******/ -/******/ __webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0); -/******/ -/******/ // install a JSONP callback for chunk loading -/******/ var webpackJsonpCallback = (parentChunkLoadingFunction, data) => { -/******/ var chunkIds = data[0]; -/******/ var moreModules = data[1]; -/******/ var runtime = data[2]; -/******/ // add "moreModules" to the modules object, -/******/ // then flag all "chunkIds" as loaded and fire callback -/******/ var moduleId, chunkId, i = 0; -/******/ if(chunkIds.some((id) => (installedChunks[id] !== 0))) { -/******/ for(moduleId in moreModules) { -/******/ if(__webpack_require__.o(moreModules, moduleId)) { -/******/ __webpack_require__.m[moduleId] = moreModules[moduleId]; -/******/ } -/******/ } -/******/ if(runtime) var result = runtime(__webpack_require__); -/******/ } -/******/ if(parentChunkLoadingFunction) parentChunkLoadingFunction(data); -/******/ for(;i < chunkIds.length; i++) { -/******/ chunkId = chunkIds[i]; -/******/ if(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) { -/******/ installedChunks[chunkId][0](); -/******/ } -/******/ installedChunks[chunkId] = 0; -/******/ } -/******/ return __webpack_require__.O(result); -/******/ } -/******/ -/******/ var chunkLoadingGlobal = self["webpackChunkwporg_plugins_2024"] = self["webpackChunkwporg_plugins_2024"] || []; -/******/ chunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0)); -/******/ chunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal)); -/******/ })(); -/******/ -/************************************************************************/ -/******/ -/******/ // startup -/******/ // Load entry module and return exports -/******/ // This entry module depends on other loaded chunks and execution need to be delayed -/******/ var __webpack_exports__ = __webpack_require__.O(undefined, ["blocks/release-publish-release/style-index"], () => (__webpack_require__("./src/blocks/release-publish-release/index.js"))) -/******/ __webpack_exports__ = __webpack_require__.O(__webpack_exports__); -/******/ -/******/ })() -; -//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish-release/style-index.css b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish-release/style-index.css deleted file mode 100644 index 8efbbd0f95..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish-release/style-index.css +++ /dev/null @@ -1,17 +0,0 @@ -/*!**********************************************************************************************************************************************************************************************************************************************************************!*\ - !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/blocks/release-publish-release/style.scss ***! - \**********************************************************************************************************************************************************************************************************************************************************************/ -.wp-block-wporg-release-details-form label { - display: block; -} -.wp-block-wporg-release-details-form .wp-block-wporg-release-result-item > div:last-child > div { - color: var(--wp--preset--color--charcoal-4); -} - -.wp-block-wporg-release-details-form-actions { - display: flex; - margin-top: var(--wp--preset--spacing--30); - gap: 8px; -} - -/*# sourceMappingURL=style-index.css.map*/ \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish/block.json b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish/block.json deleted file mode 100644 index 821e88707f..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish/block.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "$schema": "https://schemas.wp.org/trunk/block.json", - "apiVersion": 2, - "name": "wporg/release-publish", - "version": "0.1.0", - "title": "Release Publish", - "category": "design", - "icon": "", - "description": "A block to display release publish view.", - "textdomain": "wporg", - "attributes": {}, - "supports": { - "html": false, - "interactivity": true - }, - "usesContext": [ - "postId", - "pluginSlug" - ], - "editorScript": "file:./index.js", - "render": "file:./render.php", - "style": "file:./style-index.css", - "viewScriptModule": "file:./view.js" -} \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish/index.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish/index.asset.php deleted file mode 100644 index fe935aba92..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish/index.asset.php +++ /dev/null @@ -1 +0,0 @@ - array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => 'e00dfec27a5fe6143f0a'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish/index.js deleted file mode 100644 index aeebd77ba9..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish/index.js +++ /dev/null @@ -1,298 +0,0 @@ -/******/ (() => { // webpackBootstrap -/******/ "use strict"; -/******/ var __webpack_modules__ = ({ - -/***/ "./src/blocks/release-publish/index.js": -/*!*********************************************!*\ - !*** ./src/blocks/release-publish/index.js ***! - \*********************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); -/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/blocks */ "@wordpress/blocks"); -/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/server-side-render */ "@wordpress/server-side-render"); -/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/block-editor */ "@wordpress/block-editor"); -/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__); -/* harmony import */ var _block_json__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./block.json */ "./src/blocks/release-publish/block.json"); -/* harmony import */ var _style_scss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./style.scss */ "./src/blocks/release-publish/style.scss"); - -/** - * WordPress dependencies - */ - - - - - -/** - * Internal dependencies - */ - - -function Edit({ - attributes, - name -}) { - return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", { - ...(0,_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__.useBlockProps)() - }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Disabled, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)((_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default()), { - block: name, - attributes: attributes - }))); -} -(0,_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__.registerBlockType)(_block_json__WEBPACK_IMPORTED_MODULE_5__.name, { - edit: Edit, - save: () => null -}); - -/***/ }), - -/***/ "./src/blocks/release-publish/style.scss": -/*!***********************************************!*\ - !*** ./src/blocks/release-publish/style.scss ***! - \***********************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -// extracted by mini-css-extract-plugin - - -/***/ }), - -/***/ "react": -/*!************************!*\ - !*** external "React" ***! - \************************/ -/***/ ((module) => { - -module.exports = window["React"]; - -/***/ }), - -/***/ "@wordpress/block-editor": -/*!*************************************!*\ - !*** external ["wp","blockEditor"] ***! - \*************************************/ -/***/ ((module) => { - -module.exports = window["wp"]["blockEditor"]; - -/***/ }), - -/***/ "@wordpress/blocks": -/*!********************************!*\ - !*** external ["wp","blocks"] ***! - \********************************/ -/***/ ((module) => { - -module.exports = window["wp"]["blocks"]; - -/***/ }), - -/***/ "@wordpress/components": -/*!************************************!*\ - !*** external ["wp","components"] ***! - \************************************/ -/***/ ((module) => { - -module.exports = window["wp"]["components"]; - -/***/ }), - -/***/ "@wordpress/server-side-render": -/*!******************************************!*\ - !*** external ["wp","serverSideRender"] ***! - \******************************************/ -/***/ ((module) => { - -module.exports = window["wp"]["serverSideRender"]; - -/***/ }), - -/***/ "./src/blocks/release-publish/block.json": -/*!***********************************************!*\ - !*** ./src/blocks/release-publish/block.json ***! - \***********************************************/ -/***/ ((module) => { - -module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"wporg/release-publish","version":"0.1.0","title":"Release Publish","category":"design","icon":"","description":"A block to display release publish view.","textdomain":"wporg","attributes":{},"supports":{"html":false,"interactivity":true},"usesContext":["postId","pluginSlug"],"editorScript":"file:./index.js","render":"file:./render.php","style":"file:./style-index.css","viewScriptModule":"file:./view.js"}'); - -/***/ }) - -/******/ }); -/************************************************************************/ -/******/ // The module cache -/******/ var __webpack_module_cache__ = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ // Check if module is in cache -/******/ var cachedModule = __webpack_module_cache__[moduleId]; -/******/ if (cachedModule !== undefined) { -/******/ return cachedModule.exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = __webpack_module_cache__[moduleId] = { -/******/ // no module.id needed -/******/ // no module.loaded needed -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = __webpack_modules__; -/******/ -/************************************************************************/ -/******/ /* webpack/runtime/chunk loaded */ -/******/ (() => { -/******/ var deferred = []; -/******/ __webpack_require__.O = (result, chunkIds, fn, priority) => { -/******/ if(chunkIds) { -/******/ priority = priority || 0; -/******/ for(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1]; -/******/ deferred[i] = [chunkIds, fn, priority]; -/******/ return; -/******/ } -/******/ var notFulfilled = Infinity; -/******/ for (var i = 0; i < deferred.length; i++) { -/******/ var chunkIds = deferred[i][0]; -/******/ var fn = deferred[i][1]; -/******/ var priority = deferred[i][2]; -/******/ var fulfilled = true; -/******/ for (var j = 0; j < chunkIds.length; j++) { -/******/ if ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) { -/******/ chunkIds.splice(j--, 1); -/******/ } else { -/******/ fulfilled = false; -/******/ if(priority < notFulfilled) notFulfilled = priority; -/******/ } -/******/ } -/******/ if(fulfilled) { -/******/ deferred.splice(i--, 1) -/******/ var r = fn(); -/******/ if (r !== undefined) result = r; -/******/ } -/******/ } -/******/ return result; -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/compat get default export */ -/******/ (() => { -/******/ // getDefaultExport function for compatibility with non-harmony modules -/******/ __webpack_require__.n = (module) => { -/******/ var getter = module && module.__esModule ? -/******/ () => (module['default']) : -/******/ () => (module); -/******/ __webpack_require__.d(getter, { a: getter }); -/******/ return getter; -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/define property getters */ -/******/ (() => { -/******/ // define getter functions for harmony exports -/******/ __webpack_require__.d = (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 */ -/******/ (() => { -/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) -/******/ })(); -/******/ -/******/ /* webpack/runtime/make namespace object */ -/******/ (() => { -/******/ // define __esModule on exports -/******/ __webpack_require__.r = (exports) => { -/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { -/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); -/******/ } -/******/ Object.defineProperty(exports, '__esModule', { value: true }); -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/jsonp chunk loading */ -/******/ (() => { -/******/ // no baseURI -/******/ -/******/ // object to store loaded and loading chunks -/******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched -/******/ // [resolve, reject, Promise] = chunk loading, 0 = chunk loaded -/******/ var installedChunks = { -/******/ "blocks/release-publish/index": 0, -/******/ "blocks/release-publish/style-index": 0 -/******/ }; -/******/ -/******/ // no chunk on demand loading -/******/ -/******/ // no prefetching -/******/ -/******/ // no preloaded -/******/ -/******/ // no HMR -/******/ -/******/ // no HMR manifest -/******/ -/******/ __webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0); -/******/ -/******/ // install a JSONP callback for chunk loading -/******/ var webpackJsonpCallback = (parentChunkLoadingFunction, data) => { -/******/ var chunkIds = data[0]; -/******/ var moreModules = data[1]; -/******/ var runtime = data[2]; -/******/ // add "moreModules" to the modules object, -/******/ // then flag all "chunkIds" as loaded and fire callback -/******/ var moduleId, chunkId, i = 0; -/******/ if(chunkIds.some((id) => (installedChunks[id] !== 0))) { -/******/ for(moduleId in moreModules) { -/******/ if(__webpack_require__.o(moreModules, moduleId)) { -/******/ __webpack_require__.m[moduleId] = moreModules[moduleId]; -/******/ } -/******/ } -/******/ if(runtime) var result = runtime(__webpack_require__); -/******/ } -/******/ if(parentChunkLoadingFunction) parentChunkLoadingFunction(data); -/******/ for(;i < chunkIds.length; i++) { -/******/ chunkId = chunkIds[i]; -/******/ if(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) { -/******/ installedChunks[chunkId][0](); -/******/ } -/******/ installedChunks[chunkId] = 0; -/******/ } -/******/ return __webpack_require__.O(result); -/******/ } -/******/ -/******/ var chunkLoadingGlobal = self["webpackChunkwporg_plugins_2024"] = self["webpackChunkwporg_plugins_2024"] || []; -/******/ chunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0)); -/******/ chunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal)); -/******/ })(); -/******/ -/************************************************************************/ -/******/ -/******/ // startup -/******/ // Load entry module and return exports -/******/ // This entry module depends on other loaded chunks and execution need to be delayed -/******/ var __webpack_exports__ = __webpack_require__.O(undefined, ["blocks/release-publish/style-index"], () => (__webpack_require__("./src/blocks/release-publish/index.js"))) -/******/ __webpack_exports__ = __webpack_require__.O(__webpack_exports__); -/******/ -/******/ })() -; -//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish/render.php deleted file mode 100644 index 1f775eb1ea..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish/render.php +++ /dev/null @@ -1,350 +0,0 @@ -context['postId'] ) ) { - return; -} - -$release_post = get_post( $block->context['postId'] ); - -// Bail if the release post does not exist. -if ( ! $release_post ) { - return; -} - -$current_version = get_post_meta( $block->context['postId'], 'release_version', true ); -$tested_up_to = '6.7';// get_post_meta( $block->context['postId'], 'release_tested', true ); - -/** - * Returns whether the tested_up_to value is recent. - * - * @param string $tested_up_to The tested up to value. - * - * @return bool Whether the tested up to value is recent. - */ -function has_recently_been_tested( $tested_up_to ) { - global $wp_version; - - // If the tested up to value is empty, it's not recent. - if ( empty( $tested_up_to ) ) { - return false; - } - - $latest_release = $wp_version; - - if ( defined( 'WP_CORE_STABLE_BRANCH' ) ) { - $latest_release = WP_CORE_STABLE_BRANCH; - } - - $tested_major = (int) explode( '.', $tested_up_to )[0]; - $latest_major = (int) explode( '.', $latest_release )[0]; - - return $tested_major >= $latest_major; -} - -/** - * Generate the HTML for a release item content block. - * - * @param string $label The label for the item. - * @param string $content The additional content or description. - * @return string The formatted HTML content for the release item. - */ -function get_release_item_content( $label, $content ) { - return sprintf( - '
    %1$s
    %2$s
    ', - esc_html( $label ), - wp_kses_post( $content ) - ); -} - -/** - * Generate a release check item block with a specific status. - * - * @param string $status The status of the check item ('success' or 'error'). - * @param string $content The content to display inside the block. - * @return string The formatted block content. - */ -function get_release_check_item( $status, $content ) { - return do_blocks( - sprintf( - '%2$s', - esc_attr( $status ), - $content - ) - ); -} - -/** - * Generate the block content for the version number check item. - * - * @param bool $verdict Whether the version number is valid. - * @param string $value The current version number. - * - * @return string The block content. - */ -function get_changelog_check_item() { - $label = __( 'Update your changelog with key changes.', 'wporg-plugins' ); - $info_text = sprintf( - 'Learn more about writing useful changelogs.', - esc_url( 'https://developer.wordpress.org/plugins/wordpress-org/plugin-developer-faq/#what-should-be-in-my-changelog' ), - ); - - $content = get_release_item_content( $label, $info_text ); - - return get_release_check_item( 'default', $content ); -} - -/** - * Generate the block content for the version number check item. - * - * @param bool $verdict Whether the version number is valid. - * @param string $value The current version number. - * - * @return string The block content. - */ -function get_view_diff_check_item( $post ) { - $label = __( 'Review your changes.', 'wporg-plugins' ); - $commits = get_post_meta( $post->ID, 'release_commit_log', true ); - $info_text = sprintf( - /* translators: %s: URL to the plugin in the Plugin Directory */ - __( 'Double-check your changeset before publishing.', 'wporg-plugins' ), - esc_url( get_revision_changeset_link( $commits ) ) - ); - $content = get_release_item_content( $label, $info_text ); - - return get_release_check_item( 'default', $content ); -} - -/** - * Generate the block content for the version number check item. - * - * @param bool $verdict Whether the version number is valid. - * @param string $value The current version number. - * - * @return string The block content. - */ -function get_version_number_check_item( $verdict, $value ) { - $label = __( 'Increment your version number.', 'wporg-plugins' ); - - $info_text = sprintf( - /* translators: %s: The current version number */ - __( 'New version: %s', 'wporg-plugins' ), - '' . $value . '', - ); - - $status = ''; - - if ( ! $verdict ) { - $status = 'error'; - $info_text = sprintf( - /* translators: %s: The current version number */ - __( 'Your plugin\'s version number %s must be incremented before you can publish.', 'wporg-plugins' ), - '' . $value . '', - ); - } - - $content = get_release_item_content( $label, $info_text ); - - return get_release_check_item( $status, $content ); -} - -/** - * Generate the block content for the "Tested up to" check item. - * - * @param bool $verdict Whether the tested up to value is recent. - * @param string $value The tested up to value. - * - * @return string The block content. - */ -function get_tested_up_to_check_item( $verdict, $value ) { - $label = __( - 'Test your plugin with the latest version of WordPress.', - 'wporg-plugins' - ); - $status = ''; - - $info_text = sprintf( - /* translators: %s: The Tested Up to value */ - __( 'Tested up to: %s', 'wporg-plugins' ), - '' . $value . '', - ); - - if ( empty( $value ) ) { - $value = __( 'Unknown', 'wporg-plugins' ); - $status = 'error'; - $info_text = __( 'We weren\'t able to determine your "Tested up to" value.', 'wporg-plugins' ); - } elseif ( ! $verdict ) { - $status = 'warning'; - $info_text = sprintf( - /* translators: %s: URL to the plugin in the Plugin Directory */ - __( 'Tested up to is %1$s. Test it now in Playground and update your readme.txt. ', 'wporg-plugins' ), - '' . $value . '', - esc_url( - get_blueprint_url( - sprintf( - 'https://downloads.wordpress.org/plugin/%s.zip', - get_plugin_slug(), - ) - ) - ) - ); - } - - $content = get_release_item_content( $label, $info_text ); - - return get_release_check_item( $status, $content ); -} - -$latest_release = get_latest_release( $release_post->post_parent ); -$last_version = get_post_meta( $latest_release->ID, 'release_version', true ); -$version_pass = version_compare( $current_version, $last_version, '>' ); -$tested_up_to_pass = has_recently_been_tested( $tested_up_to ); - -$plugin_slug = get_plugin_slug(); -$form_context = array( - 'pluginSlug' => $plugin_slug, - 'nonce' => wp_create_nonce( 'wp_rest' ), - 'apiURL' => esc_url( rest_url( 'plugins/v2/plugin/' . $plugin_slug . '/publish' ) ), -); - -/** - * Create initial state for the async-action-block. - */ -wp_interactivity_state( - 'async-action-block', - array( - 'hasConfirmed' => false, - 'isPublishing' => false, - 'isPublished' => false, - 'hasError' => false, - 'errorMessage' => '', - ) -); - -?> - -
    - - > -
    - -

    %s

    - ', - __( 'Before releasing your plugin, make sure everything is up-to-date and ready for your users:', 'wporg-plugins' ) - ), - ); - ?> - -
    - -

    %s

    - ', - esc_html__( 'Checklist', 'wporg-plugins' ) - ) - ) - ?> -
      - - - - -
    - -
    - - -
    - -
    -
    - -
    - -
    - -
    -
    -
    -
    - -
    -
    - - -
    -
    - - -
    -

    -

    - -
    -
    - - - -
    -
    -
    - -
    - -
    -
    -

    -
    - ' - ); - ?> -
    -
    diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish/style-index.css b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish/style-index.css deleted file mode 100644 index b57828e9fa..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish/style-index.css +++ /dev/null @@ -1,30 +0,0 @@ -/*!**************************************************************************************************************************************************************************************************************************************************************!*\ - !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/blocks/release-publish/style.scss ***! - \**************************************************************************************************************************************************************************************************************************************************************/ -.wp-block-wporg-release-publish label { - display: block; -} -.wp-block-wporg-release-publish .wp-block-wporg-release-result-item > div:last-child > div { - color: var(--wp--preset--color--charcoal-4); -} - -.wp-block-wporg-release-publish-user-confirm { - margin-top: var(--wp--preset--spacing--20); -} - -.wp-block-wporg-release-publish-actions { - display: flex; - margin-top: var(--wp--preset--spacing--20); - gap: 8px; -} -.wp-block-wporg-release-publish-actions button[disabled] { - opacity: 0.5; -} - -.wp-block-wporg-release-publish-spinner { - align-items: center; - display: flex; - gap: 6px; -} - -/*# sourceMappingURL=style-index.css.map*/ \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish/view.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish/view.asset.php deleted file mode 100644 index 99607bc3d0..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish/view.asset.php +++ /dev/null @@ -1 +0,0 @@ - array('@wordpress/interactivity'), 'version' => 'bbbe8e269ca99621503f', 'type' => 'module'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish/view.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish/view.js deleted file mode 100644 index 30b5cc3a47..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish/view.js +++ /dev/null @@ -1,141 +0,0 @@ -import * as __WEBPACK_EXTERNAL_MODULE__wordpress_interactivity_8e89b257__ from "@wordpress/interactivity"; -/******/ var __webpack_modules__ = ({ - -/***/ "@wordpress/interactivity": -/*!*******************************************!*\ - !*** external "@wordpress/interactivity" ***! - \*******************************************/ -/***/ ((module) => { - -var x = y => { var x = {}; __webpack_require__.d(x, y); return x; } -var y = x => () => x -module.exports = __WEBPACK_EXTERNAL_MODULE__wordpress_interactivity_8e89b257__; - -/***/ }) - -/******/ }); -/************************************************************************/ -/******/ // The module cache -/******/ var __webpack_module_cache__ = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ // Check if module is in cache -/******/ var cachedModule = __webpack_module_cache__[moduleId]; -/******/ if (cachedModule !== undefined) { -/******/ return cachedModule.exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = __webpack_module_cache__[moduleId] = { -/******/ // no module.id needed -/******/ // no module.loaded needed -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/************************************************************************/ -/******/ /* webpack/runtime/make namespace object */ -/******/ (() => { -/******/ // define __esModule on exports -/******/ __webpack_require__.r = (exports) => { -/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { -/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); -/******/ } -/******/ Object.defineProperty(exports, '__esModule', { value: true }); -/******/ }; -/******/ })(); -/******/ -/************************************************************************/ -var __webpack_exports__ = {}; -// This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk. -(() => { -/*!********************************************!*\ - !*** ./src/blocks/release-publish/view.js ***! - \********************************************/ -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _wordpress_interactivity__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/interactivity */ "@wordpress/interactivity"); -/** - * WordPress dependencies - */ - -const { - state -} = (0,_wordpress_interactivity__WEBPACK_IMPORTED_MODULE_0__.store)('async-action-block', { - state: { - get userHasConfirmed() { - return state.hasConfirmed; - }, - get isDefaultState() { - return !state.isPublishing && !state.isPublished && !state.hasError; - }, - get isPublishingState() { - return state.isPublishing; - }, - get isPublishedState() { - return state.isPublished; - } - }, - actions: { - handleReleaseConfirm() { - state.hasConfirmed = !state.hasConfirmed; - }, - handleBackClick(event) { - event.preventDefault(); - state.isCreatingRelease = false; - - // Make user reconfirm. - state.hasConfirmed = false; - }, - handlePageReload() { - window.location.reload(); - }, - *handleSubmit(event) { - event.preventDefault(); - state.isPublishing = true; - state.errorMessage = ''; - const { - pluginSlug, - nonce, - apiURL - } = (0,_wordpress_interactivity__WEBPACK_IMPORTED_MODULE_0__.getContext)(); - try { - const response = yield fetch(apiURL, { - method: 'POST', - headers: { - 'Content-Type': 'application/json', - 'X-WP-Nonce': nonce - }, - body: JSON.stringify({ - plugin_slug: pluginSlug - }) - }); - if (!response.ok) { - try { - const error = yield response.json(); - throw new Error(error.message); - } catch (error) { - // Handle cases where json is not returned, like a gateway timeout. - throw new Error('An error occurred while publishing the release.'); - } - } - state.isPublished = true; - } catch (error) { - state.errorMessage = error.message; - state.hasError = true; - state.isPublishing = false; - } finally { - state.isPublishing = false; - } - } - } -}); -})(); - - -//# sourceMappingURL=view.js.map \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-item copy/block.json b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-item copy/block.json deleted file mode 100644 index 5086072ee5..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-item copy/block.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "$schema": "https://schemas.wp.org/trunk/block.json", - "apiVersion": 2, - "name": "wporg/release-result-item", - "version": "0.1.0", - "title": "Release Result Item", - "category": "design", - "icon": "", - "description": "A block to display release draft result item.", - "textdomain": "wporg", - "attributes": { - "status": { - "type": "string", - "enum": [ - "error", - "warning", - "success" - ], - "default": "success" - } - }, - "supports": { - "html": false - }, - "editorScript": "file:./index.js", - "render": "file:./render.php", - "style": "file:./style-index.css" -} \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-item copy/index.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-item copy/index.asset.php deleted file mode 100644 index 57eaa35d97..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-item copy/index.asset.php +++ /dev/null @@ -1 +0,0 @@ - array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => 'c5097f76ab105587bca5'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-item copy/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-item copy/index.js deleted file mode 100644 index e3a6578c0d..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-item copy/index.js +++ /dev/null @@ -1,298 +0,0 @@ -/******/ (() => { // webpackBootstrap -/******/ "use strict"; -/******/ var __webpack_modules__ = ({ - -/***/ "./src/blocks/release-result-item copy/index.js": -/*!******************************************************!*\ - !*** ./src/blocks/release-result-item copy/index.js ***! - \******************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); -/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/blocks */ "@wordpress/blocks"); -/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/server-side-render */ "@wordpress/server-side-render"); -/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/block-editor */ "@wordpress/block-editor"); -/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__); -/* harmony import */ var _block_json__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./block.json */ "./src/blocks/release-result-item copy/block.json"); -/* harmony import */ var _style_scss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./style.scss */ "./src/blocks/release-result-item copy/style.scss"); - -/** - * WordPress dependencies - */ - - - - - -/** - * Internal dependencies - */ - - -function Edit({ - attributes, - name -}) { - return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", { - ...(0,_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__.useBlockProps)() - }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Disabled, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)((_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default()), { - block: name, - attributes: attributes - }))); -} -(0,_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__.registerBlockType)(_block_json__WEBPACK_IMPORTED_MODULE_5__.name, { - edit: Edit, - save: () => null -}); - -/***/ }), - -/***/ "./src/blocks/release-result-item copy/style.scss": -/*!********************************************************!*\ - !*** ./src/blocks/release-result-item copy/style.scss ***! - \********************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -// extracted by mini-css-extract-plugin - - -/***/ }), - -/***/ "react": -/*!************************!*\ - !*** external "React" ***! - \************************/ -/***/ ((module) => { - -module.exports = window["React"]; - -/***/ }), - -/***/ "@wordpress/block-editor": -/*!*************************************!*\ - !*** external ["wp","blockEditor"] ***! - \*************************************/ -/***/ ((module) => { - -module.exports = window["wp"]["blockEditor"]; - -/***/ }), - -/***/ "@wordpress/blocks": -/*!********************************!*\ - !*** external ["wp","blocks"] ***! - \********************************/ -/***/ ((module) => { - -module.exports = window["wp"]["blocks"]; - -/***/ }), - -/***/ "@wordpress/components": -/*!************************************!*\ - !*** external ["wp","components"] ***! - \************************************/ -/***/ ((module) => { - -module.exports = window["wp"]["components"]; - -/***/ }), - -/***/ "@wordpress/server-side-render": -/*!******************************************!*\ - !*** external ["wp","serverSideRender"] ***! - \******************************************/ -/***/ ((module) => { - -module.exports = window["wp"]["serverSideRender"]; - -/***/ }), - -/***/ "./src/blocks/release-result-item copy/block.json": -/*!********************************************************!*\ - !*** ./src/blocks/release-result-item copy/block.json ***! - \********************************************************/ -/***/ ((module) => { - -module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"wporg/release-result-item","version":"0.1.0","title":"Release Result Item","category":"design","icon":"","description":"A block to display release draft result item.","textdomain":"wporg","attributes":{"status":{"type":"string","enum":["error","warning","success"],"default":"success"}},"supports":{"html":false},"editorScript":"file:./index.js","render":"file:./render.php","style":"file:./style-index.css"}'); - -/***/ }) - -/******/ }); -/************************************************************************/ -/******/ // The module cache -/******/ var __webpack_module_cache__ = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ // Check if module is in cache -/******/ var cachedModule = __webpack_module_cache__[moduleId]; -/******/ if (cachedModule !== undefined) { -/******/ return cachedModule.exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = __webpack_module_cache__[moduleId] = { -/******/ // no module.id needed -/******/ // no module.loaded needed -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = __webpack_modules__; -/******/ -/************************************************************************/ -/******/ /* webpack/runtime/chunk loaded */ -/******/ (() => { -/******/ var deferred = []; -/******/ __webpack_require__.O = (result, chunkIds, fn, priority) => { -/******/ if(chunkIds) { -/******/ priority = priority || 0; -/******/ for(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1]; -/******/ deferred[i] = [chunkIds, fn, priority]; -/******/ return; -/******/ } -/******/ var notFulfilled = Infinity; -/******/ for (var i = 0; i < deferred.length; i++) { -/******/ var chunkIds = deferred[i][0]; -/******/ var fn = deferred[i][1]; -/******/ var priority = deferred[i][2]; -/******/ var fulfilled = true; -/******/ for (var j = 0; j < chunkIds.length; j++) { -/******/ if ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) { -/******/ chunkIds.splice(j--, 1); -/******/ } else { -/******/ fulfilled = false; -/******/ if(priority < notFulfilled) notFulfilled = priority; -/******/ } -/******/ } -/******/ if(fulfilled) { -/******/ deferred.splice(i--, 1) -/******/ var r = fn(); -/******/ if (r !== undefined) result = r; -/******/ } -/******/ } -/******/ return result; -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/compat get default export */ -/******/ (() => { -/******/ // getDefaultExport function for compatibility with non-harmony modules -/******/ __webpack_require__.n = (module) => { -/******/ var getter = module && module.__esModule ? -/******/ () => (module['default']) : -/******/ () => (module); -/******/ __webpack_require__.d(getter, { a: getter }); -/******/ return getter; -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/define property getters */ -/******/ (() => { -/******/ // define getter functions for harmony exports -/******/ __webpack_require__.d = (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 */ -/******/ (() => { -/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) -/******/ })(); -/******/ -/******/ /* webpack/runtime/make namespace object */ -/******/ (() => { -/******/ // define __esModule on exports -/******/ __webpack_require__.r = (exports) => { -/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { -/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); -/******/ } -/******/ Object.defineProperty(exports, '__esModule', { value: true }); -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/jsonp chunk loading */ -/******/ (() => { -/******/ // no baseURI -/******/ -/******/ // object to store loaded and loading chunks -/******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched -/******/ // [resolve, reject, Promise] = chunk loading, 0 = chunk loaded -/******/ var installedChunks = { -/******/ "blocks/release-result-item copy/index": 0, -/******/ "blocks/release-result-item copy/style-index": 0 -/******/ }; -/******/ -/******/ // no chunk on demand loading -/******/ -/******/ // no prefetching -/******/ -/******/ // no preloaded -/******/ -/******/ // no HMR -/******/ -/******/ // no HMR manifest -/******/ -/******/ __webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0); -/******/ -/******/ // install a JSONP callback for chunk loading -/******/ var webpackJsonpCallback = (parentChunkLoadingFunction, data) => { -/******/ var chunkIds = data[0]; -/******/ var moreModules = data[1]; -/******/ var runtime = data[2]; -/******/ // add "moreModules" to the modules object, -/******/ // then flag all "chunkIds" as loaded and fire callback -/******/ var moduleId, chunkId, i = 0; -/******/ if(chunkIds.some((id) => (installedChunks[id] !== 0))) { -/******/ for(moduleId in moreModules) { -/******/ if(__webpack_require__.o(moreModules, moduleId)) { -/******/ __webpack_require__.m[moduleId] = moreModules[moduleId]; -/******/ } -/******/ } -/******/ if(runtime) var result = runtime(__webpack_require__); -/******/ } -/******/ if(parentChunkLoadingFunction) parentChunkLoadingFunction(data); -/******/ for(;i < chunkIds.length; i++) { -/******/ chunkId = chunkIds[i]; -/******/ if(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) { -/******/ installedChunks[chunkId][0](); -/******/ } -/******/ installedChunks[chunkId] = 0; -/******/ } -/******/ return __webpack_require__.O(result); -/******/ } -/******/ -/******/ var chunkLoadingGlobal = self["webpackChunkwporg_plugins_2024"] = self["webpackChunkwporg_plugins_2024"] || []; -/******/ chunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0)); -/******/ chunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal)); -/******/ })(); -/******/ -/************************************************************************/ -/******/ -/******/ // startup -/******/ // Load entry module and return exports -/******/ // This entry module depends on other loaded chunks and execution need to be delayed -/******/ var __webpack_exports__ = __webpack_require__.O(undefined, ["blocks/release-result-item copy/style-index"], () => (__webpack_require__("./src/blocks/release-result-item copy/index.js"))) -/******/ __webpack_exports__ = __webpack_require__.O(__webpack_exports__); -/******/ -/******/ })() -; -//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-item copy/style-index.css b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-item copy/style-index.css deleted file mode 100644 index 479186db5d..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-item copy/style-index.css +++ /dev/null @@ -1,17 +0,0 @@ -/*!***********************************************************************************************************************************************************************************************************************************************************************!*\ - !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/blocks/release-result-item copy/style.scss ***! - \***********************************************************************************************************************************************************************************************************************************************************************/ -.wp-block-wporg-release-result-item { - display: flex; - margin: 0 !important; - position: relative; - gap: 8px; - list-style: none; -} -.wp-block-wporg-release-result-item > div:first-child { - height: 25px; - display: flex; - align-items: center; -} - -/*# sourceMappingURL=style-index.css.map*/ \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-item/block.json b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-item/block.json deleted file mode 100644 index a9626174ed..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-item/block.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "$schema": "https://schemas.wp.org/trunk/block.json", - "apiVersion": 2, - "name": "wporg/release-result-item", - "version": "0.1.0", - "title": "Release Result Item", - "category": "design", - "icon": "", - "description": "A block to display release draft result item.", - "textdomain": "wporg", - "attributes": { - "status": { - "type": "string", - "enum": [ - "error", - "warning", - "success" - ] - } - }, - "supports": { - "html": false - }, - "editorScript": "file:./index.js", - "render": "file:./render.php", - "style": "file:./style-index.css" -} \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-item/index.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-item/index.asset.php deleted file mode 100644 index 5d3dc0aed0..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-item/index.asset.php +++ /dev/null @@ -1 +0,0 @@ - array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => '528aee9f7fbbffa602e3'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-item/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-item/index.js deleted file mode 100644 index e99ee21ff5..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-item/index.js +++ /dev/null @@ -1,298 +0,0 @@ -/******/ (() => { // webpackBootstrap -/******/ "use strict"; -/******/ var __webpack_modules__ = ({ - -/***/ "./src/blocks/release-result-item/index.js": -/*!*************************************************!*\ - !*** ./src/blocks/release-result-item/index.js ***! - \*************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); -/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/blocks */ "@wordpress/blocks"); -/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/server-side-render */ "@wordpress/server-side-render"); -/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/block-editor */ "@wordpress/block-editor"); -/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__); -/* harmony import */ var _block_json__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./block.json */ "./src/blocks/release-result-item/block.json"); -/* harmony import */ var _style_scss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./style.scss */ "./src/blocks/release-result-item/style.scss"); - -/** - * WordPress dependencies - */ - - - - - -/** - * Internal dependencies - */ - - -function Edit({ - attributes, - name -}) { - return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", { - ...(0,_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__.useBlockProps)() - }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Disabled, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)((_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default()), { - block: name, - attributes: attributes - }))); -} -(0,_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__.registerBlockType)(_block_json__WEBPACK_IMPORTED_MODULE_5__.name, { - edit: Edit, - save: () => null -}); - -/***/ }), - -/***/ "./src/blocks/release-result-item/style.scss": -/*!***************************************************!*\ - !*** ./src/blocks/release-result-item/style.scss ***! - \***************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -// extracted by mini-css-extract-plugin - - -/***/ }), - -/***/ "react": -/*!************************!*\ - !*** external "React" ***! - \************************/ -/***/ ((module) => { - -module.exports = window["React"]; - -/***/ }), - -/***/ "@wordpress/block-editor": -/*!*************************************!*\ - !*** external ["wp","blockEditor"] ***! - \*************************************/ -/***/ ((module) => { - -module.exports = window["wp"]["blockEditor"]; - -/***/ }), - -/***/ "@wordpress/blocks": -/*!********************************!*\ - !*** external ["wp","blocks"] ***! - \********************************/ -/***/ ((module) => { - -module.exports = window["wp"]["blocks"]; - -/***/ }), - -/***/ "@wordpress/components": -/*!************************************!*\ - !*** external ["wp","components"] ***! - \************************************/ -/***/ ((module) => { - -module.exports = window["wp"]["components"]; - -/***/ }), - -/***/ "@wordpress/server-side-render": -/*!******************************************!*\ - !*** external ["wp","serverSideRender"] ***! - \******************************************/ -/***/ ((module) => { - -module.exports = window["wp"]["serverSideRender"]; - -/***/ }), - -/***/ "./src/blocks/release-result-item/block.json": -/*!***************************************************!*\ - !*** ./src/blocks/release-result-item/block.json ***! - \***************************************************/ -/***/ ((module) => { - -module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"wporg/release-result-item","version":"0.1.0","title":"Release Result Item","category":"design","icon":"","description":"A block to display release draft result item.","textdomain":"wporg","attributes":{"status":{"type":"string","enum":["error","warning","success"]}},"supports":{"html":false},"editorScript":"file:./index.js","render":"file:./render.php","style":"file:./style-index.css"}'); - -/***/ }) - -/******/ }); -/************************************************************************/ -/******/ // The module cache -/******/ var __webpack_module_cache__ = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ // Check if module is in cache -/******/ var cachedModule = __webpack_module_cache__[moduleId]; -/******/ if (cachedModule !== undefined) { -/******/ return cachedModule.exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = __webpack_module_cache__[moduleId] = { -/******/ // no module.id needed -/******/ // no module.loaded needed -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = __webpack_modules__; -/******/ -/************************************************************************/ -/******/ /* webpack/runtime/chunk loaded */ -/******/ (() => { -/******/ var deferred = []; -/******/ __webpack_require__.O = (result, chunkIds, fn, priority) => { -/******/ if(chunkIds) { -/******/ priority = priority || 0; -/******/ for(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1]; -/******/ deferred[i] = [chunkIds, fn, priority]; -/******/ return; -/******/ } -/******/ var notFulfilled = Infinity; -/******/ for (var i = 0; i < deferred.length; i++) { -/******/ var chunkIds = deferred[i][0]; -/******/ var fn = deferred[i][1]; -/******/ var priority = deferred[i][2]; -/******/ var fulfilled = true; -/******/ for (var j = 0; j < chunkIds.length; j++) { -/******/ if ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) { -/******/ chunkIds.splice(j--, 1); -/******/ } else { -/******/ fulfilled = false; -/******/ if(priority < notFulfilled) notFulfilled = priority; -/******/ } -/******/ } -/******/ if(fulfilled) { -/******/ deferred.splice(i--, 1) -/******/ var r = fn(); -/******/ if (r !== undefined) result = r; -/******/ } -/******/ } -/******/ return result; -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/compat get default export */ -/******/ (() => { -/******/ // getDefaultExport function for compatibility with non-harmony modules -/******/ __webpack_require__.n = (module) => { -/******/ var getter = module && module.__esModule ? -/******/ () => (module['default']) : -/******/ () => (module); -/******/ __webpack_require__.d(getter, { a: getter }); -/******/ return getter; -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/define property getters */ -/******/ (() => { -/******/ // define getter functions for harmony exports -/******/ __webpack_require__.d = (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 */ -/******/ (() => { -/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) -/******/ })(); -/******/ -/******/ /* webpack/runtime/make namespace object */ -/******/ (() => { -/******/ // define __esModule on exports -/******/ __webpack_require__.r = (exports) => { -/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { -/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); -/******/ } -/******/ Object.defineProperty(exports, '__esModule', { value: true }); -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/jsonp chunk loading */ -/******/ (() => { -/******/ // no baseURI -/******/ -/******/ // object to store loaded and loading chunks -/******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched -/******/ // [resolve, reject, Promise] = chunk loading, 0 = chunk loaded -/******/ var installedChunks = { -/******/ "blocks/release-result-item/index": 0, -/******/ "blocks/release-result-item/style-index": 0 -/******/ }; -/******/ -/******/ // no chunk on demand loading -/******/ -/******/ // no prefetching -/******/ -/******/ // no preloaded -/******/ -/******/ // no HMR -/******/ -/******/ // no HMR manifest -/******/ -/******/ __webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0); -/******/ -/******/ // install a JSONP callback for chunk loading -/******/ var webpackJsonpCallback = (parentChunkLoadingFunction, data) => { -/******/ var chunkIds = data[0]; -/******/ var moreModules = data[1]; -/******/ var runtime = data[2]; -/******/ // add "moreModules" to the modules object, -/******/ // then flag all "chunkIds" as loaded and fire callback -/******/ var moduleId, chunkId, i = 0; -/******/ if(chunkIds.some((id) => (installedChunks[id] !== 0))) { -/******/ for(moduleId in moreModules) { -/******/ if(__webpack_require__.o(moreModules, moduleId)) { -/******/ __webpack_require__.m[moduleId] = moreModules[moduleId]; -/******/ } -/******/ } -/******/ if(runtime) var result = runtime(__webpack_require__); -/******/ } -/******/ if(parentChunkLoadingFunction) parentChunkLoadingFunction(data); -/******/ for(;i < chunkIds.length; i++) { -/******/ chunkId = chunkIds[i]; -/******/ if(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) { -/******/ installedChunks[chunkId][0](); -/******/ } -/******/ installedChunks[chunkId] = 0; -/******/ } -/******/ return __webpack_require__.O(result); -/******/ } -/******/ -/******/ var chunkLoadingGlobal = self["webpackChunkwporg_plugins_2024"] = self["webpackChunkwporg_plugins_2024"] || []; -/******/ chunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0)); -/******/ chunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal)); -/******/ })(); -/******/ -/************************************************************************/ -/******/ -/******/ // startup -/******/ // Load entry module and return exports -/******/ // This entry module depends on other loaded chunks and execution need to be delayed -/******/ var __webpack_exports__ = __webpack_require__.O(undefined, ["blocks/release-result-item/style-index"], () => (__webpack_require__("./src/blocks/release-result-item/index.js"))) -/******/ __webpack_exports__ = __webpack_require__.O(__webpack_exports__); -/******/ -/******/ })() -; -//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-item/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-item/render.php deleted file mode 100644 index d2a7346ba1..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-item/render.php +++ /dev/null @@ -1,24 +0,0 @@ -
  • > -
    - attributes['status'] ) : ?> - - - - - - attributes['status'] ) : ?> - - - - attributes['status'] ) : ?> - - - - - - - -
    - - inner_html ); ?> -
  • diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-item/style-index.css b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-item/style-index.css deleted file mode 100644 index 81b705ae23..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-item/style-index.css +++ /dev/null @@ -1,21 +0,0 @@ -/*!******************************************************************************************************************************************************************************************************************************************************************!*\ - !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/blocks/release-result-item/style.scss ***! - \******************************************************************************************************************************************************************************************************************************************************************/ -.wp-block-wporg-release-result-item { - display: flex; - margin: 0 0 12px !important; - position: relative; - gap: 8px; - list-style: none; -} -.wp-block-wporg-release-result-item > div:first-child { - height: 25px; - display: flex; - align-items: center; -} - -ul .wp-block-wporg-release-result-item:last-child { - margin-bottom: 0; -} - -/*# sourceMappingURL=style-index.css.map*/ \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-list/block.json b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-list/block.json deleted file mode 100644 index 47eae44f8d..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-list/block.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "$schema": "https://schemas.wp.org/trunk/block.json", - "apiVersion": 2, - "name": "wporg/release-result-list", - "version": "0.1.0", - "title": "Release Result List", - "category": "design", - "icon": "", - "description": "A block to display release draft result list.", - "textdomain": "wporg", - "attributes": {}, - "supports": { - "html": false - }, - "editorScript": "file:./index.js", - "render": "file:./render.php", - "style": "file:./style-index.css" -} \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-list/index.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-list/index.asset.php deleted file mode 100644 index 7849bcf938..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-list/index.asset.php +++ /dev/null @@ -1 +0,0 @@ - array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => '10d58671b04ac2c5d511'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-list/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-list/index.js deleted file mode 100644 index d66594a40b..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-list/index.js +++ /dev/null @@ -1,298 +0,0 @@ -/******/ (() => { // webpackBootstrap -/******/ "use strict"; -/******/ var __webpack_modules__ = ({ - -/***/ "./src/blocks/release-result-list/index.js": -/*!*************************************************!*\ - !*** ./src/blocks/release-result-list/index.js ***! - \*************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); -/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/blocks */ "@wordpress/blocks"); -/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/server-side-render */ "@wordpress/server-side-render"); -/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/block-editor */ "@wordpress/block-editor"); -/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__); -/* harmony import */ var _block_json__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./block.json */ "./src/blocks/release-result-list/block.json"); -/* harmony import */ var _style_scss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./style.scss */ "./src/blocks/release-result-list/style.scss"); - -/** - * WordPress dependencies - */ - - - - - -/** - * Internal dependencies - */ - - -function Edit({ - attributes, - name -}) { - return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", { - ...(0,_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__.useBlockProps)() - }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Disabled, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)((_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default()), { - block: name, - attributes: attributes - }))); -} -(0,_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__.registerBlockType)(_block_json__WEBPACK_IMPORTED_MODULE_5__.name, { - edit: Edit, - save: () => null -}); - -/***/ }), - -/***/ "./src/blocks/release-result-list/style.scss": -/*!***************************************************!*\ - !*** ./src/blocks/release-result-list/style.scss ***! - \***************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -// extracted by mini-css-extract-plugin - - -/***/ }), - -/***/ "react": -/*!************************!*\ - !*** external "React" ***! - \************************/ -/***/ ((module) => { - -module.exports = window["React"]; - -/***/ }), - -/***/ "@wordpress/block-editor": -/*!*************************************!*\ - !*** external ["wp","blockEditor"] ***! - \*************************************/ -/***/ ((module) => { - -module.exports = window["wp"]["blockEditor"]; - -/***/ }), - -/***/ "@wordpress/blocks": -/*!********************************!*\ - !*** external ["wp","blocks"] ***! - \********************************/ -/***/ ((module) => { - -module.exports = window["wp"]["blocks"]; - -/***/ }), - -/***/ "@wordpress/components": -/*!************************************!*\ - !*** external ["wp","components"] ***! - \************************************/ -/***/ ((module) => { - -module.exports = window["wp"]["components"]; - -/***/ }), - -/***/ "@wordpress/server-side-render": -/*!******************************************!*\ - !*** external ["wp","serverSideRender"] ***! - \******************************************/ -/***/ ((module) => { - -module.exports = window["wp"]["serverSideRender"]; - -/***/ }), - -/***/ "./src/blocks/release-result-list/block.json": -/*!***************************************************!*\ - !*** ./src/blocks/release-result-list/block.json ***! - \***************************************************/ -/***/ ((module) => { - -module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"wporg/release-result-list","version":"0.1.0","title":"Release Result List","category":"design","icon":"","description":"A block to display release draft result list.","textdomain":"wporg","attributes":{},"supports":{"html":false},"editorScript":"file:./index.js","render":"file:./render.php","style":"file:./style-index.css"}'); - -/***/ }) - -/******/ }); -/************************************************************************/ -/******/ // The module cache -/******/ var __webpack_module_cache__ = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ // Check if module is in cache -/******/ var cachedModule = __webpack_module_cache__[moduleId]; -/******/ if (cachedModule !== undefined) { -/******/ return cachedModule.exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = __webpack_module_cache__[moduleId] = { -/******/ // no module.id needed -/******/ // no module.loaded needed -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = __webpack_modules__; -/******/ -/************************************************************************/ -/******/ /* webpack/runtime/chunk loaded */ -/******/ (() => { -/******/ var deferred = []; -/******/ __webpack_require__.O = (result, chunkIds, fn, priority) => { -/******/ if(chunkIds) { -/******/ priority = priority || 0; -/******/ for(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1]; -/******/ deferred[i] = [chunkIds, fn, priority]; -/******/ return; -/******/ } -/******/ var notFulfilled = Infinity; -/******/ for (var i = 0; i < deferred.length; i++) { -/******/ var chunkIds = deferred[i][0]; -/******/ var fn = deferred[i][1]; -/******/ var priority = deferred[i][2]; -/******/ var fulfilled = true; -/******/ for (var j = 0; j < chunkIds.length; j++) { -/******/ if ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) { -/******/ chunkIds.splice(j--, 1); -/******/ } else { -/******/ fulfilled = false; -/******/ if(priority < notFulfilled) notFulfilled = priority; -/******/ } -/******/ } -/******/ if(fulfilled) { -/******/ deferred.splice(i--, 1) -/******/ var r = fn(); -/******/ if (r !== undefined) result = r; -/******/ } -/******/ } -/******/ return result; -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/compat get default export */ -/******/ (() => { -/******/ // getDefaultExport function for compatibility with non-harmony modules -/******/ __webpack_require__.n = (module) => { -/******/ var getter = module && module.__esModule ? -/******/ () => (module['default']) : -/******/ () => (module); -/******/ __webpack_require__.d(getter, { a: getter }); -/******/ return getter; -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/define property getters */ -/******/ (() => { -/******/ // define getter functions for harmony exports -/******/ __webpack_require__.d = (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 */ -/******/ (() => { -/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) -/******/ })(); -/******/ -/******/ /* webpack/runtime/make namespace object */ -/******/ (() => { -/******/ // define __esModule on exports -/******/ __webpack_require__.r = (exports) => { -/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { -/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); -/******/ } -/******/ Object.defineProperty(exports, '__esModule', { value: true }); -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/jsonp chunk loading */ -/******/ (() => { -/******/ // no baseURI -/******/ -/******/ // object to store loaded and loading chunks -/******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched -/******/ // [resolve, reject, Promise] = chunk loading, 0 = chunk loaded -/******/ var installedChunks = { -/******/ "blocks/release-result-list/index": 0, -/******/ "blocks/release-result-list/style-index": 0 -/******/ }; -/******/ -/******/ // no chunk on demand loading -/******/ -/******/ // no prefetching -/******/ -/******/ // no preloaded -/******/ -/******/ // no HMR -/******/ -/******/ // no HMR manifest -/******/ -/******/ __webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0); -/******/ -/******/ // install a JSONP callback for chunk loading -/******/ var webpackJsonpCallback = (parentChunkLoadingFunction, data) => { -/******/ var chunkIds = data[0]; -/******/ var moreModules = data[1]; -/******/ var runtime = data[2]; -/******/ // add "moreModules" to the modules object, -/******/ // then flag all "chunkIds" as loaded and fire callback -/******/ var moduleId, chunkId, i = 0; -/******/ if(chunkIds.some((id) => (installedChunks[id] !== 0))) { -/******/ for(moduleId in moreModules) { -/******/ if(__webpack_require__.o(moreModules, moduleId)) { -/******/ __webpack_require__.m[moduleId] = moreModules[moduleId]; -/******/ } -/******/ } -/******/ if(runtime) var result = runtime(__webpack_require__); -/******/ } -/******/ if(parentChunkLoadingFunction) parentChunkLoadingFunction(data); -/******/ for(;i < chunkIds.length; i++) { -/******/ chunkId = chunkIds[i]; -/******/ if(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) { -/******/ installedChunks[chunkId][0](); -/******/ } -/******/ installedChunks[chunkId] = 0; -/******/ } -/******/ return __webpack_require__.O(result); -/******/ } -/******/ -/******/ var chunkLoadingGlobal = self["webpackChunkwporg_plugins_2024"] = self["webpackChunkwporg_plugins_2024"] || []; -/******/ chunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0)); -/******/ chunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal)); -/******/ })(); -/******/ -/************************************************************************/ -/******/ -/******/ // startup -/******/ // Load entry module and return exports -/******/ // This entry module depends on other loaded chunks and execution need to be delayed -/******/ var __webpack_exports__ = __webpack_require__.O(undefined, ["blocks/release-result-list/style-index"], () => (__webpack_require__("./src/blocks/release-result-list/index.js"))) -/******/ __webpack_exports__ = __webpack_require__.O(__webpack_exports__); -/******/ -/******/ })() -; -//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-list/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-list/render.php deleted file mode 100644 index 1df49ea1ef..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-list/render.php +++ /dev/null @@ -1,22 +0,0 @@ -
  • > -
    - attributes['status'] ) : ?> - - - - - - attributes['status'] ) : ?> - - - - attributes['status'] ) : ?> - - - - - -
    - - inner_html ); ?> -
  • diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-list/style-index.css b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-list/style-index.css deleted file mode 100644 index 1ef3e67a05..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-list/style-index.css +++ /dev/null @@ -1,17 +0,0 @@ -/*!******************************************************************************************************************************************************************************************************************************************************************!*\ - !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/blocks/release-result-list/style.scss ***! - \******************************************************************************************************************************************************************************************************************************************************************/ -.wp-block-wporg-release-result-item { - display: flex; - margin: 0 !important; - position: relative; - gap: 8px; - list-style: none; -} -.wp-block-wporg-release-result-item > div:first-child { - height: 25px; - display: flex; - align-items: center; -} - -/*# sourceMappingURL=style-index.css.map*/ \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status/render.php index a4012c0db0..0517e2e2f2 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status/render.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status/render.php @@ -4,12 +4,12 @@ return; } -$release_post = get_post( $block->context['postId'] ); -if ( ! $release_post ) { +$post = get_post( $block->context['postId'] ); +if ( ! $post ) { return; } -if ( 'draft' != $release_post->post_status ) { +if('draft' != $post->post_s) { return; } ?> diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/client/components/plugin/_spinner.scss b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/client/components/plugin/_spinner.scss deleted file mode 100644 index 0ac9a79e9b..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/client/components/plugin/_spinner.scss +++ /dev/null @@ -1,49 +0,0 @@ -.wporg-spinner { - --local-size: 16px; - --spinner-color: var(--wp--custom--spinner--color, var(--wp--preset--color--blueberry-1, currentColor)); - --background-stroke-color: rgb(221, 221, 221); - - width: var(--local-size); - height: var(--local-size); - display: inline-block; - background-color: transparent; - position: relative; -} - -/* Static outer circle */ -.wporg-spinner::before { - content: ''; - width: 100%; - height: 100%; - border-radius: 50%; - border: 1.5px solid var(--background-stroke-color); - display: block; - box-sizing: border-box; -} - -/* Rotating semicircle (arc) */ -.wporg-spinner::after { - content: ''; - width: 100%; - height: 100%; - border-radius: 50%; - border: 1.5px solid transparent; - border-top-color: var(--spinner-color); - border-right-color: var(--spinner-color); - display: block; - box-sizing: border-box; - animation: wporg-spinner-rotate 1.4s linear infinite; - transform-origin: center; - position: absolute; - top: 0; - left: 0; -} - -@keyframes wporg-spinner-rotate { - from { - transform: rotate(0deg); - } - to { - transform: rotate(360deg); - } -} diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/client/styles/components/_components.scss b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/client/styles/components/_components.scss index 77be260a4f..66e63d0b08 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/client/styles/components/_components.scss +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/client/styles/components/_components.scss @@ -22,7 +22,6 @@ @import "../../components/plugin/sections-screenshots"; @import "../../components/plugin/sections-stats"; @import "../../components/plugin/sections"; -@import "../../components/plugin/spinner"; @import "../../components/plugin/style"; @import "../../components/widget-area/widgets-adopt-me"; @import "../../components/widget-area/widgets-categorization"; diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/css/style-rtl.css b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/css/style-rtl.css index 01016b968f..06d154b748 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/css/style-rtl.css +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/css/style-rtl.css @@ -1 +1 @@ -@charset "UTF-8";.avatar{border-radius:50%;vertical-align:middle}.wp-block-wporg-language-suggest>p{margin:0}.block-validator>details summary{padding:var(--wp--style--block-gap) 0}.block-validator .block-validator__plugin-form label{display:block;margin-bottom:.8em}.block-validator .block-validator__plugin-input-container{display:flex;max-width:34rem}.block-validator .block-validator__plugin-input{flex:1}.block-validator .block-validator__plugin-submit{flex:0;margin-right:4px}@media (max-width:36rem){.block-validator .block-validator__plugin-submit{width:100%}.block-validator .block-validator__plugin-input-container{display:block}.block-validator .block-validator__plugin-input{width:100%}.block-validator .block-validator__plugin-submit{margin-right:0;margin-top:var(--wp--style--block-gap)}}.block-validator .notice details,.block-validator .notice p{font-size:var(--wp--preset--font-size--normal);margin:var(--wp--style--block-gap) 0}.block-validator .notice details p{font-size:var(--wp--preset--font-size--small);margin-right:1rem}.block-validator .notice summary{display:list-item}.block-validator figure{border:1px solid #aaa;display:inline-block;padding:1em}.block-validator .test-screenshot{text-align:center}.block-validator .plugin-upload-form-controls{align-items:center;display:flex;gap:4px}.block-validator .plugin-upload-form-controls>label{border:1px solid var(--wp--custom--form--border--color);border-radius:var(--wp--custom--form--border--radius);cursor:pointer;min-width:200px;padding:4px 8px}.notice{background:#fff;border-right:4px solid #fff;box-shadow:0 1px 1px 0 #0000001a;font-size:var(--wp--preset--font-size--small);margin:var(--wp--style--block-gap) 0;padding:1px 12px}.notice p,.notice ul{margin:.5em 0;padding:2px}.notice pre{white-space:pre-wrap}.notice ul{list-style:none;margin:.5em}.notice.notice-alt{box-shadow:none}.notice.notice-large{padding:10px 20px}.notice.notice-success{border-right-color:#46b450}.notice.notice-success.notice-alt{background-color:#ecf7ed}.notice.notice-warning{border-right-color:#ffb900}.notice.notice-warning.notice-alt{background-color:#fff8e5}.notice.notice-error{border-right-color:#dc3232}.notice.notice-error.notice-alt{background-color:#fbeaea}.notice.notice-info{border-right-color:#00a0d2}.notice.notice-info.notice-alt{background-color:#e5f5fa}.notice.hidden{display:none}.plugin-upload-form.hidden{display:none}.plugin-upload-form fieldset{border:none;margin:0;padding:0}.plugin-upload-form legend{margin:1rem 0}.plugin-upload-form .category-checklist{list-style-type:none;margin:0 0 2rem}.plugin-upload-form .category-checklist li{float:right;padding:.5rem 0;width:50%}@media screen and (min-width:48em){.plugin-upload-form .category-checklist li{padding:0}.plugin-upload-form .category-checklist label{font-size:var(--wp--preset--font-size--small)}.plugin-upload-form label.button{line-height:1.8}}.plugin-upload-form .plugin-file{height:.1px;opacity:0;overflow:hidden;position:absolute;width:.1px;z-index:-1}.plugin-queue-message code{font-size:1em}.plugin-queue-message dialog.slug-change input[type=text]{font-family:monospace;font-size:1.2em;width:20em}:where(main) a:where(:not(.wp-element-button,.wp-block-wporg-link-wrapper)):focus,:where(main) button:where(:not([class*=wp-block-button])):focus{border-radius:2px;box-shadow:0 0 0 1.5px currentColor;outline:none}.wporg-filter-bar{--wporg--filter-bar--gap:20px;--wporg--filter-bar--color:#40464d;--wporg--filter-bar--active--background-color:var(--wp--custom--button--color--background);--wporg--filter-bar--focus--border-color:var(--wp--custom--button--focus--border--color);margin:var(--wp--style--block-gap) 0}.wporg-filter-bar .wporg-query-filter__toggle.is-active,.wporg-filter-bar .wporg-query-filter__toggle:active,.wporg-filter-bar .wporg-query-filter__toggle:focus{background-color:var(--wporg--filter-bar--active--background-color);color:var(--wp--custom--button--color--text)}.wporg-filter-bar .wporg-filter-bar__navigation{flex-grow:1;margin-bottom:var(--wporg--filter-bar--gap)}.wporg-filter-bar .wporg-filter-bar__navigation ul{display:inline-block;font-size:13px;line-height:1.538;list-style:none;margin:0;padding-right:0}.wporg-filter-bar .wporg-filter-bar__navigation ul li{display:inline-block}.wporg-filter-bar .wporg-filter-bar__navigation ul li+li{margin-right:8px}.wporg-filter-bar .wporg-filter-bar__navigation ul a{border-radius:2px;color:var(--wporg--filter-bar--color);display:block;padding:8px 12px;text-decoration:none}.wporg-filter-bar .wporg-filter-bar__navigation ul a:focus,.wporg-filter-bar .wporg-filter-bar__navigation ul a:hover{text-decoration:underline}.wporg-filter-bar .wporg-filter-bar__navigation ul a:focus-visible{box-shadow:none;outline:1.5px solid var(--wporg--filter-bar--focus--border-color);outline-offset:-.5px}.wporg-filter-bar .wporg-filter-bar__navigation ul a.is-active{background-color:var(--wporg--filter-bar--active--background-color);color:#fff}.wporg-filter-bar .wporg-filter-bar__navigation ul a.is-active:focus,.wporg-filter-bar .wporg-filter-bar__navigation ul a.is-active:hover{color:#fff}.wporg-filter-bar .wporg-filter-bar__navigation ul a.is-active:focus-visible{box-shadow:inset 0 0 0 1.5px #fff;outline:1.5px solid var(--wporg--filter-bar--focus--border-color);outline-offset:-.5px}@media screen and (min-width:737px){.wporg-filter-bar{align-items:center;display:flex;flex-wrap:wrap;gap:var(--wporg--filter-bar--gap);justify-content:space-between;width:100%}.wporg-filter-bar .wporg-filter-bar__navigation{margin-bottom:0}}.wp-block-search__inside-wrapper{background:var(--wp--preset--color--light-grey-2);border:none}.button-link{background:none;border:0;border-radius:0;box-shadow:none;cursor:pointer;margin:0;outline:none;padding:0}.button{background-color:var(--wp--custom--button--color--background);border:0;border-radius:var(--wp--custom--button--border--radius);color:var(--wp--custom--button--color--text);cursor:pointer;opacity:1;padding:calc(var(--wp--custom--button--small--spacing--padding--top) + var(--wp--custom--button--border--width)) calc(var(--wp--custom--button--small--spacing--padding--left) + var(--wp--custom--button--border--width)) calc(var(--wp--custom--button--small--spacing--padding--bottom) + var(--wp--custom--button--border--width)) calc(var(--wp--custom--button--small--spacing--padding--right) + var(--wp--custom--button--border--width));vertical-align:middle}.button.button-large{padding:calc(var(--wp--custom--button--spacing--padding--top) + var(--wp--custom--button--border--width)) calc(var(--wp--custom--button--spacing--padding--left) + var(--wp--custom--button--border--width)) calc(var(--wp--custom--button--spacing--padding--bottom) + var(--wp--custom--button--border--width)) calc(var(--wp--custom--button--spacing--padding--right) + var(--wp--custom--button--border--width))}input+button.button,select+button.button{margin-top:-3px}.button.disabled{cursor:not-allowed;opacity:.6}.wp-block-post-content a.button{text-decoration:none}.wp-block-button__link{width:auto}pre{background-color:#f7f7f7;border:1px solid var(--wp--preset--color--light-grey-1);overflow:scroll;padding:20px}code,pre{border-radius:2px}code{background:var(--wp--preset--color--light-grey-2);display:inline-block;line-height:var(--wp--custom--body--extra-small--typography--line-height);max-width:100%;padding-inline-end:3px;padding-inline-start:3px}dialog{border:0;box-shadow:-6px 6px 6px #0003;min-height:50%;min-width:30%}@media (min-width:1280px){dialog{max-width:55%}}dialog::backdrop{background:#000;opacity:.5}dialog .close{color:inherit;cursor:pointer;position:absolute;left:1em;text-decoration:none!important;top:1em}.plugin-card{display:flex;flex-direction:column;height:100%;justify-content:space-between}.plugin-card .entry{display:inline-block;vertical-align:top}.plugin-card .entry-title{display:block;display:-webkit-box;font-size:var(--wp--preset--font-size--heading-5);font-weight:500;line-height:1.3;margin-bottom:2px!important;max-height:2.6em;overflow:hidden;-webkit-line-clamp:2;-webkit-box-orient:vertical}.plugin-card .entry-title a{display:block;text-decoration:none}.plugin-card .entry-title a:focus{box-shadow:none}.plugin-card .entry-excerpt{clear:both;font-size:var(--wp--preset--font-size--small)}.plugin-card .entry-excerpt p{margin:0}.plugin-card footer{font-size:var(--wp--preset--font-size--small);margin-top:var(--wp--style--block-gap)}.plugin-card footer span{color:var(--wp--preset--color--charcoal-4);display:inline-block;line-height:var(--wp--preset--font-size--normal);overflow:hidden}.plugin-card footer span.plugin-author{width:100%}.plugin-card footer span.plugin-author span{color:var(--wp--preset--color--charcoal-1)}.plugin-card footer span.plugin-author path{fill:var(--wp--preset--color--charcoal-1)}.plugin-card footer span svg{height:24px;vertical-align:bottom;width:24px}.plugin-card footer span svg path{fill:var(--wp--preset--color--charcoal-4)}.plugin-card footer span.active-installs{min-width:48%}.plugin-cards{cursor:pointer}.plugin-cards .is-style-cards-grid li:hover{background-color:#fff!important;border:1px solid var(--wp--preset--color--charcoal-1)!important}.plugin-cards .is-style-cards-grid li:focus-within{border-color:#0000;border-radius:2px;box-shadow:0 0 0 1.5px var(--wp--custom--link--color--text)}@media screen and (max-width:737px){.plugin-cards .is-style-cards-grid{grid-template-columns:100%}}.entry-thumbnail{display:none;margin-bottom:var(--wp--style--block-gap);margin-left:var(--wp--style--block-gap);max-width:80px}.entry-thumbnail .plugin-icon{background-size:cover;border-radius:var(--wp--custom--button--border--radius);display:block;height:80px;width:80px}@media screen and (min-width:21em){.entry-thumbnail{display:inline-block;float:right;vertical-align:top}}.single .entry-thumbnail{display:none;float:right;height:96px;margin-bottom:0;max-width:96px}@media screen and (min-width:26em){.single .entry-thumbnail{display:block}}.single .entry-thumbnail .plugin-icon{background-size:contain!important;height:96px!important;width:96px!important}.plugin-rating{line-height:1;margin:0 0 8px 10px}.plugin-rating .wporg-ratings{display:inline-block;margin-left:5px}.plugin-rating .rating-count{color:var(--wp--preset--color--charcoal-4);font-size:var(--wp--preset--font-size--extra-small);vertical-align:text-bottom}.plugin-rating .rating-count a{color:inherit;cursor:hand;text-decoration:none}[class*=dashicons-star-]{color:var(--wp--preset--color--pomegrade-1)}.rtl .dashicons-star-half{transform:rotateY(-180deg)}#main .plugin-section{margin:0 auto var(--wp--preset--spacing--60)}#main .plugin-section:last-of-type{margin-bottom:0}#main .plugin-section .section-header{align-items:center;column-gap:10px;display:flex;justify-content:space-between;margin-bottom:var(--wp--style--block-gap)}#main .plugin-section .section-header>h2{margin-bottom:0}#main .plugin-section .section-link{align-self:center;flex:0 0 auto;text-decoration:underline}.pagination .nav-links{margin-top:var(--wp--style--block-gap);padding-top:var(--wp--style--block-gap);text-align:center}.pagination .nav-links a{text-decoration:none}.pagination .nav-links .page-numbers{cursor:pointer;display:inline-block;min-width:2em;padding:8px;text-align:center}.pagination .nav-links .page-numbers.dots,.pagination .nav-links .page-numbers.next,.pagination .nav-links .page-numbers.prev{background:none;font-size:.9em;width:auto}.pagination .nav-links .page-numbers.dots{cursor:inherit}@media screen and (max-width:737px){.pagination .nav-links .page-numbers.next,.pagination .nav-links .page-numbers.prev{font-size:0;min-width:auto;padding:0}.pagination .nav-links .page-numbers.next:after,.pagination .nav-links .page-numbers.prev:before{display:inline-block;font-size:medium;line-height:1.5;min-width:2em;padding:8px}.pagination .nav-links .page-numbers.prev:before{content:"‹"}.pagination .nav-links .page-numbers.next:after{content:"›"}}.pagination .nav-links span.page-numbers{font-weight:700}.pagination .nav-links span.page-numbers.current{text-decoration:underline}@keyframes favme-anime{0%{font-size:var(--wp--preset--font-size--large);opacity:1;-webkit-text-stroke-color:#0000}25%{color:#fff;font-size:var(--wp--preset--font-size--small);opacity:.6;-webkit-text-stroke-width:1px;-webkit-text-stroke-color:#dc3232}75%{color:#fff;font-size:var(--wp--preset--font-size--large);opacity:.6;-webkit-text-stroke-width:1px;-webkit-text-stroke-color:#dc3232}to{font-size:var(--wp--preset--font-size--normal);opacity:1;-webkit-text-stroke-color:#0000}}.plugin-favorite{height:calc(var(--wp--custom--button--spacing--padding--top)*2 + var(--wp--preset--font-size--normal)*2);text-align:center;vertical-align:top;width:36px}.plugin-favorite .plugin-favorite-heart{align-items:center;background:none;border:0;border-radius:0;box-shadow:none;color:#cbcdce;cursor:pointer;display:flex;font-size:var(--wp--preset--font-size--large);height:100%;justify-content:center;line-height:1;margin:0;outline:none;padding:0;text-decoration:none}.plugin-favorite .plugin-favorite-heart.favorited{color:#dc3232}.plugin-favorite .plugin-favorite-heart:focus,.plugin-favorite .plugin-favorite-heart:hover{color:var(----wp--preset--color--charcoal-2);text-decoration:none}.plugin-favorite .plugin-favorite-heart:after{content:"\f487";font-family:dashicons;vertical-align:top}.plugin-banner img{aspect-ratio:3.089;border-radius:var(--wp--custom--button--border--radius);display:block;margin:0 auto var(--wp--preset--spacing--30);width:100%}.plugin-releases{list-style-type:none;padding:0}.plugin-releases-item{border:1px solid var(--wp--preset--color--light-grey-1);border-radius:4px;margin-bottom:var(--wp--preset--spacing--30);padding:var(--wp--style--block-gap)}.plugin-releases-item-header{display:flex;justify-content:space-between}.plugin-releases-item-header h3{margin:0!important}@keyframes hideAnimation{to{visibility:hidden}}.categorization .help{color:var(--wp--preset--color--charcoal-4);display:inline-block;font-size:.8rem;margin-top:0}.categorization label{display:block;font-weight:700}.categorization input{width:100%}.categorization .success-msg{background:#eff7ed;border:solid #64b450;border-width:0 5px 0 0;font-size:.8rem;margin-right:1rem;opacity:0;overflow:auto;padding:.1rem .6rem .2rem;position:relative;transition:visibility 0s,opacity .5s linear;-webkit-user-select:none;user-select:none;visibility:hidden}.categorization .success-msg.saved{animation:hideAnimation 0s ease-in 5s;animation-fill-mode:forwards;opacity:1;visibility:visible}.plugin-changelog code{font-size:var(--wp--preset--font-size--small)}.plugin-developers .contributors-list li{align-items:center;display:flex;padding-bottom:var(--wp--style--block-gap)}@media screen and (min-width:500px){.plugin-developers .contributors-list{display:flex;flex-wrap:wrap}.plugin-developers .contributors-list li{padding-bottom:unset;width:50%}}.plugin-faq dl{border-bottom:1px solid var(--wp--preset--color--light-grey-1)}.plugin-faq dt{border-top:1px solid var(--wp--preset--color--light-grey-1);cursor:pointer;padding:1rem 0}.plugin-faq dt:before{content:"\f347";float:left;font-family:dashicons;margin:0 1rem}.plugin-faq dt.open:before{content:"\f343"}.plugin-faq dt .button-link{display:inherit;text-align:inherit}.plugin-faq dt .button-link.no-focus{box-shadow:none;outline:none}.plugin-faq dt h3{color:var(--wp--custom--link--color--text);display:inline;font-size:var(--wp--preset--font-size--normal);font-weight:400;margin-bottom:0;margin-top:0!important;text-decoration:underline}.plugin-faq dt h3 button{all:inherit;max-width:calc(100% - 60px)}.plugin-faq dt h3 button:focus,.plugin-faq dt h3 button:hover{text-decoration:underline}.plugin-faq dd{display:none;margin:0 0 1rem}.no-js .plugin-faq dd{display:block}.plugin-faq dd p{margin:0}.plugin-faq dd p+p{margin-top:1rem}.image-gallery{-webkit-user-select:none;user-select:none}.image-gallery-content{position:relative}.image-gallery-content .image-gallery-left-nav,.image-gallery-content .image-gallery-right-nav{border-color:var(--wp--preset--color--light-grey-1);display:none;font-size:48px;height:100%;position:absolute;top:0;transition:background .1s ease,border .1s ease;z-index:4}@media (max-width:768px){.image-gallery-content .image-gallery-left-nav,.image-gallery-content .image-gallery-right-nav{font-size:3.4em}}@media (min-width:768px){.image-gallery-content .image-gallery-left-nav:hover,.image-gallery-content .image-gallery-right-nav:hover{background:#fff;border:1px solid var(--wp--preset--color--light-grey-1);opacity:.8}}.image-gallery-content .image-gallery-left-nav:before,.image-gallery-content .image-gallery-right-nav:before{font-family:dashicons;position:relative}.image-gallery-content .image-gallery-left-nav{right:0}.image-gallery-content .image-gallery-left-nav:before{content:"\f345"}.image-gallery-content .image-gallery-left-nav:hover{margin-right:-1px}.image-gallery-content .image-gallery-right-nav{left:0}.image-gallery-content .image-gallery-right-nav:before{content:"\f341"}.image-gallery-content .image-gallery-right-nav:hover{margin-left:-1px}.image-gallery-content:hover .image-gallery-left-nav,.image-gallery-content:hover .image-gallery-right-nav{display:block}.image-gallery-slides{border:1px solid #eee;line-height:0;overflow:hidden;position:relative;white-space:nowrap}.image-gallery-slide{right:0;position:absolute;top:0;width:100%}.image-gallery-slide.center{position:relative}.image-gallery-slide .image-gallery-image{margin:0}.image-gallery-slide img{display:block;margin:0 auto}.image-gallery-slide .image-gallery-description{background:var(--wp--preset--color--light-grey-2);color:var(--wp--preset--color--charcoal-1);font-size:var(--wp--preset--font-size--small);line-height:1.5;padding:10px 20px;white-space:normal}@media (max-width:768px){.image-gallery-slide .image-gallery-description{padding:8px 15px}}.image-gallery-thumbnails{background:#fff;margin-top:5px}.image-gallery-thumbnails .image-gallery-thumbnails-container{cursor:pointer;text-align:center;white-space:nowrap}.image-gallery-thumbnail{border:1px solid #eee;display:table-cell;margin-left:5px;max-height:100px;overflow:hidden}.image-gallery-thumbnail .image-gallery-image{margin:0}.image-gallery-thumbnail img{vertical-align:middle;width:100px}@media (max-width:768px){.image-gallery-thumbnail img{width:75px}}.image-gallery-thumbnail:hover{box-shadow:0 1px 8px #0000004d}.image-gallery-thumbnail.active{border:1px solid #337ab7}.image-gallery-thumbnail-label{color:#222;font-size:1em}@media (max-width:768px){.image-gallery-thumbnail-label{font-size:.8em}}.image-gallery-index{background:#0006;bottom:0;color:#fff;line-height:1;padding:10px 20px;position:absolute;left:0;z-index:4}.plugin-reviews{list-style-type:none;margin:0;padding:0}.plugin-reviews .plugin-review{border-bottom:1px solid var(--wp--preset--color--light-grey-1);margin:2rem 0 1rem;padding-bottom:1rem}.plugin-reviews .plugin-review a{text-decoration:none}.plugin-reviews .plugin-review:first-child{margin-top:0}.plugin-reviews .plugin-review .header-top{display:flex}.plugin-reviews .plugin-review .header-top .wporg-ratings{flex-shrink:0}.plugin-reviews .plugin-review .header-bottom{display:flex;margin-top:4px}.plugin-reviews .review-avatar{display:none}.plugin-reviews .review,.plugin-reviews .review-author,.plugin-reviews .wporg-ratings{display:inline-block;vertical-align:top}.plugin-reviews .review-header{margin:0 0 .5rem}.plugin-reviews .review-title{font-size:var(--wp--preset--font-size--normal);font-weight:500;margin:2px 12px 0 0!important;text-transform:inherit}.plugin-reviews .review-author,.plugin-reviews .review-date,.plugin-reviews .review-replies{font-size:var(--wp--preset--font-size--extra-small);line-height:1.25}.plugin-reviews .review-date,.plugin-reviews .review-replies{color:var(--wp--preset--color--charcoal-4);font-size:var(--wp--preset--font-size--extra-small);margin-right:12px}.plugin-reviews .review-replies:before{content:"•";margin-left:12px}.plugin-reviews .review-content{margin:1em 0}@media screen and (min-width:737px){.plugin-reviews .review-avatar{display:inline-block;vertical-align:top}.plugin-reviews .review-avatar .avatar{margin-left:1rem}.plugin-reviews .review{width:calc(100% - 60px - 1rem)}.plugin-reviews .review-header{margin:0}.plugin-reviews .review-author,.plugin-reviews .review-date,.plugin-reviews .review-replies{line-height:1}}.plugin-reviews .reviews-link{display:inline-block;font-size:var(--wp--preset--font-size--small);text-decoration:none}.plugin-reviews .reviews-link:after{content:"\f341";float:left;font-family:dashicons;padding-right:5px;position:relative;top:1px;vertical-align:text-top}.plugin-screenshots{list-style-type:none;margin:0;padding:0}.plugin-screenshots .image-gallery-content{display:table;width:100%}.plugin-screenshots .image-gallery-slides{display:table-cell;max-height:600px}.plugin-screenshots .image-gallery-image img{max-height:550px;max-width:100%}.plugin-screenshots .image-gallery-thumbnail{vertical-align:top}.plugin-screenshots .image-gallery-thumbnail img{max-height:100px}.plugin-screenshots .image-gallery-thumbnails{overflow:hidden}.download-history-stats td{text-align:left}.previous-versions{max-width:60%}@media screen and (min-width:737px){.previous-versions{height:32px;vertical-align:middle}}hr{margin:2.5rem auto}.section h1:nth-child(2),.section h2:nth-child(2),.section h3:nth-child(2),.section h4:nth-child(2),.section h5:nth-child(2),.section h6:nth-child(2){margin-top:0}.section-heading{font-family:var(--wp--preset--font-family--inter)!important;font-size:var(--wp--preset--font-size--heading-5)!important;font-style:normal;font-weight:600;line-height:var(--wp--custom--heading--level-5--typography--line-height)}.section-intro{color:var(--wp--preset--color--charcoal-4);font-size:var(--wp--preset--font-size--small);margin-bottom:var(--wp--preset--spacing--20);margin-top:var(--wp--preset--spacing--10)}.wporg-spinner{--local-size:16px;--spinner-color:var(--wp--custom--spinner--color,var(--wp--preset--color--blueberry-1,currentColor));--background-stroke-color:#ddd;background-color:initial;display:inline-block;height:var(--local-size);position:relative;width:var(--local-size)}.wporg-spinner:before{border:1.5px solid var(--background-stroke-color);border-radius:50%}.wporg-spinner:after,.wporg-spinner:before{box-sizing:border-box;content:"";display:block;height:100%;width:100%}.wporg-spinner:after{animation:wporg-spinner-rotate 1.4s linear infinite;border-bottom:1.5px solid #0000;border-right:1.5px solid #0000;border-radius:50%;border-left:1.5px solid #0000;border-left-color:var(--spinner-color);border-top:1.5px solid #0000;border-top-color:var(--spinner-color);right:0;position:absolute;top:0;transform-origin:center}@keyframes wporg-spinner-rotate{0%{transform:rotate(0deg)}to{transform:rotate(-1turn)}}.type-plugin .plugin-notice{margin-top:0}.type-plugin .plugin-header{border-bottom:0;padding-top:var(--wp--preset--spacing--40)}.type-plugin .plugin-header:after,.type-plugin .plugin-header:before{content:"";display:table;table-layout:fixed}.type-plugin .plugin-header:after{clear:both}.type-plugin .plugin-header .entry-heading-container{display:flex;flex-direction:column;justify-content:space-between}@media screen and (max-width:599px){.type-plugin .plugin-header .entry-heading-container{--wp--custom--button--spacing--padding--top:12px;--wp--custom--button--spacing--padding--bottom:12px;--wp--custom--button--spacing--padding--left:16px;--wp--custom--button--spacing--padding--right:16px}}@media screen and (min-width:700px){.type-plugin .plugin-header .entry-heading-container{flex-direction:row}}.type-plugin .plugin-header .entry-heading-container>:first-child{align-items:center;display:flex;flex:1}.type-plugin .plugin-header .plugin-actions{align-items:center;display:flex;gap:16px;margin-top:var(--wp--style--block-gap)}@media screen and (min-width:700px){.type-plugin .plugin-header .plugin-actions{margin-top:0;margin-inline-start:1rem}}.type-plugin .plugin-header .plugin-actions>.button,.type-plugin .plugin-header .plugin-actions>div{display:inline-block;text-align:center}@media screen and (max-width:34em){.type-plugin .plugin-header .plugin-actions>.button.download-button{display:none}}.type-plugin .plugin-header .plugin-title{clear:none;font-size:var(--wp--preset--font-size--heading-3);font-weight:400;line-height:var(--wp--custom--heading--level-3--typography--line-height);margin:0}.type-plugin .plugin-header .plugin-title a{color:inherit;text-decoration:none}.type-plugin .plugin-header .plugin-title a:hover{text-decoration:underline}.type-plugin .plugin-header .byline{color:var(--wp--preset--color--charcoal-4);display:block;margin-top:4px}.type-plugin .plugin-banner+.plugin-header{padding-top:0}.type-plugin .plugin-banner+.plugin-header>.notice:first-of-type{margin-top:0}.type-plugin .tabs{border-bottom:1px solid var(--wp--preset--color--light-grey-1);list-style:none;margin:0}.type-plugin .tabs li{border:1px solid #0000;display:inline-block;font-size:.9rem;margin-bottom:-1px;transition:background .2s ease}.type-plugin .tabs li a{background:#fff;border:0;color:var(--wp--preset--color--charcoal-1);display:block;font-size:var(--wp--preset--font-size--normal);padding:.64rem 1.25rem;text-decoration:none}.type-plugin .tabs li a.active,.type-plugin .tabs li a:hover{background:var(--wp--preset--color--light-grey-2)!important}.type-plugin .tabs li.active,.type-plugin .tabs li:hover{border:1px solid var(--wp--preset--color--light-grey-1)}@media screen and (max-width:38em){.type-plugin .tabs{border-top:1px solid var(--wp--preset--color--light-grey-1)}.type-plugin .tabs li{display:block;margin-bottom:1px}.type-plugin .tabs li,.type-plugin .tabs li.active,.type-plugin .tabs li:hover{border:none;border-bottom:1px solid var(--wp--preset--color--light-grey-1)}}@media screen and (min-width:737px){.type-plugin .entry-content{float:right;padding:0;width:65%}}.type-plugin .entry-content>div,.type-plugin .entry-content>div~button{border:0;display:none}.type-plugin .entry-content ol>li>p,.type-plugin .entry-content ul>li>p{margin:0}.type-plugin .entry-content #admin{display:block!important}.type-plugin .plugin-blocks-list{list-style:none;margin-right:0;padding-right:0}.type-plugin .plugin-blocks-list .plugin-blocks-list-item{display:grid;grid-template-columns:auto 1fr;margin-bottom:var(--wp--style--block-gap)}.type-plugin .plugin-blocks-list .block-icon{border:1px solid var(--wp--preset--color--light-grey-1);border-radius:2px;display:inline-block;height:3.5rem;line-height:16px;margin-left:var(--wp--style--block-gap);padding:var(--wp--style--block-gap);width:3.5rem}.type-plugin .plugin-blocks-list .block-icon.dashicons{color:inherit}.type-plugin .plugin-blocks-list .block-icon.dashicons:before{margin-right:-3px}.type-plugin .plugin-blocks-list .block-icon svg{height:16px;width:16px;fill:currentColor;margin-right:-1px}.type-plugin .plugin-blocks-list .block-title{align-self:center;font-weight:700}.type-plugin .plugin-blocks-list .has-description .block-icon{grid-row:1/span 2}.type-plugin .plugin-blocks-list .has-description .block-title{margin-bottom:.4em}.type-plugin span#description,.type-plugin span#developers,.type-plugin span#installation,.type-plugin span#releases,.type-plugin span#reviews{position:fixed}.type-plugin span#advanced.displayed~#section-links .tabs li#tablink-advanced,.type-plugin span#developers:target~#section-links .tabs li#tablink-developers,.type-plugin span#installation:target~#section-links .tabs li#tablink-installation,.type-plugin span#releases:target~#section-links .tabs li#tablink-releases,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~span#advanced:not(.displayed)~#section-links .tabs li#tablink-description,.type-plugin span#reviews:target~#section-links .tabs li#tablink-reviews{background:#fff;border:1px solid var(--wp--preset--color--light-grey-1);border-bottom:0;padding-bottom:1px}@media screen and (max-width:38em){.type-plugin span#advanced.displayed~#section-links .tabs li#tablink-advanced.active,.type-plugin span#advanced.displayed~#section-links .tabs li#tablink-advanced:hover,.type-plugin span#developers:target~#section-links .tabs li#tablink-developers.active,.type-plugin span#developers:target~#section-links .tabs li#tablink-developers:hover,.type-plugin span#installation:target~#section-links .tabs li#tablink-installation.active,.type-plugin span#installation:target~#section-links .tabs li#tablink-installation:hover,.type-plugin span#releases:target~#section-links .tabs li#tablink-releases.active,.type-plugin span#releases:target~#section-links .tabs li#tablink-releases:hover,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~span#advanced:not(.displayed)~#section-links .tabs li#tablink-description.active,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~span#advanced:not(.displayed)~#section-links .tabs li#tablink-description:hover,.type-plugin span#reviews:target~#section-links .tabs li#tablink-reviews.active,.type-plugin span#reviews:target~#section-links .tabs li#tablink-reviews:hover{padding-bottom:1px!important}}.type-plugin span#section-links{display:flex;flex-flow:row wrap;margin-top:var(--wp--preset--spacing--30)}.type-plugin span#section-links .tabs{flex:1 1 auto;padding-right:0}@media screen and (max-width:38em){.type-plugin span#section-links .tabs{border:1px solid var(--wp--preset--color--light-grey-1)!important}.type-plugin span#section-links .tabs li{border:none!important}.type-plugin span#section-links{display:block}}.type-plugin #link-support{align-self:flex-end;border-bottom:1px solid var(--wp--preset--color--light-grey-1);flex:0 0 auto;font-size:.9rem}.type-plugin #link-support a{display:inline-block;font-size:var(--wp--preset--font-size--normal);padding:.64rem 1.25rem .64rem 0}@media screen and (max-width:38em){.type-plugin #link-support{border-bottom:0;display:block;width:100%}.type-plugin #link-support a{padding-left:1.25rem}}.type-plugin span#developers:target~.entry-content #tab-changelog,.type-plugin span#developers:target~.entry-content #tab-developers,.type-plugin span#developers:target~.entry-content #tab-developers .plugin-development,.type-plugin span#developers:target~.entry-content #tab-developers~button,.type-plugin span#installation:target~.entry-content #tab-installation,.type-plugin span#releases:target~.entry-content #tab-releases,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~.entry-content #blocks,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~.entry-content #faq,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~.entry-content #screenshots,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~.entry-content #tab-description,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~.entry-content #tab-developers,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~.entry-content #tab-developers~button,.type-plugin span#reviews:target~.entry-content #tab-reviews{display:block}.type-plugin span#developers:target~.entry-content #tab-developers .plugin-contributors,.type-plugin span#installation:target~.entry-meta .plugin-contributors,.type-plugin span#releases:target~.entry-meta,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~.entry-content #tab-developers .plugin-development,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~.entry-meta .plugin-contributors,.type-plugin span#reviews:target~.entry-meta .plugin-contributors,.type-plugin span#reviews:target~.entry-meta .plugin-donate,.type-plugin span#reviews:target~.entry-meta .plugin-meta,.type-plugin span#reviews:target~.entry-meta .plugin-support{display:none}.type-plugin span#releases:target~.entry-content{width:100%}@media screen and (min-width:737px){.type-plugin .entry-content,.type-plugin .entry-meta{padding-right:0;padding-left:0}.type-plugin .entry-meta{float:left;width:30%}}.type-plugin .plugin-danger-zone h4{margin-top:var(--wp--preset--spacing--60)}.plugin-releases-listing{border-collapse:collapse;width:100%}.plugin-releases-listing tbody td:nth-child(4) div{font-size:14px}.plugin-releases-listing-actions{display:flex;flex-direction:column;gap:8px}@media screen and (min-width:34em){.plugin-releases-listing-actions{flex-direction:row}}.plugin-adopt-me{background:#e6f4fa;margin-top:36px;padding:12px}.plugin-adopt-me .widget-title{margin-top:0}.plugin-adopt-me p{margin-bottom:0}.widget.plugin-categorization{margin-top:var(--wp--style--block-gap)}.widget.plugin-categorization .widget-head h2{font-size:var(--wp--preset--font-size--heading-4);margin-bottom:.2rem;margin-top:0}.widget.plugin-categorization .widget-head a{font-size:var(--wp--preset--font-size--small)}.widget.plugin-categorization .widget-head a[href=""]{display:none}.widget.plugin-categorization p{font-size:var(--wp--preset--font-size--small);margin-top:.5rem}.widget.plugin-categorization~.plugin-meta li:first-child{border-top:1px solid var(--wp--preset--color--light-grey-1)}.committer-list,.support-rep-list{list-style:none;margin:0;padding:0}.committer-list li,.support-rep-list li{padding-bottom:.5rem}.committer-list li .remove,.support-rep-list li .remove{color:red;visibility:hidden}.committer-list li:hover .remove,.support-rep-list li:hover .remove{visibility:visible}.committer-list .avatar,.support-rep-list .avatar{float:right;margin-left:10px}.committer-list .spinner,.support-rep-list .spinner{position:relative}.committer-list .spinner:after,.support-rep-list .spinner:after{background:url(/wp-admin/images/spinner.gif) no-repeat 50%;background-size:20px 20px;content:"";display:block;height:20px;margin:-10px 0 0 -10px;position:absolute;left:-50%;top:50%;transform:translateZ(0);width:20px}@media (min-resolution:120dpi),print{.committer-list .spinner:after,.support-rep-list .spinner:after{background-image:url(/wp-admin/images/spinner-2x.gif)}}.committer-list .new,.support-rep-list .new{margin-top:var(--wp--style--block-gap)}.plugin-contributors.read-more{border-bottom:1px solid var(--wp--preset--color--light-grey-1);max-height:200px;overflow:hidden;padding-bottom:1px}.plugin-contributors.read-more.toggled{max-height:none}.no-js .plugin-contributors.read-more{max-height:none;overflow:auto}.contributors-list{list-style-type:none;margin:0;padding:0}.contributors-list li{align-items:center;display:flex;margin-bottom:1rem}.contributors-list .avatar{float:right;margin-left:10px}.plugin-meta{font-size:var(--wp--preset--font-size--small);margin-top:var(--wp--style--block-gap)}.plugin-meta ul{list-style-type:none;margin:0;padding:0}.plugin-meta li{border-top:1px solid var(--wp--preset--color--light-grey-1);display:inline-block;padding:.5rem 0;position:relative;width:100%}.plugin-meta li strong{float:left;font-weight:500}.plugin-meta li .plugin-admin{font-size:var(--wp--preset--font-size--normal);font-weight:400}.plugin-meta li:first-child{border-top:0}.plugin-meta .languages,.plugin-meta .tags{float:left;text-align:left}.plugin-meta .tags{width:60%}.plugin-meta .languages button{font-size:var(--wp--preset--font-size--small);outline:revert}.plugin-meta .languages .popover{margin-top:8px}.plugin-meta .languages .popover-trigger{color:var(--wp--custom--link--color--text);text-decoration:underline}.plugin-meta .languages .popover-trigger:hover{text-decoration:underline}.plugin-meta [rel=tag]{background:var(--wp--preset--color--blueberry-4);border-radius:2px;color:var(--wp--preset--color--charcoal-1);display:inline-block;font-size:var(--wp--preset--font-size--extra-small);margin:2px;max-width:95%;overflow:hidden;padding:3px 6px;position:relative;text-decoration:none;text-overflow:ellipsis;white-space:nowrap;width:auto}.plugin-meta [rel=tag]:hover{text-decoration:underline}.popover{background-color:#fff;border:1px solid var(--wp--preset--color--light-grey-1);border-radius:2px;box-shadow:0 2px 10px #0000001a;display:none;right:0;margin-top:10px;max-width:300px;padding:1em 1em 2em;position:absolute;width:100%;z-index:100}.popover.is-top-right{right:auto;left:0}.popover.is-visible{display:block}.popover .popover-close{bottom:.5em;color:var(--wp--custom--link--color--text);font-size:small;position:absolute;left:.6em}.popover .popover-close:active,.popover .popover-close:focus,.popover .popover-close:hover{text-decoration:underline}.popover .popover-arrow{border:10px solid #0000;border-bottom:10px solid #ccc;border-top:none;height:0;position:absolute;left:20px;top:-10px;width:0;z-index:-1}.popover .popover-arrow:after{border:10px solid #0000;border-bottom:10px solid #fff;border-top:none;content:"";right:-10px;position:absolute;top:2px}.popover .popover-inner{text-align:right}.popover .popover-inner p:first-child{margin-top:0}.popover .popover-inner p:last-child{margin-bottom:0}.plugin-support .counter-container{margin-bottom:1rem;position:relative}.plugin-support .counter-back,.plugin-support .counter-bar{display:inline-block;height:30px;vertical-align:middle}.plugin-support .counter-back{background-color:var(--wp--preset--color--light-grey-2);width:100%}.plugin-support .counter-bar{background-color:var(--wp--preset--color--acid-green-2);display:block}.plugin-support .counter-count{font-size:var(--wp--preset--font-size--extra-small);right:8px;position:absolute;top:8px;width:100%;width:calc(100% - 8px)}@media screen and (min-width:737px){.plugin-support .counter-count{top:5px}}.home .widget,.widget-area.home .widget{display:inline-block;font-size:var(--wp--preset--font-size--small);margin:0;margin:var(--wp--style--block-gap);vertical-align:top;width:auto}@media screen and (min-width:737px){.home .widget,.widget-area.home .widget{margin:0;width:30%}.home .widget:first-child,.widget-area.home .widget:first-child{margin-left:5%}.home .widget:last-child,.widget-area.home .widget:last-child{margin-right:5%}}.home .widget select,.widget-area.home .widget select{max-width:100%}.entry-meta .widget-title{font-size:var(--wp--preset--font-size--heading-4)}body.single.single-plugin .entry-meta{font-size:var(--wp--preset--font-size--normal)}.widget-area{margin:0 auto;padding:var(--wp--preset--spacing--40) 0}.widget-area .widget-title{font-size:var(--wp--preset--font-size--heading-1);font-weight:var(--wp--custom--heading--typography--font-weight);margin-top:var(--wp--preset--spacing--50)}.widget-area .textwidget{text-wrap:pretty} \ No newline at end of file +@charset "UTF-8";.avatar{border-radius:50%;vertical-align:middle}.wp-block-wporg-language-suggest>p{margin:0}.block-validator>details summary{padding:var(--wp--style--block-gap) 0}.block-validator .block-validator__plugin-form label{display:block;margin-bottom:.8em}.block-validator .block-validator__plugin-input-container{display:flex;max-width:34rem}.block-validator .block-validator__plugin-input{flex:1}.block-validator .block-validator__plugin-submit{flex:0;margin-right:4px}@media (max-width:36rem){.block-validator .block-validator__plugin-submit{width:100%}.block-validator .block-validator__plugin-input-container{display:block}.block-validator .block-validator__plugin-input{width:100%}.block-validator .block-validator__plugin-submit{margin-right:0;margin-top:var(--wp--style--block-gap)}}.block-validator .notice details,.block-validator .notice p{font-size:var(--wp--preset--font-size--normal);margin:var(--wp--style--block-gap) 0}.block-validator .notice details p{font-size:var(--wp--preset--font-size--small);margin-right:1rem}.block-validator .notice summary{display:list-item}.block-validator figure{border:1px solid #aaa;display:inline-block;padding:1em}.block-validator .test-screenshot{text-align:center}.block-validator .plugin-upload-form-controls{align-items:center;display:flex;gap:4px}.block-validator .plugin-upload-form-controls>label{border:1px solid var(--wp--custom--form--border--color);border-radius:var(--wp--custom--form--border--radius);cursor:pointer;min-width:200px;padding:4px 8px}.notice{background:#fff;border-right:4px solid #fff;box-shadow:0 1px 1px 0 #0000001a;font-size:var(--wp--preset--font-size--small);margin:var(--wp--style--block-gap) 0;padding:1px 12px}.notice p,.notice ul{margin:.5em 0;padding:2px}.notice pre{white-space:pre-wrap}.notice ul{list-style:none;margin:.5em}.notice.notice-alt{box-shadow:none}.notice.notice-large{padding:10px 20px}.notice.notice-success{border-right-color:#46b450}.notice.notice-success.notice-alt{background-color:#ecf7ed}.notice.notice-warning{border-right-color:#ffb900}.notice.notice-warning.notice-alt{background-color:#fff8e5}.notice.notice-error{border-right-color:#dc3232}.notice.notice-error.notice-alt{background-color:#fbeaea}.notice.notice-info{border-right-color:#00a0d2}.notice.notice-info.notice-alt{background-color:#e5f5fa}.notice.hidden{display:none}.plugin-upload-form.hidden{display:none}.plugin-upload-form fieldset{border:none;margin:0;padding:0}.plugin-upload-form legend{margin:1rem 0}.plugin-upload-form .category-checklist{list-style-type:none;margin:0 0 2rem}.plugin-upload-form .category-checklist li{float:right;padding:.5rem 0;width:50%}@media screen and (min-width:48em){.plugin-upload-form .category-checklist li{padding:0}.plugin-upload-form .category-checklist label{font-size:var(--wp--preset--font-size--small)}.plugin-upload-form label.button{line-height:1.8}}.plugin-upload-form .plugin-file{height:.1px;opacity:0;overflow:hidden;position:absolute;width:.1px;z-index:-1}.plugin-queue-message code{font-size:1em}.plugin-queue-message dialog.slug-change input[type=text]{font-family:monospace;font-size:1.2em;width:20em}:where(main) a:where(:not(.wp-element-button,.wp-block-wporg-link-wrapper)):focus,:where(main) button:where(:not([class*=wp-block-button])):focus{border-radius:2px;box-shadow:0 0 0 1.5px currentColor;outline:none}.wporg-filter-bar{--wporg--filter-bar--gap:20px;--wporg--filter-bar--color:#40464d;--wporg--filter-bar--active--background-color:var(--wp--custom--button--color--background);--wporg--filter-bar--focus--border-color:var(--wp--custom--button--focus--border--color);margin:var(--wp--style--block-gap) 0}.wporg-filter-bar .wporg-query-filter__toggle.is-active,.wporg-filter-bar .wporg-query-filter__toggle:active,.wporg-filter-bar .wporg-query-filter__toggle:focus{background-color:var(--wporg--filter-bar--active--background-color);color:var(--wp--custom--button--color--text)}.wporg-filter-bar .wporg-filter-bar__navigation{flex-grow:1;margin-bottom:var(--wporg--filter-bar--gap)}.wporg-filter-bar .wporg-filter-bar__navigation ul{display:inline-block;font-size:13px;line-height:1.538;list-style:none;margin:0;padding-right:0}.wporg-filter-bar .wporg-filter-bar__navigation ul li{display:inline-block}.wporg-filter-bar .wporg-filter-bar__navigation ul li+li{margin-right:8px}.wporg-filter-bar .wporg-filter-bar__navigation ul a{border-radius:2px;color:var(--wporg--filter-bar--color);display:block;padding:8px 12px;text-decoration:none}.wporg-filter-bar .wporg-filter-bar__navigation ul a:focus,.wporg-filter-bar .wporg-filter-bar__navigation ul a:hover{text-decoration:underline}.wporg-filter-bar .wporg-filter-bar__navigation ul a:focus-visible{box-shadow:none;outline:1.5px solid var(--wporg--filter-bar--focus--border-color);outline-offset:-.5px}.wporg-filter-bar .wporg-filter-bar__navigation ul a.is-active{background-color:var(--wporg--filter-bar--active--background-color);color:#fff}.wporg-filter-bar .wporg-filter-bar__navigation ul a.is-active:focus,.wporg-filter-bar .wporg-filter-bar__navigation ul a.is-active:hover{color:#fff}.wporg-filter-bar .wporg-filter-bar__navigation ul a.is-active:focus-visible{box-shadow:inset 0 0 0 1.5px #fff;outline:1.5px solid var(--wporg--filter-bar--focus--border-color);outline-offset:-.5px}@media screen and (min-width:737px){.wporg-filter-bar{align-items:center;display:flex;flex-wrap:wrap;gap:var(--wporg--filter-bar--gap);justify-content:space-between;width:100%}.wporg-filter-bar .wporg-filter-bar__navigation{margin-bottom:0}}.wp-block-search__inside-wrapper{background:var(--wp--preset--color--light-grey-2);border:none}.button-link{background:none;border:0;border-radius:0;box-shadow:none;cursor:pointer;margin:0;outline:none;padding:0}.button{background-color:var(--wp--custom--button--color--background);border:0;border-radius:var(--wp--custom--button--border--radius);color:var(--wp--custom--button--color--text);cursor:pointer;opacity:1;padding:calc(var(--wp--custom--button--small--spacing--padding--top) + var(--wp--custom--button--border--width)) calc(var(--wp--custom--button--small--spacing--padding--left) + var(--wp--custom--button--border--width)) calc(var(--wp--custom--button--small--spacing--padding--bottom) + var(--wp--custom--button--border--width)) calc(var(--wp--custom--button--small--spacing--padding--right) + var(--wp--custom--button--border--width));vertical-align:middle}.button.button-large{padding:calc(var(--wp--custom--button--spacing--padding--top) + var(--wp--custom--button--border--width)) calc(var(--wp--custom--button--spacing--padding--left) + var(--wp--custom--button--border--width)) calc(var(--wp--custom--button--spacing--padding--bottom) + var(--wp--custom--button--border--width)) calc(var(--wp--custom--button--spacing--padding--right) + var(--wp--custom--button--border--width))}input+button.button,select+button.button{margin-top:-3px}.button.disabled{cursor:not-allowed;opacity:.6}.wp-block-post-content a.button{text-decoration:none}.wp-block-button__link{width:auto}pre{background-color:#f7f7f7;border:1px solid var(--wp--preset--color--light-grey-1);overflow:scroll;padding:20px}code,pre{border-radius:2px}code{background:var(--wp--preset--color--light-grey-2);display:inline-block;line-height:var(--wp--custom--body--extra-small--typography--line-height);max-width:100%;padding-inline-end:3px;padding-inline-start:3px}dialog{border:0;box-shadow:-6px 6px 6px #0003;min-height:50%;min-width:30%}@media (min-width:1280px){dialog{max-width:55%}}dialog::backdrop{background:#000;opacity:.5}dialog .close{color:inherit;cursor:pointer;position:absolute;left:1em;text-decoration:none!important;top:1em}.plugin-card{display:flex;flex-direction:column;height:100%;justify-content:space-between}.plugin-card .entry{display:inline-block;vertical-align:top}.plugin-card .entry-title{display:block;display:-webkit-box;font-size:var(--wp--preset--font-size--heading-5);font-weight:500;line-height:1.3;margin-bottom:2px!important;max-height:2.6em;overflow:hidden;-webkit-line-clamp:2;-webkit-box-orient:vertical}.plugin-card .entry-title a{display:block;text-decoration:none}.plugin-card .entry-title a:focus{box-shadow:none}.plugin-card .entry-excerpt{clear:both;font-size:var(--wp--preset--font-size--small)}.plugin-card .entry-excerpt p{margin:0}.plugin-card footer{font-size:var(--wp--preset--font-size--small);margin-top:var(--wp--style--block-gap)}.plugin-card footer span{color:var(--wp--preset--color--charcoal-4);display:inline-block;line-height:var(--wp--preset--font-size--normal);overflow:hidden}.plugin-card footer span.plugin-author{width:100%}.plugin-card footer span.plugin-author span{color:var(--wp--preset--color--charcoal-1)}.plugin-card footer span.plugin-author path{fill:var(--wp--preset--color--charcoal-1)}.plugin-card footer span svg{height:24px;vertical-align:bottom;width:24px}.plugin-card footer span svg path{fill:var(--wp--preset--color--charcoal-4)}.plugin-card footer span.active-installs{min-width:48%}.plugin-cards{cursor:pointer}.plugin-cards .is-style-cards-grid li:hover{background-color:#fff!important;border:1px solid var(--wp--preset--color--charcoal-1)!important}.plugin-cards .is-style-cards-grid li:focus-within{border-color:#0000;border-radius:2px;box-shadow:0 0 0 1.5px var(--wp--custom--link--color--text)}@media screen and (max-width:737px){.plugin-cards .is-style-cards-grid{grid-template-columns:100%}}.entry-thumbnail{display:none;margin-bottom:var(--wp--style--block-gap);margin-left:var(--wp--style--block-gap);max-width:80px}.entry-thumbnail .plugin-icon{background-size:cover;border-radius:var(--wp--custom--button--border--radius);display:block;height:80px;width:80px}@media screen and (min-width:21em){.entry-thumbnail{display:inline-block;float:right;vertical-align:top}}.single .entry-thumbnail{display:none;float:right;height:96px;margin-bottom:0;max-width:96px}@media screen and (min-width:26em){.single .entry-thumbnail{display:block}}.single .entry-thumbnail .plugin-icon{background-size:contain!important;height:96px!important;width:96px!important}.plugin-rating{line-height:1;margin:0 0 8px 10px}.plugin-rating .wporg-ratings{display:inline-block;margin-left:5px}.plugin-rating .rating-count{color:var(--wp--preset--color--charcoal-4);font-size:var(--wp--preset--font-size--extra-small);vertical-align:text-bottom}.plugin-rating .rating-count a{color:inherit;cursor:hand;text-decoration:none}[class*=dashicons-star-]{color:var(--wp--preset--color--pomegrade-1)}.rtl .dashicons-star-half{transform:rotateY(-180deg)}#main .plugin-section{margin:0 auto var(--wp--preset--spacing--60)}#main .plugin-section:last-of-type{margin-bottom:0}#main .plugin-section .section-header{align-items:center;column-gap:10px;display:flex;justify-content:space-between;margin-bottom:var(--wp--style--block-gap)}#main .plugin-section .section-header>h2{margin-bottom:0}#main .plugin-section .section-link{align-self:center;flex:0 0 auto;text-decoration:underline}.pagination .nav-links{margin-top:var(--wp--style--block-gap);padding-top:var(--wp--style--block-gap);text-align:center}.pagination .nav-links a{text-decoration:none}.pagination .nav-links .page-numbers{cursor:pointer;display:inline-block;min-width:2em;padding:8px;text-align:center}.pagination .nav-links .page-numbers.dots,.pagination .nav-links .page-numbers.next,.pagination .nav-links .page-numbers.prev{background:none;font-size:.9em;width:auto}.pagination .nav-links .page-numbers.dots{cursor:inherit}@media screen and (max-width:737px){.pagination .nav-links .page-numbers.next,.pagination .nav-links .page-numbers.prev{font-size:0;min-width:auto;padding:0}.pagination .nav-links .page-numbers.next:after,.pagination .nav-links .page-numbers.prev:before{display:inline-block;font-size:medium;line-height:1.5;min-width:2em;padding:8px}.pagination .nav-links .page-numbers.prev:before{content:"‹"}.pagination .nav-links .page-numbers.next:after{content:"›"}}.pagination .nav-links span.page-numbers{font-weight:700}.pagination .nav-links span.page-numbers.current{text-decoration:underline}@keyframes favme-anime{0%{font-size:var(--wp--preset--font-size--large);opacity:1;-webkit-text-stroke-color:#0000}25%{color:#fff;font-size:var(--wp--preset--font-size--small);opacity:.6;-webkit-text-stroke-width:1px;-webkit-text-stroke-color:#dc3232}75%{color:#fff;font-size:var(--wp--preset--font-size--large);opacity:.6;-webkit-text-stroke-width:1px;-webkit-text-stroke-color:#dc3232}to{font-size:var(--wp--preset--font-size--normal);opacity:1;-webkit-text-stroke-color:#0000}}.plugin-favorite{height:calc(var(--wp--custom--button--spacing--padding--top)*2 + var(--wp--preset--font-size--normal)*2);text-align:center;vertical-align:top;width:36px}.plugin-favorite .plugin-favorite-heart{align-items:center;background:none;border:0;border-radius:0;box-shadow:none;color:#cbcdce;cursor:pointer;display:flex;font-size:var(--wp--preset--font-size--large);height:100%;justify-content:center;line-height:1;margin:0;outline:none;padding:0;text-decoration:none}.plugin-favorite .plugin-favorite-heart.favorited{color:#dc3232}.plugin-favorite .plugin-favorite-heart:focus,.plugin-favorite .plugin-favorite-heart:hover{color:var(----wp--preset--color--charcoal-2);text-decoration:none}.plugin-favorite .plugin-favorite-heart:after{content:"\f487";font-family:dashicons;vertical-align:top}.plugin-banner img{aspect-ratio:3.089;border-radius:var(--wp--custom--button--border--radius);display:block;margin:0 auto var(--wp--preset--spacing--30);width:100%}.plugin-releases{list-style-type:none;padding:0}.plugin-releases-item{border:1px solid var(--wp--preset--color--light-grey-1);border-radius:4px;margin-bottom:var(--wp--preset--spacing--30);padding:var(--wp--style--block-gap)}.plugin-releases-item-header{display:flex;justify-content:space-between}.plugin-releases-item-header h3{margin:0!important}@keyframes hideAnimation{to{visibility:hidden}}.categorization .help{color:var(--wp--preset--color--charcoal-4);display:inline-block;font-size:.8rem;margin-top:0}.categorization label{display:block;font-weight:700}.categorization input{width:100%}.categorization .success-msg{background:#eff7ed;border:solid #64b450;border-width:0 5px 0 0;font-size:.8rem;margin-right:1rem;opacity:0;overflow:auto;padding:.1rem .6rem .2rem;position:relative;transition:visibility 0s,opacity .5s linear;-webkit-user-select:none;user-select:none;visibility:hidden}.categorization .success-msg.saved{animation:hideAnimation 0s ease-in 5s;animation-fill-mode:forwards;opacity:1;visibility:visible}.plugin-changelog code{font-size:var(--wp--preset--font-size--small)}.plugin-developers .contributors-list li{align-items:center;display:flex;padding-bottom:var(--wp--style--block-gap)}@media screen and (min-width:500px){.plugin-developers .contributors-list{display:flex;flex-wrap:wrap}.plugin-developers .contributors-list li{padding-bottom:unset;width:50%}}.plugin-faq dl{border-bottom:1px solid var(--wp--preset--color--light-grey-1)}.plugin-faq dt{border-top:1px solid var(--wp--preset--color--light-grey-1);cursor:pointer;padding:1rem 0}.plugin-faq dt:before{content:"\f347";float:left;font-family:dashicons;margin:0 1rem}.plugin-faq dt.open:before{content:"\f343"}.plugin-faq dt .button-link{display:inherit;text-align:inherit}.plugin-faq dt .button-link.no-focus{box-shadow:none;outline:none}.plugin-faq dt h3{color:var(--wp--custom--link--color--text);display:inline;font-size:var(--wp--preset--font-size--normal);font-weight:400;margin-bottom:0;margin-top:0!important;text-decoration:underline}.plugin-faq dt h3 button{all:inherit;max-width:calc(100% - 60px)}.plugin-faq dt h3 button:focus,.plugin-faq dt h3 button:hover{text-decoration:underline}.plugin-faq dd{display:none;margin:0 0 1rem}.no-js .plugin-faq dd{display:block}.plugin-faq dd p{margin:0}.plugin-faq dd p+p{margin-top:1rem}.image-gallery{-webkit-user-select:none;user-select:none}.image-gallery-content{position:relative}.image-gallery-content .image-gallery-left-nav,.image-gallery-content .image-gallery-right-nav{border-color:var(--wp--preset--color--light-grey-1);display:none;font-size:48px;height:100%;position:absolute;top:0;transition:background .1s ease,border .1s ease;z-index:4}@media (max-width:768px){.image-gallery-content .image-gallery-left-nav,.image-gallery-content .image-gallery-right-nav{font-size:3.4em}}@media (min-width:768px){.image-gallery-content .image-gallery-left-nav:hover,.image-gallery-content .image-gallery-right-nav:hover{background:#fff;border:1px solid var(--wp--preset--color--light-grey-1);opacity:.8}}.image-gallery-content .image-gallery-left-nav:before,.image-gallery-content .image-gallery-right-nav:before{font-family:dashicons;position:relative}.image-gallery-content .image-gallery-left-nav{right:0}.image-gallery-content .image-gallery-left-nav:before{content:"\f345"}.image-gallery-content .image-gallery-left-nav:hover{margin-right:-1px}.image-gallery-content .image-gallery-right-nav{left:0}.image-gallery-content .image-gallery-right-nav:before{content:"\f341"}.image-gallery-content .image-gallery-right-nav:hover{margin-left:-1px}.image-gallery-content:hover .image-gallery-left-nav,.image-gallery-content:hover .image-gallery-right-nav{display:block}.image-gallery-slides{border:1px solid #eee;line-height:0;overflow:hidden;position:relative;white-space:nowrap}.image-gallery-slide{right:0;position:absolute;top:0;width:100%}.image-gallery-slide.center{position:relative}.image-gallery-slide .image-gallery-image{margin:0}.image-gallery-slide img{display:block;margin:0 auto}.image-gallery-slide .image-gallery-description{background:var(--wp--preset--color--light-grey-2);color:var(--wp--preset--color--charcoal-1);font-size:var(--wp--preset--font-size--small);line-height:1.5;padding:10px 20px;white-space:normal}@media (max-width:768px){.image-gallery-slide .image-gallery-description{padding:8px 15px}}.image-gallery-thumbnails{background:#fff;margin-top:5px}.image-gallery-thumbnails .image-gallery-thumbnails-container{cursor:pointer;text-align:center;white-space:nowrap}.image-gallery-thumbnail{border:1px solid #eee;display:table-cell;margin-left:5px;max-height:100px;overflow:hidden}.image-gallery-thumbnail .image-gallery-image{margin:0}.image-gallery-thumbnail img{vertical-align:middle;width:100px}@media (max-width:768px){.image-gallery-thumbnail img{width:75px}}.image-gallery-thumbnail:hover{box-shadow:0 1px 8px #0000004d}.image-gallery-thumbnail.active{border:1px solid #337ab7}.image-gallery-thumbnail-label{color:#222;font-size:1em}@media (max-width:768px){.image-gallery-thumbnail-label{font-size:.8em}}.image-gallery-index{background:#0006;bottom:0;color:#fff;line-height:1;padding:10px 20px;position:absolute;left:0;z-index:4}.plugin-reviews{list-style-type:none;margin:0;padding:0}.plugin-reviews .plugin-review{border-bottom:1px solid var(--wp--preset--color--light-grey-1);margin:2rem 0 1rem;padding-bottom:1rem}.plugin-reviews .plugin-review a{text-decoration:none}.plugin-reviews .plugin-review:first-child{margin-top:0}.plugin-reviews .plugin-review .header-top{display:flex}.plugin-reviews .plugin-review .header-top .wporg-ratings{flex-shrink:0}.plugin-reviews .plugin-review .header-bottom{display:flex;margin-top:4px}.plugin-reviews .review-avatar{display:none}.plugin-reviews .review,.plugin-reviews .review-author,.plugin-reviews .wporg-ratings{display:inline-block;vertical-align:top}.plugin-reviews .review-header{margin:0 0 .5rem}.plugin-reviews .review-title{font-size:var(--wp--preset--font-size--normal);font-weight:500;margin:2px 12px 0 0!important;text-transform:inherit}.plugin-reviews .review-author,.plugin-reviews .review-date,.plugin-reviews .review-replies{font-size:var(--wp--preset--font-size--extra-small);line-height:1.25}.plugin-reviews .review-date,.plugin-reviews .review-replies{color:var(--wp--preset--color--charcoal-4);font-size:var(--wp--preset--font-size--extra-small);margin-right:12px}.plugin-reviews .review-replies:before{content:"•";margin-left:12px}.plugin-reviews .review-content{margin:1em 0}@media screen and (min-width:737px){.plugin-reviews .review-avatar{display:inline-block;vertical-align:top}.plugin-reviews .review-avatar .avatar{margin-left:1rem}.plugin-reviews .review{width:calc(100% - 60px - 1rem)}.plugin-reviews .review-header{margin:0}.plugin-reviews .review-author,.plugin-reviews .review-date,.plugin-reviews .review-replies{line-height:1}}.plugin-reviews .reviews-link{display:inline-block;font-size:var(--wp--preset--font-size--small);text-decoration:none}.plugin-reviews .reviews-link:after{content:"\f341";float:left;font-family:dashicons;padding-right:5px;position:relative;top:1px;vertical-align:text-top}.plugin-screenshots{list-style-type:none;margin:0;padding:0}.plugin-screenshots .image-gallery-content{display:table;width:100%}.plugin-screenshots .image-gallery-slides{display:table-cell;max-height:600px}.plugin-screenshots .image-gallery-image img{max-height:550px;max-width:100%}.plugin-screenshots .image-gallery-thumbnail{vertical-align:top}.plugin-screenshots .image-gallery-thumbnail img{max-height:100px}.plugin-screenshots .image-gallery-thumbnails{overflow:hidden}.download-history-stats td{text-align:left}.previous-versions{max-width:60%}@media screen and (min-width:737px){.previous-versions{height:32px;vertical-align:middle}}hr{margin:2.5rem auto}.section h1:nth-child(2),.section h2:nth-child(2),.section h3:nth-child(2),.section h4:nth-child(2),.section h5:nth-child(2),.section h6:nth-child(2){margin-top:0}.section-heading{font-family:var(--wp--preset--font-family--inter)!important;font-size:var(--wp--preset--font-size--heading-5)!important;font-style:normal;font-weight:600;line-height:var(--wp--custom--heading--level-5--typography--line-height)}.section-intro{color:var(--wp--preset--color--charcoal-4);font-size:var(--wp--preset--font-size--small);margin-bottom:var(--wp--preset--spacing--20);margin-top:var(--wp--preset--spacing--10)}.type-plugin .plugin-notice{margin-top:0}.type-plugin .plugin-header{border-bottom:0;padding-top:var(--wp--preset--spacing--40)}.type-plugin .plugin-header:after,.type-plugin .plugin-header:before{content:"";display:table;table-layout:fixed}.type-plugin .plugin-header:after{clear:both}.type-plugin .plugin-header .entry-heading-container{display:flex;flex-direction:column;justify-content:space-between}@media screen and (max-width:599px){.type-plugin .plugin-header .entry-heading-container{--wp--custom--button--spacing--padding--top:12px;--wp--custom--button--spacing--padding--bottom:12px;--wp--custom--button--spacing--padding--left:16px;--wp--custom--button--spacing--padding--right:16px}}@media screen and (min-width:700px){.type-plugin .plugin-header .entry-heading-container{flex-direction:row}}.type-plugin .plugin-header .entry-heading-container>:first-child{align-items:center;display:flex;flex:1}.type-plugin .plugin-header .plugin-actions{align-items:center;display:flex;gap:16px;margin-top:var(--wp--style--block-gap)}@media screen and (min-width:700px){.type-plugin .plugin-header .plugin-actions{margin-top:0;margin-inline-start:1rem}}.type-plugin .plugin-header .plugin-actions>.button,.type-plugin .plugin-header .plugin-actions>div{display:inline-block;text-align:center}@media screen and (max-width:34em){.type-plugin .plugin-header .plugin-actions>.button.download-button{display:none}}.type-plugin .plugin-header .plugin-title{clear:none;font-size:var(--wp--preset--font-size--heading-3);font-weight:400;line-height:var(--wp--custom--heading--level-3--typography--line-height);margin:0}.type-plugin .plugin-header .plugin-title a{color:inherit;text-decoration:none}.type-plugin .plugin-header .plugin-title a:hover{text-decoration:underline}.type-plugin .plugin-header .byline{color:var(--wp--preset--color--charcoal-4);display:block;margin-top:4px}.type-plugin .plugin-banner+.plugin-header{padding-top:0}.type-plugin .plugin-banner+.plugin-header>.notice:first-of-type{margin-top:0}.type-plugin .tabs{border-bottom:1px solid var(--wp--preset--color--light-grey-1);list-style:none;margin:0}.type-plugin .tabs li{border:1px solid #0000;display:inline-block;font-size:.9rem;margin-bottom:-1px;transition:background .2s ease}.type-plugin .tabs li a{background:#fff;border:0;color:var(--wp--preset--color--charcoal-1);display:block;font-size:var(--wp--preset--font-size--normal);padding:.64rem 1.25rem;text-decoration:none}.type-plugin .tabs li a.active,.type-plugin .tabs li a:hover{background:var(--wp--preset--color--light-grey-2)!important}.type-plugin .tabs li.active,.type-plugin .tabs li:hover{border:1px solid var(--wp--preset--color--light-grey-1)}@media screen and (max-width:38em){.type-plugin .tabs{border-top:1px solid var(--wp--preset--color--light-grey-1)}.type-plugin .tabs li{display:block;margin-bottom:1px}.type-plugin .tabs li,.type-plugin .tabs li.active,.type-plugin .tabs li:hover{border:none;border-bottom:1px solid var(--wp--preset--color--light-grey-1)}}@media screen and (min-width:737px){.type-plugin .entry-content{float:right;padding:0;width:65%}}.type-plugin .entry-content>div,.type-plugin .entry-content>div~button{border:0;display:none}.type-plugin .entry-content ol>li>p,.type-plugin .entry-content ul>li>p{margin:0}.type-plugin .entry-content #admin{display:block!important}.type-plugin .plugin-blocks-list{list-style:none;margin-right:0;padding-right:0}.type-plugin .plugin-blocks-list .plugin-blocks-list-item{display:grid;grid-template-columns:auto 1fr;margin-bottom:var(--wp--style--block-gap)}.type-plugin .plugin-blocks-list .block-icon{border:1px solid var(--wp--preset--color--light-grey-1);border-radius:2px;display:inline-block;height:3.5rem;line-height:16px;margin-left:var(--wp--style--block-gap);padding:var(--wp--style--block-gap);width:3.5rem}.type-plugin .plugin-blocks-list .block-icon.dashicons{color:inherit}.type-plugin .plugin-blocks-list .block-icon.dashicons:before{margin-right:-3px}.type-plugin .plugin-blocks-list .block-icon svg{height:16px;width:16px;fill:currentColor;margin-right:-1px}.type-plugin .plugin-blocks-list .block-title{align-self:center;font-weight:700}.type-plugin .plugin-blocks-list .has-description .block-icon{grid-row:1/span 2}.type-plugin .plugin-blocks-list .has-description .block-title{margin-bottom:.4em}.type-plugin span#description,.type-plugin span#developers,.type-plugin span#installation,.type-plugin span#releases,.type-plugin span#reviews{position:fixed}.type-plugin span#advanced.displayed~#section-links .tabs li#tablink-advanced,.type-plugin span#developers:target~#section-links .tabs li#tablink-developers,.type-plugin span#installation:target~#section-links .tabs li#tablink-installation,.type-plugin span#releases:target~#section-links .tabs li#tablink-releases,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~span#advanced:not(.displayed)~#section-links .tabs li#tablink-description,.type-plugin span#reviews:target~#section-links .tabs li#tablink-reviews{background:#fff;border:1px solid var(--wp--preset--color--light-grey-1);border-bottom:0;padding-bottom:1px}@media screen and (max-width:38em){.type-plugin span#advanced.displayed~#section-links .tabs li#tablink-advanced.active,.type-plugin span#advanced.displayed~#section-links .tabs li#tablink-advanced:hover,.type-plugin span#developers:target~#section-links .tabs li#tablink-developers.active,.type-plugin span#developers:target~#section-links .tabs li#tablink-developers:hover,.type-plugin span#installation:target~#section-links .tabs li#tablink-installation.active,.type-plugin span#installation:target~#section-links .tabs li#tablink-installation:hover,.type-plugin span#releases:target~#section-links .tabs li#tablink-releases.active,.type-plugin span#releases:target~#section-links .tabs li#tablink-releases:hover,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~span#advanced:not(.displayed)~#section-links .tabs li#tablink-description.active,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~span#advanced:not(.displayed)~#section-links .tabs li#tablink-description:hover,.type-plugin span#reviews:target~#section-links .tabs li#tablink-reviews.active,.type-plugin span#reviews:target~#section-links .tabs li#tablink-reviews:hover{padding-bottom:1px!important}}.type-plugin span#section-links{display:flex;flex-flow:row wrap;margin-top:var(--wp--preset--spacing--30)}.type-plugin span#section-links .tabs{flex:1 1 auto;padding-right:0}@media screen and (max-width:38em){.type-plugin span#section-links .tabs{border:1px solid var(--wp--preset--color--light-grey-1)!important}.type-plugin span#section-links .tabs li{border:none!important}.type-plugin span#section-links{display:block}}.type-plugin #link-support{align-self:flex-end;border-bottom:1px solid var(--wp--preset--color--light-grey-1);flex:0 0 auto;font-size:.9rem}.type-plugin #link-support a{display:inline-block;font-size:var(--wp--preset--font-size--normal);padding:.64rem 1.25rem .64rem 0}@media screen and (max-width:38em){.type-plugin #link-support{border-bottom:0;display:block;width:100%}.type-plugin #link-support a{padding-left:1.25rem}}.type-plugin span#developers:target~.entry-content #tab-changelog,.type-plugin span#developers:target~.entry-content #tab-developers,.type-plugin span#developers:target~.entry-content #tab-developers .plugin-development,.type-plugin span#developers:target~.entry-content #tab-developers~button,.type-plugin span#installation:target~.entry-content #tab-installation,.type-plugin span#releases:target~.entry-content #tab-releases,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~.entry-content #blocks,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~.entry-content #faq,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~.entry-content #screenshots,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~.entry-content #tab-description,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~.entry-content #tab-developers,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~.entry-content #tab-developers~button,.type-plugin span#reviews:target~.entry-content #tab-reviews{display:block}.type-plugin span#developers:target~.entry-content #tab-developers .plugin-contributors,.type-plugin span#installation:target~.entry-meta .plugin-contributors,.type-plugin span#releases:target~.entry-meta,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~.entry-content #tab-developers .plugin-development,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~.entry-meta .plugin-contributors,.type-plugin span#reviews:target~.entry-meta .plugin-contributors,.type-plugin span#reviews:target~.entry-meta .plugin-donate,.type-plugin span#reviews:target~.entry-meta .plugin-meta,.type-plugin span#reviews:target~.entry-meta .plugin-support{display:none}.type-plugin span#releases:target~.entry-content{width:100%}@media screen and (min-width:737px){.type-plugin .entry-content,.type-plugin .entry-meta{padding-right:0;padding-left:0}.type-plugin .entry-meta{float:left;width:30%}}.type-plugin .plugin-danger-zone h4{margin-top:var(--wp--preset--spacing--60)}.plugin-releases-listing{border-collapse:collapse;width:100%}.plugin-releases-listing tbody td:nth-child(4) div{font-size:14px}.plugin-releases-listing-actions{display:flex;flex-direction:column;gap:8px}@media screen and (min-width:34em){.plugin-releases-listing-actions{flex-direction:row}}.plugin-adopt-me{background:#e6f4fa;margin-top:36px;padding:12px}.plugin-adopt-me .widget-title{margin-top:0}.plugin-adopt-me p{margin-bottom:0}.widget.plugin-categorization{margin-top:var(--wp--style--block-gap)}.widget.plugin-categorization .widget-head h2{font-size:var(--wp--preset--font-size--heading-4);margin-bottom:.2rem;margin-top:0}.widget.plugin-categorization .widget-head a{font-size:var(--wp--preset--font-size--small)}.widget.plugin-categorization .widget-head a[href=""]{display:none}.widget.plugin-categorization p{font-size:var(--wp--preset--font-size--small);margin-top:.5rem}.widget.plugin-categorization~.plugin-meta li:first-child{border-top:1px solid var(--wp--preset--color--light-grey-1)}.committer-list,.support-rep-list{list-style:none;margin:0;padding:0}.committer-list li,.support-rep-list li{padding-bottom:.5rem}.committer-list li .remove,.support-rep-list li .remove{color:red;visibility:hidden}.committer-list li:hover .remove,.support-rep-list li:hover .remove{visibility:visible}.committer-list .avatar,.support-rep-list .avatar{float:right;margin-left:10px}.committer-list .spinner,.support-rep-list .spinner{position:relative}.committer-list .spinner:after,.support-rep-list .spinner:after{background:url(/wp-admin/images/spinner.gif) no-repeat 50%;background-size:20px 20px;content:"";display:block;height:20px;margin:-10px 0 0 -10px;position:absolute;left:-50%;top:50%;transform:translateZ(0);width:20px}@media (min-resolution:120dpi),print{.committer-list .spinner:after,.support-rep-list .spinner:after{background-image:url(/wp-admin/images/spinner-2x.gif)}}.committer-list .new,.support-rep-list .new{margin-top:var(--wp--style--block-gap)}.plugin-contributors.read-more{border-bottom:1px solid var(--wp--preset--color--light-grey-1);max-height:200px;overflow:hidden;padding-bottom:1px}.plugin-contributors.read-more.toggled{max-height:none}.no-js .plugin-contributors.read-more{max-height:none;overflow:auto}.contributors-list{list-style-type:none;margin:0;padding:0}.contributors-list li{align-items:center;display:flex;margin-bottom:1rem}.contributors-list .avatar{float:right;margin-left:10px}.plugin-meta{font-size:var(--wp--preset--font-size--small);margin-top:var(--wp--style--block-gap)}.plugin-meta ul{list-style-type:none;margin:0;padding:0}.plugin-meta li{border-top:1px solid var(--wp--preset--color--light-grey-1);display:inline-block;padding:.5rem 0;position:relative;width:100%}.plugin-meta li strong{float:left;font-weight:500}.plugin-meta li .plugin-admin{font-size:var(--wp--preset--font-size--normal);font-weight:400}.plugin-meta li:first-child{border-top:0}.plugin-meta .languages,.plugin-meta .tags{float:left;text-align:left}.plugin-meta .tags{width:60%}.plugin-meta .languages button{font-size:var(--wp--preset--font-size--small);outline:revert}.plugin-meta .languages .popover{margin-top:8px}.plugin-meta .languages .popover-trigger{color:var(--wp--custom--link--color--text);text-decoration:underline}.plugin-meta .languages .popover-trigger:hover{text-decoration:underline}.plugin-meta [rel=tag]{background:var(--wp--preset--color--blueberry-4);border-radius:2px;color:var(--wp--preset--color--charcoal-1);display:inline-block;font-size:var(--wp--preset--font-size--extra-small);margin:2px;max-width:95%;overflow:hidden;padding:3px 6px;position:relative;text-decoration:none;text-overflow:ellipsis;white-space:nowrap;width:auto}.plugin-meta [rel=tag]:hover{text-decoration:underline}.popover{background-color:#fff;border:1px solid var(--wp--preset--color--light-grey-1);border-radius:2px;box-shadow:0 2px 10px #0000001a;display:none;right:0;margin-top:10px;max-width:300px;padding:1em 1em 2em;position:absolute;width:100%;z-index:100}.popover.is-top-right{right:auto;left:0}.popover.is-visible{display:block}.popover .popover-close{bottom:.5em;color:var(--wp--custom--link--color--text);font-size:small;position:absolute;left:.6em}.popover .popover-close:active,.popover .popover-close:focus,.popover .popover-close:hover{text-decoration:underline}.popover .popover-arrow{border:10px solid #0000;border-bottom:10px solid #ccc;border-top:none;height:0;position:absolute;left:20px;top:-10px;width:0;z-index:-1}.popover .popover-arrow:after{border:10px solid #0000;border-bottom:10px solid #fff;border-top:none;content:"";right:-10px;position:absolute;top:2px}.popover .popover-inner{text-align:right}.popover .popover-inner p:first-child{margin-top:0}.popover .popover-inner p:last-child{margin-bottom:0}.plugin-support .counter-container{margin-bottom:1rem;position:relative}.plugin-support .counter-back,.plugin-support .counter-bar{display:inline-block;height:30px;vertical-align:middle}.plugin-support .counter-back{background-color:var(--wp--preset--color--light-grey-2);width:100%}.plugin-support .counter-bar{background-color:var(--wp--preset--color--acid-green-2);display:block}.plugin-support .counter-count{font-size:var(--wp--preset--font-size--extra-small);right:8px;position:absolute;top:8px;width:100%;width:calc(100% - 8px)}@media screen and (min-width:737px){.plugin-support .counter-count{top:5px}}.home .widget,.widget-area.home .widget{display:inline-block;font-size:var(--wp--preset--font-size--small);margin:0;margin:var(--wp--style--block-gap);vertical-align:top;width:auto}@media screen and (min-width:737px){.home .widget,.widget-area.home .widget{margin:0;width:30%}.home .widget:first-child,.widget-area.home .widget:first-child{margin-left:5%}.home .widget:last-child,.widget-area.home .widget:last-child{margin-right:5%}}.home .widget select,.widget-area.home .widget select{max-width:100%}.entry-meta .widget-title{font-size:var(--wp--preset--font-size--heading-4)}body.single.single-plugin .entry-meta{font-size:var(--wp--preset--font-size--normal)}.widget-area{margin:0 auto;padding:var(--wp--preset--spacing--40) 0}.widget-area .widget-title{font-size:var(--wp--preset--font-size--heading-1);font-weight:var(--wp--custom--heading--typography--font-weight);margin-top:var(--wp--preset--spacing--50)}.widget-area .textwidget{text-wrap:pretty} \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/css/style.css b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/css/style.css index e64b07ef20..aa1a3e38af 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/css/style.css +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/css/style.css @@ -1 +1 @@ -@charset "UTF-8";.avatar{border-radius:50%;vertical-align:middle}.wp-block-wporg-language-suggest>p{margin:0}.block-validator>details summary{padding:var(--wp--style--block-gap) 0}.block-validator .block-validator__plugin-form label{display:block;margin-bottom:.8em}.block-validator .block-validator__plugin-input-container{display:flex;max-width:34rem}.block-validator .block-validator__plugin-input{flex:1}.block-validator .block-validator__plugin-submit{flex:0;margin-left:4px}@media (max-width:36rem){.block-validator .block-validator__plugin-submit{width:100%}.block-validator .block-validator__plugin-input-container{display:block}.block-validator .block-validator__plugin-input{width:100%}.block-validator .block-validator__plugin-submit{margin-left:0;margin-top:var(--wp--style--block-gap)}}.block-validator .notice details,.block-validator .notice p{font-size:var(--wp--preset--font-size--normal);margin:var(--wp--style--block-gap) 0}.block-validator .notice details p{font-size:var(--wp--preset--font-size--small);margin-left:1rem}.block-validator .notice summary{display:list-item}.block-validator figure{border:1px solid #aaa;display:inline-block;padding:1em}.block-validator .test-screenshot{text-align:center}.block-validator .plugin-upload-form-controls{align-items:center;display:flex;gap:4px}.block-validator .plugin-upload-form-controls>label{border:1px solid var(--wp--custom--form--border--color);border-radius:var(--wp--custom--form--border--radius);cursor:pointer;min-width:200px;padding:4px 8px}.notice{background:#fff;border-left:4px solid #fff;box-shadow:0 1px 1px 0 #0000001a;font-size:var(--wp--preset--font-size--small);margin:var(--wp--style--block-gap) 0;padding:1px 12px}.notice p,.notice ul{margin:.5em 0;padding:2px}.notice pre{white-space:pre-wrap}.notice ul{list-style:none;margin:.5em}.notice.notice-alt{box-shadow:none}.notice.notice-large{padding:10px 20px}.notice.notice-success{border-left-color:#46b450}.notice.notice-success.notice-alt{background-color:#ecf7ed}.notice.notice-warning{border-left-color:#ffb900}.notice.notice-warning.notice-alt{background-color:#fff8e5}.notice.notice-error{border-left-color:#dc3232}.notice.notice-error.notice-alt{background-color:#fbeaea}.notice.notice-info{border-left-color:#00a0d2}.notice.notice-info.notice-alt{background-color:#e5f5fa}.notice.hidden{display:none}.plugin-upload-form.hidden{display:none}.plugin-upload-form fieldset{border:none;margin:0;padding:0}.plugin-upload-form legend{margin:1rem 0}.plugin-upload-form .category-checklist{list-style-type:none;margin:0 0 2rem}.plugin-upload-form .category-checklist li{float:left;padding:.5rem 0;width:50%}@media screen and (min-width:48em){.plugin-upload-form .category-checklist li{padding:0}.plugin-upload-form .category-checklist label{font-size:var(--wp--preset--font-size--small)}.plugin-upload-form label.button{line-height:1.8}}.plugin-upload-form .plugin-file{height:.1px;opacity:0;overflow:hidden;position:absolute;width:.1px;z-index:-1}.plugin-queue-message code{font-size:1em}.plugin-queue-message dialog.slug-change input[type=text]{font-family:monospace;font-size:1.2em;width:20em}:where(main) a:where(:not(.wp-element-button,.wp-block-wporg-link-wrapper)):focus,:where(main) button:where(:not([class*=wp-block-button])):focus{border-radius:2px;box-shadow:0 0 0 1.5px currentColor;outline:none}.wporg-filter-bar{--wporg--filter-bar--gap:20px;--wporg--filter-bar--color:#40464d;--wporg--filter-bar--active--background-color:var(--wp--custom--button--color--background);--wporg--filter-bar--focus--border-color:var(--wp--custom--button--focus--border--color);margin:var(--wp--style--block-gap) 0}.wporg-filter-bar .wporg-query-filter__toggle.is-active,.wporg-filter-bar .wporg-query-filter__toggle:active,.wporg-filter-bar .wporg-query-filter__toggle:focus{background-color:var(--wporg--filter-bar--active--background-color);color:var(--wp--custom--button--color--text)}.wporg-filter-bar .wporg-filter-bar__navigation{flex-grow:1;margin-bottom:var(--wporg--filter-bar--gap)}.wporg-filter-bar .wporg-filter-bar__navigation ul{display:inline-block;font-size:13px;line-height:1.538;list-style:none;margin:0;padding-left:0}.wporg-filter-bar .wporg-filter-bar__navigation ul li{display:inline-block}.wporg-filter-bar .wporg-filter-bar__navigation ul li+li{margin-left:8px}.wporg-filter-bar .wporg-filter-bar__navigation ul a{border-radius:2px;color:var(--wporg--filter-bar--color);display:block;padding:8px 12px;text-decoration:none}.wporg-filter-bar .wporg-filter-bar__navigation ul a:focus,.wporg-filter-bar .wporg-filter-bar__navigation ul a:hover{text-decoration:underline}.wporg-filter-bar .wporg-filter-bar__navigation ul a:focus-visible{box-shadow:none;outline:1.5px solid var(--wporg--filter-bar--focus--border-color);outline-offset:-.5px}.wporg-filter-bar .wporg-filter-bar__navigation ul a.is-active{background-color:var(--wporg--filter-bar--active--background-color);color:#fff}.wporg-filter-bar .wporg-filter-bar__navigation ul a.is-active:focus,.wporg-filter-bar .wporg-filter-bar__navigation ul a.is-active:hover{color:#fff}.wporg-filter-bar .wporg-filter-bar__navigation ul a.is-active:focus-visible{box-shadow:inset 0 0 0 1.5px #fff;outline:1.5px solid var(--wporg--filter-bar--focus--border-color);outline-offset:-.5px}@media screen and (min-width:737px){.wporg-filter-bar{align-items:center;display:flex;flex-wrap:wrap;gap:var(--wporg--filter-bar--gap);justify-content:space-between;width:100%}.wporg-filter-bar .wporg-filter-bar__navigation{margin-bottom:0}}.wp-block-search__inside-wrapper{background:var(--wp--preset--color--light-grey-2);border:none}.button-link{background:none;border:0;border-radius:0;box-shadow:none;cursor:pointer;margin:0;outline:none;padding:0}.button{background-color:var(--wp--custom--button--color--background);border:0;border-radius:var(--wp--custom--button--border--radius);color:var(--wp--custom--button--color--text);cursor:pointer;opacity:1;padding:calc(var(--wp--custom--button--small--spacing--padding--top) + var(--wp--custom--button--border--width)) calc(var(--wp--custom--button--small--spacing--padding--right) + var(--wp--custom--button--border--width)) calc(var(--wp--custom--button--small--spacing--padding--bottom) + var(--wp--custom--button--border--width)) calc(var(--wp--custom--button--small--spacing--padding--left) + var(--wp--custom--button--border--width));vertical-align:middle}.button.button-large{padding:calc(var(--wp--custom--button--spacing--padding--top) + var(--wp--custom--button--border--width)) calc(var(--wp--custom--button--spacing--padding--right) + var(--wp--custom--button--border--width)) calc(var(--wp--custom--button--spacing--padding--bottom) + var(--wp--custom--button--border--width)) calc(var(--wp--custom--button--spacing--padding--left) + var(--wp--custom--button--border--width))}input+button.button,select+button.button{margin-top:-3px}.button.disabled{cursor:not-allowed;opacity:.6}.wp-block-post-content a.button{text-decoration:none}.wp-block-button__link{width:auto}pre{background-color:#f7f7f7;border:1px solid var(--wp--preset--color--light-grey-1);overflow:scroll;padding:20px}code,pre{border-radius:2px}code{background:var(--wp--preset--color--light-grey-2);display:inline-block;line-height:var(--wp--custom--body--extra-small--typography--line-height);max-width:100%;padding-inline-end:3px;padding-inline-start:3px}dialog{border:0;box-shadow:6px 6px 6px #0003;min-height:50%;min-width:30%}@media (min-width:1280px){dialog{max-width:55%}}dialog::backdrop{background:#000;opacity:.5}dialog .close{color:inherit;cursor:pointer;position:absolute;right:1em;text-decoration:none!important;top:1em}.plugin-card{display:flex;flex-direction:column;height:100%;justify-content:space-between}.plugin-card .entry{display:inline-block;vertical-align:top}.plugin-card .entry-title{display:block;display:-webkit-box;font-size:var(--wp--preset--font-size--heading-5);font-weight:500;line-height:1.3;margin-bottom:2px!important;max-height:2.6em;overflow:hidden;-webkit-line-clamp:2;-webkit-box-orient:vertical}.plugin-card .entry-title a{display:block;text-decoration:none}.plugin-card .entry-title a:focus{box-shadow:none}.plugin-card .entry-excerpt{clear:both;font-size:var(--wp--preset--font-size--small)}.plugin-card .entry-excerpt p{margin:0}.plugin-card footer{font-size:var(--wp--preset--font-size--small);margin-top:var(--wp--style--block-gap)}.plugin-card footer span{color:var(--wp--preset--color--charcoal-4);display:inline-block;line-height:var(--wp--preset--font-size--normal);overflow:hidden}.plugin-card footer span.plugin-author{width:100%}.plugin-card footer span.plugin-author span{color:var(--wp--preset--color--charcoal-1)}.plugin-card footer span.plugin-author path{fill:var(--wp--preset--color--charcoal-1)}.plugin-card footer span svg{height:24px;vertical-align:bottom;width:24px}.plugin-card footer span svg path{fill:var(--wp--preset--color--charcoal-4)}.plugin-card footer span.active-installs{min-width:48%}.plugin-cards{cursor:pointer}.plugin-cards .is-style-cards-grid li:hover{background-color:#fff!important;border:1px solid var(--wp--preset--color--charcoal-1)!important}.plugin-cards .is-style-cards-grid li:focus-within{border-color:#0000;border-radius:2px;box-shadow:0 0 0 1.5px var(--wp--custom--link--color--text)}@media screen and (max-width:737px){.plugin-cards .is-style-cards-grid{grid-template-columns:100%}}.entry-thumbnail{display:none;margin-bottom:var(--wp--style--block-gap);margin-right:var(--wp--style--block-gap);max-width:80px}.entry-thumbnail .plugin-icon{background-size:cover;border-radius:var(--wp--custom--button--border--radius);display:block;height:80px;width:80px}@media screen and (min-width:21em){.entry-thumbnail{display:inline-block;float:left;vertical-align:top}}.single .entry-thumbnail{display:none;float:left;height:96px;margin-bottom:0;max-width:96px}@media screen and (min-width:26em){.single .entry-thumbnail{display:block}}.single .entry-thumbnail .plugin-icon{background-size:contain!important;height:96px!important;width:96px!important}.plugin-rating{line-height:1;margin:0 10px 8px 0}.plugin-rating .wporg-ratings{display:inline-block;margin-right:5px}.plugin-rating .rating-count{color:var(--wp--preset--color--charcoal-4);font-size:var(--wp--preset--font-size--extra-small);vertical-align:text-bottom}.plugin-rating .rating-count a{color:inherit;cursor:hand;text-decoration:none}[class*=dashicons-star-]{color:var(--wp--preset--color--pomegrade-1)}.rtl .dashicons-star-half{transform:rotateY(180deg)}#main .plugin-section{margin:0 auto var(--wp--preset--spacing--60)}#main .plugin-section:last-of-type{margin-bottom:0}#main .plugin-section .section-header{align-items:center;column-gap:10px;display:flex;justify-content:space-between;margin-bottom:var(--wp--style--block-gap)}#main .plugin-section .section-header>h2{margin-bottom:0}#main .plugin-section .section-link{align-self:center;flex:0 0 auto;text-decoration:underline}.pagination .nav-links{margin-top:var(--wp--style--block-gap);padding-top:var(--wp--style--block-gap);text-align:center}.pagination .nav-links a{text-decoration:none}.pagination .nav-links .page-numbers{cursor:pointer;display:inline-block;min-width:2em;padding:8px;text-align:center}.pagination .nav-links .page-numbers.dots,.pagination .nav-links .page-numbers.next,.pagination .nav-links .page-numbers.prev{background:none;font-size:.9em;width:auto}.pagination .nav-links .page-numbers.dots{cursor:inherit}@media screen and (max-width:737px){.pagination .nav-links .page-numbers.next,.pagination .nav-links .page-numbers.prev{font-size:0;min-width:auto;padding:0}.pagination .nav-links .page-numbers.next:after,.pagination .nav-links .page-numbers.prev:before{display:inline-block;font-size:medium;line-height:1.5;min-width:2em;padding:8px}.pagination .nav-links .page-numbers.prev:before{content:"‹"}.pagination .nav-links .page-numbers.next:after{content:"›"}}.pagination .nav-links span.page-numbers{font-weight:700}.pagination .nav-links span.page-numbers.current{text-decoration:underline}@keyframes favme-anime{0%{font-size:var(--wp--preset--font-size--large);opacity:1;-webkit-text-stroke-color:#0000}25%{color:#fff;font-size:var(--wp--preset--font-size--small);opacity:.6;-webkit-text-stroke-width:1px;-webkit-text-stroke-color:#dc3232}75%{color:#fff;font-size:var(--wp--preset--font-size--large);opacity:.6;-webkit-text-stroke-width:1px;-webkit-text-stroke-color:#dc3232}to{font-size:var(--wp--preset--font-size--normal);opacity:1;-webkit-text-stroke-color:#0000}}.plugin-favorite{height:calc(var(--wp--custom--button--spacing--padding--top)*2 + var(--wp--preset--font-size--normal)*2);text-align:center;vertical-align:top;width:36px}.plugin-favorite .plugin-favorite-heart{align-items:center;background:none;border:0;border-radius:0;box-shadow:none;color:#cbcdce;cursor:pointer;display:flex;font-size:var(--wp--preset--font-size--large);height:100%;justify-content:center;line-height:1;margin:0;outline:none;padding:0;text-decoration:none}.plugin-favorite .plugin-favorite-heart.favorited{color:#dc3232}.plugin-favorite .plugin-favorite-heart:focus,.plugin-favorite .plugin-favorite-heart:hover{color:var(----wp--preset--color--charcoal-2);text-decoration:none}.plugin-favorite .plugin-favorite-heart:after{content:"\f487";font-family:dashicons;vertical-align:top}.plugin-banner img{aspect-ratio:3.089;border-radius:var(--wp--custom--button--border--radius);display:block;margin:0 auto var(--wp--preset--spacing--30);width:100%}.plugin-releases{list-style-type:none;padding:0}.plugin-releases-item{border:1px solid var(--wp--preset--color--light-grey-1);border-radius:4px;margin-bottom:var(--wp--preset--spacing--30);padding:var(--wp--style--block-gap)}.plugin-releases-item-header{display:flex;justify-content:space-between}.plugin-releases-item-header h3{margin:0!important}@keyframes hideAnimation{to{visibility:hidden}}.categorization .help{color:var(--wp--preset--color--charcoal-4);display:inline-block;font-size:.8rem;margin-top:0}.categorization label{display:block;font-weight:700}.categorization input{width:100%}.categorization .success-msg{background:#eff7ed;border:solid #64b450;border-width:0 0 0 5px;font-size:.8rem;margin-left:1rem;opacity:0;overflow:auto;padding:.1rem .6rem .2rem;position:relative;transition:visibility 0s,opacity .5s linear;-webkit-user-select:none;user-select:none;visibility:hidden}.categorization .success-msg.saved{animation:hideAnimation 0s ease-in 5s;animation-fill-mode:forwards;opacity:1;visibility:visible}.plugin-changelog code{font-size:var(--wp--preset--font-size--small)}.plugin-developers .contributors-list li{align-items:center;display:flex;padding-bottom:var(--wp--style--block-gap)}@media screen and (min-width:500px){.plugin-developers .contributors-list{display:flex;flex-wrap:wrap}.plugin-developers .contributors-list li{padding-bottom:unset;width:50%}}.plugin-faq dl{border-bottom:1px solid var(--wp--preset--color--light-grey-1)}.plugin-faq dt{border-top:1px solid var(--wp--preset--color--light-grey-1);cursor:pointer;padding:1rem 0}.plugin-faq dt:before{content:"\f347";float:right;font-family:dashicons;margin:0 1rem}.plugin-faq dt.open:before{content:"\f343"}.plugin-faq dt .button-link{display:inherit;text-align:inherit}.plugin-faq dt .button-link.no-focus{box-shadow:none;outline:none}.plugin-faq dt h3{color:var(--wp--custom--link--color--text);display:inline;font-size:var(--wp--preset--font-size--normal);font-weight:400;margin-bottom:0;margin-top:0!important;text-decoration:underline}.plugin-faq dt h3 button{all:inherit;max-width:calc(100% - 60px)}.plugin-faq dt h3 button:focus,.plugin-faq dt h3 button:hover{text-decoration:underline}.plugin-faq dd{display:none;margin:0 0 1rem}.no-js .plugin-faq dd{display:block}.plugin-faq dd p{margin:0}.plugin-faq dd p+p{margin-top:1rem}.image-gallery{-webkit-user-select:none;user-select:none}.image-gallery-content{position:relative}.image-gallery-content .image-gallery-left-nav,.image-gallery-content .image-gallery-right-nav{border-color:var(--wp--preset--color--light-grey-1);display:none;font-size:48px;height:100%;position:absolute;top:0;transition:background .1s ease,border .1s ease;z-index:4}@media (max-width:768px){.image-gallery-content .image-gallery-left-nav,.image-gallery-content .image-gallery-right-nav{font-size:3.4em}}@media (min-width:768px){.image-gallery-content .image-gallery-left-nav:hover,.image-gallery-content .image-gallery-right-nav:hover{background:#fff;border:1px solid var(--wp--preset--color--light-grey-1);opacity:.8}}.image-gallery-content .image-gallery-left-nav:before,.image-gallery-content .image-gallery-right-nav:before{font-family:dashicons;position:relative}.image-gallery-content .image-gallery-left-nav{left:0}.image-gallery-content .image-gallery-left-nav:before{content:"\f341"}.image-gallery-content .image-gallery-left-nav:hover{margin-left:-1px}.image-gallery-content .image-gallery-right-nav{right:0}.image-gallery-content .image-gallery-right-nav:before{content:"\f345"}.image-gallery-content .image-gallery-right-nav:hover{margin-right:-1px}.image-gallery-content:hover .image-gallery-left-nav,.image-gallery-content:hover .image-gallery-right-nav{display:block}.image-gallery-slides{border:1px solid #eee;line-height:0;overflow:hidden;position:relative;white-space:nowrap}.image-gallery-slide{left:0;position:absolute;top:0;width:100%}.image-gallery-slide.center{position:relative}.image-gallery-slide .image-gallery-image{margin:0}.image-gallery-slide img{display:block;margin:0 auto}.image-gallery-slide .image-gallery-description{background:var(--wp--preset--color--light-grey-2);color:var(--wp--preset--color--charcoal-1);font-size:var(--wp--preset--font-size--small);line-height:1.5;padding:10px 20px;white-space:normal}@media (max-width:768px){.image-gallery-slide .image-gallery-description{padding:8px 15px}}.image-gallery-thumbnails{background:#fff;margin-top:5px}.image-gallery-thumbnails .image-gallery-thumbnails-container{cursor:pointer;text-align:center;white-space:nowrap}.image-gallery-thumbnail{border:1px solid #eee;display:table-cell;margin-right:5px;max-height:100px;overflow:hidden}.image-gallery-thumbnail .image-gallery-image{margin:0}.image-gallery-thumbnail img{vertical-align:middle;width:100px}@media (max-width:768px){.image-gallery-thumbnail img{width:75px}}.image-gallery-thumbnail:hover{box-shadow:0 1px 8px #0000004d}.image-gallery-thumbnail.active{border:1px solid #337ab7}.image-gallery-thumbnail-label{color:#222;font-size:1em}@media (max-width:768px){.image-gallery-thumbnail-label{font-size:.8em}}.image-gallery-index{background:#0006;bottom:0;color:#fff;line-height:1;padding:10px 20px;position:absolute;right:0;z-index:4}.plugin-reviews{list-style-type:none;margin:0;padding:0}.plugin-reviews .plugin-review{border-bottom:1px solid var(--wp--preset--color--light-grey-1);margin:2rem 0 1rem;padding-bottom:1rem}.plugin-reviews .plugin-review a{text-decoration:none}.plugin-reviews .plugin-review:first-child{margin-top:0}.plugin-reviews .plugin-review .header-top{display:flex}.plugin-reviews .plugin-review .header-top .wporg-ratings{flex-shrink:0}.plugin-reviews .plugin-review .header-bottom{display:flex;margin-top:4px}.plugin-reviews .review-avatar{display:none}.plugin-reviews .review,.plugin-reviews .review-author,.plugin-reviews .wporg-ratings{display:inline-block;vertical-align:top}.plugin-reviews .review-header{margin:0 0 .5rem}.plugin-reviews .review-title{font-size:var(--wp--preset--font-size--normal);font-weight:500;margin:2px 0 0 12px!important;text-transform:inherit}.plugin-reviews .review-author,.plugin-reviews .review-date,.plugin-reviews .review-replies{font-size:var(--wp--preset--font-size--extra-small);line-height:1.25}.plugin-reviews .review-date,.plugin-reviews .review-replies{color:var(--wp--preset--color--charcoal-4);font-size:var(--wp--preset--font-size--extra-small);margin-left:12px}.plugin-reviews .review-replies:before{content:"•";margin-right:12px}.plugin-reviews .review-content{margin:1em 0}@media screen and (min-width:737px){.plugin-reviews .review-avatar{display:inline-block;vertical-align:top}.plugin-reviews .review-avatar .avatar{margin-right:1rem}.plugin-reviews .review{width:calc(100% - 60px - 1rem)}.plugin-reviews .review-header{margin:0}.plugin-reviews .review-author,.plugin-reviews .review-date,.plugin-reviews .review-replies{line-height:1}}.plugin-reviews .reviews-link{display:inline-block;font-size:var(--wp--preset--font-size--small);text-decoration:none}.plugin-reviews .reviews-link:after{content:"\f345";float:right;font-family:dashicons;padding-left:5px;position:relative;top:1px;vertical-align:text-top}.plugin-screenshots{list-style-type:none;margin:0;padding:0}.plugin-screenshots .image-gallery-content{display:table;width:100%}.plugin-screenshots .image-gallery-slides{display:table-cell;max-height:600px}.plugin-screenshots .image-gallery-image img{max-height:550px;max-width:100%}.plugin-screenshots .image-gallery-thumbnail{vertical-align:top}.plugin-screenshots .image-gallery-thumbnail img{max-height:100px}.plugin-screenshots .image-gallery-thumbnails{overflow:hidden}.download-history-stats td{text-align:right}.previous-versions{max-width:60%}@media screen and (min-width:737px){.previous-versions{height:32px;vertical-align:middle}}hr{margin:2.5rem auto}.section h1:nth-child(2),.section h2:nth-child(2),.section h3:nth-child(2),.section h4:nth-child(2),.section h5:nth-child(2),.section h6:nth-child(2){margin-top:0}.section-heading{font-family:var(--wp--preset--font-family--inter)!important;font-size:var(--wp--preset--font-size--heading-5)!important;font-style:normal;font-weight:600;line-height:var(--wp--custom--heading--level-5--typography--line-height)}.section-intro{color:var(--wp--preset--color--charcoal-4);font-size:var(--wp--preset--font-size--small);margin-bottom:var(--wp--preset--spacing--20);margin-top:var(--wp--preset--spacing--10)}.wporg-spinner{--local-size:16px;--spinner-color:var(--wp--custom--spinner--color,var(--wp--preset--color--blueberry-1,currentColor));--background-stroke-color:#ddd;background-color:initial;display:inline-block;height:var(--local-size);position:relative;width:var(--local-size)}.wporg-spinner:before{border:1.5px solid var(--background-stroke-color);border-radius:50%}.wporg-spinner:after,.wporg-spinner:before{box-sizing:border-box;content:"";display:block;height:100%;width:100%}.wporg-spinner:after{animation:wporg-spinner-rotate 1.4s linear infinite;border-bottom:1.5px solid #0000;border-left:1.5px solid #0000;border-radius:50%;border-right:1.5px solid #0000;border-right-color:var(--spinner-color);border-top:1.5px solid #0000;border-top-color:var(--spinner-color);left:0;position:absolute;top:0;transform-origin:center}@keyframes wporg-spinner-rotate{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.type-plugin .plugin-notice{margin-top:0}.type-plugin .plugin-header{border-bottom:0;padding-top:var(--wp--preset--spacing--40)}.type-plugin .plugin-header:after,.type-plugin .plugin-header:before{content:"";display:table;table-layout:fixed}.type-plugin .plugin-header:after{clear:both}.type-plugin .plugin-header .entry-heading-container{display:flex;flex-direction:column;justify-content:space-between}@media screen and (max-width:599px){.type-plugin .plugin-header .entry-heading-container{--wp--custom--button--spacing--padding--top:12px;--wp--custom--button--spacing--padding--bottom:12px;--wp--custom--button--spacing--padding--left:16px;--wp--custom--button--spacing--padding--right:16px}}@media screen and (min-width:700px){.type-plugin .plugin-header .entry-heading-container{flex-direction:row}}.type-plugin .plugin-header .entry-heading-container>:first-child{align-items:center;display:flex;flex:1}.type-plugin .plugin-header .plugin-actions{align-items:center;display:flex;gap:16px;margin-top:var(--wp--style--block-gap)}@media screen and (min-width:700px){.type-plugin .plugin-header .plugin-actions{margin-top:0;margin-inline-start:1rem}}.type-plugin .plugin-header .plugin-actions>.button,.type-plugin .plugin-header .plugin-actions>div{display:inline-block;text-align:center}@media screen and (max-width:34em){.type-plugin .plugin-header .plugin-actions>.button.download-button{display:none}}.type-plugin .plugin-header .plugin-title{clear:none;font-size:var(--wp--preset--font-size--heading-3);font-weight:400;line-height:var(--wp--custom--heading--level-3--typography--line-height);margin:0}.type-plugin .plugin-header .plugin-title a{color:inherit;text-decoration:none}.type-plugin .plugin-header .plugin-title a:hover{text-decoration:underline}.type-plugin .plugin-header .byline{color:var(--wp--preset--color--charcoal-4);display:block;margin-top:4px}.type-plugin .plugin-banner+.plugin-header{padding-top:0}.type-plugin .plugin-banner+.plugin-header>.notice:first-of-type{margin-top:0}.type-plugin .tabs{border-bottom:1px solid var(--wp--preset--color--light-grey-1);list-style:none;margin:0}.type-plugin .tabs li{border:1px solid #0000;display:inline-block;font-size:.9rem;margin-bottom:-1px;transition:background .2s ease}.type-plugin .tabs li a{background:#fff;border:0;color:var(--wp--preset--color--charcoal-1);display:block;font-size:var(--wp--preset--font-size--normal);padding:.64rem 1.25rem;text-decoration:none}.type-plugin .tabs li a.active,.type-plugin .tabs li a:hover{background:var(--wp--preset--color--light-grey-2)!important}.type-plugin .tabs li.active,.type-plugin .tabs li:hover{border:1px solid var(--wp--preset--color--light-grey-1)}@media screen and (max-width:38em){.type-plugin .tabs{border-top:1px solid var(--wp--preset--color--light-grey-1)}.type-plugin .tabs li{display:block;margin-bottom:1px}.type-plugin .tabs li,.type-plugin .tabs li.active,.type-plugin .tabs li:hover{border:none;border-bottom:1px solid var(--wp--preset--color--light-grey-1)}}@media screen and (min-width:737px){.type-plugin .entry-content{float:left;padding:0;width:65%}}.type-plugin .entry-content>div,.type-plugin .entry-content>div~button{border:0;display:none}.type-plugin .entry-content ol>li>p,.type-plugin .entry-content ul>li>p{margin:0}.type-plugin .entry-content #admin{display:block!important}.type-plugin .plugin-blocks-list{list-style:none;margin-left:0;padding-left:0}.type-plugin .plugin-blocks-list .plugin-blocks-list-item{display:grid;grid-template-columns:auto 1fr;margin-bottom:var(--wp--style--block-gap)}.type-plugin .plugin-blocks-list .block-icon{border:1px solid var(--wp--preset--color--light-grey-1);border-radius:2px;display:inline-block;height:3.5rem;line-height:16px;margin-right:var(--wp--style--block-gap);padding:var(--wp--style--block-gap);width:3.5rem}.type-plugin .plugin-blocks-list .block-icon.dashicons{color:inherit}.type-plugin .plugin-blocks-list .block-icon.dashicons:before{margin-left:-3px}.type-plugin .plugin-blocks-list .block-icon svg{height:16px;width:16px;fill:currentColor;margin-left:-1px}.type-plugin .plugin-blocks-list .block-title{align-self:center;font-weight:700}.type-plugin .plugin-blocks-list .has-description .block-icon{grid-row:1/span 2}.type-plugin .plugin-blocks-list .has-description .block-title{margin-bottom:.4em}.type-plugin span#description,.type-plugin span#developers,.type-plugin span#installation,.type-plugin span#releases,.type-plugin span#reviews{position:fixed}.type-plugin span#advanced.displayed~#section-links .tabs li#tablink-advanced,.type-plugin span#developers:target~#section-links .tabs li#tablink-developers,.type-plugin span#installation:target~#section-links .tabs li#tablink-installation,.type-plugin span#releases:target~#section-links .tabs li#tablink-releases,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~span#advanced:not(.displayed)~#section-links .tabs li#tablink-description,.type-plugin span#reviews:target~#section-links .tabs li#tablink-reviews{background:#fff;border:1px solid var(--wp--preset--color--light-grey-1);border-bottom:0;padding-bottom:1px}@media screen and (max-width:38em){.type-plugin span#advanced.displayed~#section-links .tabs li#tablink-advanced.active,.type-plugin span#advanced.displayed~#section-links .tabs li#tablink-advanced:hover,.type-plugin span#developers:target~#section-links .tabs li#tablink-developers.active,.type-plugin span#developers:target~#section-links .tabs li#tablink-developers:hover,.type-plugin span#installation:target~#section-links .tabs li#tablink-installation.active,.type-plugin span#installation:target~#section-links .tabs li#tablink-installation:hover,.type-plugin span#releases:target~#section-links .tabs li#tablink-releases.active,.type-plugin span#releases:target~#section-links .tabs li#tablink-releases:hover,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~span#advanced:not(.displayed)~#section-links .tabs li#tablink-description.active,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~span#advanced:not(.displayed)~#section-links .tabs li#tablink-description:hover,.type-plugin span#reviews:target~#section-links .tabs li#tablink-reviews.active,.type-plugin span#reviews:target~#section-links .tabs li#tablink-reviews:hover{padding-bottom:1px!important}}.type-plugin span#section-links{display:flex;flex-flow:row wrap;margin-top:var(--wp--preset--spacing--30)}.type-plugin span#section-links .tabs{flex:1 1 auto;padding-left:0}@media screen and (max-width:38em){.type-plugin span#section-links .tabs{border:1px solid var(--wp--preset--color--light-grey-1)!important}.type-plugin span#section-links .tabs li{border:none!important}.type-plugin span#section-links{display:block}}.type-plugin #link-support{align-self:flex-end;border-bottom:1px solid var(--wp--preset--color--light-grey-1);flex:0 0 auto;font-size:.9rem}.type-plugin #link-support a{display:inline-block;font-size:var(--wp--preset--font-size--normal);padding:.64rem 0 .64rem 1.25rem}@media screen and (max-width:38em){.type-plugin #link-support{border-bottom:0;display:block;width:100%}.type-plugin #link-support a{padding-right:1.25rem}}.type-plugin span#developers:target~.entry-content #tab-changelog,.type-plugin span#developers:target~.entry-content #tab-developers,.type-plugin span#developers:target~.entry-content #tab-developers .plugin-development,.type-plugin span#developers:target~.entry-content #tab-developers~button,.type-plugin span#installation:target~.entry-content #tab-installation,.type-plugin span#releases:target~.entry-content #tab-releases,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~.entry-content #blocks,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~.entry-content #faq,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~.entry-content #screenshots,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~.entry-content #tab-description,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~.entry-content #tab-developers,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~.entry-content #tab-developers~button,.type-plugin span#reviews:target~.entry-content #tab-reviews{display:block}.type-plugin span#developers:target~.entry-content #tab-developers .plugin-contributors,.type-plugin span#installation:target~.entry-meta .plugin-contributors,.type-plugin span#releases:target~.entry-meta,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~.entry-content #tab-developers .plugin-development,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~.entry-meta .plugin-contributors,.type-plugin span#reviews:target~.entry-meta .plugin-contributors,.type-plugin span#reviews:target~.entry-meta .plugin-donate,.type-plugin span#reviews:target~.entry-meta .plugin-meta,.type-plugin span#reviews:target~.entry-meta .plugin-support{display:none}.type-plugin span#releases:target~.entry-content{width:100%}@media screen and (min-width:737px){.type-plugin .entry-content,.type-plugin .entry-meta{padding-left:0;padding-right:0}.type-plugin .entry-meta{float:right;width:30%}}.type-plugin .plugin-danger-zone h4{margin-top:var(--wp--preset--spacing--60)}.plugin-releases-listing{border-collapse:collapse;width:100%}.plugin-releases-listing tbody td:nth-child(4) div{font-size:14px}.plugin-releases-listing-actions{display:flex;flex-direction:column;gap:8px}@media screen and (min-width:34em){.plugin-releases-listing-actions{flex-direction:row}}.plugin-adopt-me{background:#e6f4fa;margin-top:36px;padding:12px}.plugin-adopt-me .widget-title{margin-top:0}.plugin-adopt-me p{margin-bottom:0}.widget.plugin-categorization{margin-top:var(--wp--style--block-gap)}.widget.plugin-categorization .widget-head h2{font-size:var(--wp--preset--font-size--heading-4);margin-bottom:.2rem;margin-top:0}.widget.plugin-categorization .widget-head a{font-size:var(--wp--preset--font-size--small)}.widget.plugin-categorization .widget-head a[href=""]{display:none}.widget.plugin-categorization p{font-size:var(--wp--preset--font-size--small);margin-top:.5rem}.widget.plugin-categorization~.plugin-meta li:first-child{border-top:1px solid var(--wp--preset--color--light-grey-1)}.committer-list,.support-rep-list{list-style:none;margin:0;padding:0}.committer-list li,.support-rep-list li{padding-bottom:.5rem}.committer-list li .remove,.support-rep-list li .remove{color:red;visibility:hidden}.committer-list li:hover .remove,.support-rep-list li:hover .remove{visibility:visible}.committer-list .avatar,.support-rep-list .avatar{float:left;margin-right:10px}.committer-list .spinner,.support-rep-list .spinner{position:relative}.committer-list .spinner:after,.support-rep-list .spinner:after{background:url(/wp-admin/images/spinner.gif) no-repeat 50%;background-size:20px 20px;content:"";display:block;height:20px;margin:-10px -10px 0 0;position:absolute;right:-50%;top:50%;transform:translateZ(0);width:20px}@media (min-resolution:120dpi),print{.committer-list .spinner:after,.support-rep-list .spinner:after{background-image:url(/wp-admin/images/spinner-2x.gif)}}.committer-list .new,.support-rep-list .new{margin-top:var(--wp--style--block-gap)}.plugin-contributors.read-more{border-bottom:1px solid var(--wp--preset--color--light-grey-1);max-height:200px;overflow:hidden;padding-bottom:1px}.plugin-contributors.read-more.toggled{max-height:none}.no-js .plugin-contributors.read-more{max-height:none;overflow:auto}.contributors-list{list-style-type:none;margin:0;padding:0}.contributors-list li{align-items:center;display:flex;margin-bottom:1rem}.contributors-list .avatar{float:left;margin-right:10px}.plugin-meta{font-size:var(--wp--preset--font-size--small);margin-top:var(--wp--style--block-gap)}.plugin-meta ul{list-style-type:none;margin:0;padding:0}.plugin-meta li{border-top:1px solid var(--wp--preset--color--light-grey-1);display:inline-block;padding:.5rem 0;position:relative;width:100%}.plugin-meta li strong{float:right;font-weight:500}.plugin-meta li .plugin-admin{font-size:var(--wp--preset--font-size--normal);font-weight:400}.plugin-meta li:first-child{border-top:0}.plugin-meta .languages,.plugin-meta .tags{float:right;text-align:right}.plugin-meta .tags{width:60%}.plugin-meta .languages button{font-size:var(--wp--preset--font-size--small);outline:revert}.plugin-meta .languages .popover{margin-top:8px}.plugin-meta .languages .popover-trigger{color:var(--wp--custom--link--color--text);text-decoration:underline}.plugin-meta .languages .popover-trigger:hover{text-decoration:underline}.plugin-meta [rel=tag]{background:var(--wp--preset--color--blueberry-4);border-radius:2px;color:var(--wp--preset--color--charcoal-1);display:inline-block;font-size:var(--wp--preset--font-size--extra-small);margin:2px;max-width:95%;overflow:hidden;padding:3px 6px;position:relative;text-decoration:none;text-overflow:ellipsis;white-space:nowrap;width:auto}.plugin-meta [rel=tag]:hover{text-decoration:underline}.popover{background-color:#fff;border:1px solid var(--wp--preset--color--light-grey-1);border-radius:2px;box-shadow:0 2px 10px #0000001a;display:none;left:0;margin-top:10px;max-width:300px;padding:1em 1em 2em;position:absolute;width:100%;z-index:100}.popover.is-top-right{left:auto;right:0}.popover.is-visible{display:block}.popover .popover-close{bottom:.5em;color:var(--wp--custom--link--color--text);font-size:small;position:absolute;right:.6em}.popover .popover-close:active,.popover .popover-close:focus,.popover .popover-close:hover{text-decoration:underline}.popover .popover-arrow{border:10px solid #0000;border-bottom:10px solid #ccc;border-top:none;height:0;position:absolute;right:20px;top:-10px;width:0;z-index:-1}.popover .popover-arrow:after{border:10px solid #0000;border-bottom:10px solid #fff;border-top:none;content:"";left:-10px;position:absolute;top:2px}.popover .popover-inner{text-align:left}.popover .popover-inner p:first-child{margin-top:0}.popover .popover-inner p:last-child{margin-bottom:0}.plugin-support .counter-container{margin-bottom:1rem;position:relative}.plugin-support .counter-back,.plugin-support .counter-bar{display:inline-block;height:30px;vertical-align:middle}.plugin-support .counter-back{background-color:var(--wp--preset--color--light-grey-2);width:100%}.plugin-support .counter-bar{background-color:var(--wp--preset--color--acid-green-2);display:block}.plugin-support .counter-count{font-size:var(--wp--preset--font-size--extra-small);left:8px;position:absolute;top:8px;width:100%;width:calc(100% - 8px)}@media screen and (min-width:737px){.plugin-support .counter-count{top:5px}}.home .widget,.widget-area.home .widget{display:inline-block;font-size:var(--wp--preset--font-size--small);margin:0;margin:var(--wp--style--block-gap);vertical-align:top;width:auto}@media screen and (min-width:737px){.home .widget,.widget-area.home .widget{margin:0;width:30%}.home .widget:first-child,.widget-area.home .widget:first-child{margin-right:5%}.home .widget:last-child,.widget-area.home .widget:last-child{margin-left:5%}}.home .widget select,.widget-area.home .widget select{max-width:100%}.entry-meta .widget-title{font-size:var(--wp--preset--font-size--heading-4)}body.single.single-plugin .entry-meta{font-size:var(--wp--preset--font-size--normal)}.widget-area{margin:0 auto;padding:var(--wp--preset--spacing--40) 0}.widget-area .widget-title{font-size:var(--wp--preset--font-size--heading-1);font-weight:var(--wp--custom--heading--typography--font-weight);margin-top:var(--wp--preset--spacing--50)}.widget-area .textwidget{text-wrap:pretty} \ No newline at end of file +@charset "UTF-8";.avatar{border-radius:50%;vertical-align:middle}.wp-block-wporg-language-suggest>p{margin:0}.block-validator>details summary{padding:var(--wp--style--block-gap) 0}.block-validator .block-validator__plugin-form label{display:block;margin-bottom:.8em}.block-validator .block-validator__plugin-input-container{display:flex;max-width:34rem}.block-validator .block-validator__plugin-input{flex:1}.block-validator .block-validator__plugin-submit{flex:0;margin-left:4px}@media (max-width:36rem){.block-validator .block-validator__plugin-submit{width:100%}.block-validator .block-validator__plugin-input-container{display:block}.block-validator .block-validator__plugin-input{width:100%}.block-validator .block-validator__plugin-submit{margin-left:0;margin-top:var(--wp--style--block-gap)}}.block-validator .notice details,.block-validator .notice p{font-size:var(--wp--preset--font-size--normal);margin:var(--wp--style--block-gap) 0}.block-validator .notice details p{font-size:var(--wp--preset--font-size--small);margin-left:1rem}.block-validator .notice summary{display:list-item}.block-validator figure{border:1px solid #aaa;display:inline-block;padding:1em}.block-validator .test-screenshot{text-align:center}.block-validator .plugin-upload-form-controls{align-items:center;display:flex;gap:4px}.block-validator .plugin-upload-form-controls>label{border:1px solid var(--wp--custom--form--border--color);border-radius:var(--wp--custom--form--border--radius);cursor:pointer;min-width:200px;padding:4px 8px}.notice{background:#fff;border-left:4px solid #fff;box-shadow:0 1px 1px 0 #0000001a;font-size:var(--wp--preset--font-size--small);margin:var(--wp--style--block-gap) 0;padding:1px 12px}.notice p,.notice ul{margin:.5em 0;padding:2px}.notice pre{white-space:pre-wrap}.notice ul{list-style:none;margin:.5em}.notice.notice-alt{box-shadow:none}.notice.notice-large{padding:10px 20px}.notice.notice-success{border-left-color:#46b450}.notice.notice-success.notice-alt{background-color:#ecf7ed}.notice.notice-warning{border-left-color:#ffb900}.notice.notice-warning.notice-alt{background-color:#fff8e5}.notice.notice-error{border-left-color:#dc3232}.notice.notice-error.notice-alt{background-color:#fbeaea}.notice.notice-info{border-left-color:#00a0d2}.notice.notice-info.notice-alt{background-color:#e5f5fa}.notice.hidden{display:none}.plugin-upload-form.hidden{display:none}.plugin-upload-form fieldset{border:none;margin:0;padding:0}.plugin-upload-form legend{margin:1rem 0}.plugin-upload-form .category-checklist{list-style-type:none;margin:0 0 2rem}.plugin-upload-form .category-checklist li{float:left;padding:.5rem 0;width:50%}@media screen and (min-width:48em){.plugin-upload-form .category-checklist li{padding:0}.plugin-upload-form .category-checklist label{font-size:var(--wp--preset--font-size--small)}.plugin-upload-form label.button{line-height:1.8}}.plugin-upload-form .plugin-file{height:.1px;opacity:0;overflow:hidden;position:absolute;width:.1px;z-index:-1}.plugin-queue-message code{font-size:1em}.plugin-queue-message dialog.slug-change input[type=text]{font-family:monospace;font-size:1.2em;width:20em}:where(main) a:where(:not(.wp-element-button,.wp-block-wporg-link-wrapper)):focus,:where(main) button:where(:not([class*=wp-block-button])):focus{border-radius:2px;box-shadow:0 0 0 1.5px currentColor;outline:none}.wporg-filter-bar{--wporg--filter-bar--gap:20px;--wporg--filter-bar--color:#40464d;--wporg--filter-bar--active--background-color:var(--wp--custom--button--color--background);--wporg--filter-bar--focus--border-color:var(--wp--custom--button--focus--border--color);margin:var(--wp--style--block-gap) 0}.wporg-filter-bar .wporg-query-filter__toggle.is-active,.wporg-filter-bar .wporg-query-filter__toggle:active,.wporg-filter-bar .wporg-query-filter__toggle:focus{background-color:var(--wporg--filter-bar--active--background-color);color:var(--wp--custom--button--color--text)}.wporg-filter-bar .wporg-filter-bar__navigation{flex-grow:1;margin-bottom:var(--wporg--filter-bar--gap)}.wporg-filter-bar .wporg-filter-bar__navigation ul{display:inline-block;font-size:13px;line-height:1.538;list-style:none;margin:0;padding-left:0}.wporg-filter-bar .wporg-filter-bar__navigation ul li{display:inline-block}.wporg-filter-bar .wporg-filter-bar__navigation ul li+li{margin-left:8px}.wporg-filter-bar .wporg-filter-bar__navigation ul a{border-radius:2px;color:var(--wporg--filter-bar--color);display:block;padding:8px 12px;text-decoration:none}.wporg-filter-bar .wporg-filter-bar__navigation ul a:focus,.wporg-filter-bar .wporg-filter-bar__navigation ul a:hover{text-decoration:underline}.wporg-filter-bar .wporg-filter-bar__navigation ul a:focus-visible{box-shadow:none;outline:1.5px solid var(--wporg--filter-bar--focus--border-color);outline-offset:-.5px}.wporg-filter-bar .wporg-filter-bar__navigation ul a.is-active{background-color:var(--wporg--filter-bar--active--background-color);color:#fff}.wporg-filter-bar .wporg-filter-bar__navigation ul a.is-active:focus,.wporg-filter-bar .wporg-filter-bar__navigation ul a.is-active:hover{color:#fff}.wporg-filter-bar .wporg-filter-bar__navigation ul a.is-active:focus-visible{box-shadow:inset 0 0 0 1.5px #fff;outline:1.5px solid var(--wporg--filter-bar--focus--border-color);outline-offset:-.5px}@media screen and (min-width:737px){.wporg-filter-bar{align-items:center;display:flex;flex-wrap:wrap;gap:var(--wporg--filter-bar--gap);justify-content:space-between;width:100%}.wporg-filter-bar .wporg-filter-bar__navigation{margin-bottom:0}}.wp-block-search__inside-wrapper{background:var(--wp--preset--color--light-grey-2);border:none}.button-link{background:none;border:0;border-radius:0;box-shadow:none;cursor:pointer;margin:0;outline:none;padding:0}.button{background-color:var(--wp--custom--button--color--background);border:0;border-radius:var(--wp--custom--button--border--radius);color:var(--wp--custom--button--color--text);cursor:pointer;opacity:1;padding:calc(var(--wp--custom--button--small--spacing--padding--top) + var(--wp--custom--button--border--width)) calc(var(--wp--custom--button--small--spacing--padding--right) + var(--wp--custom--button--border--width)) calc(var(--wp--custom--button--small--spacing--padding--bottom) + var(--wp--custom--button--border--width)) calc(var(--wp--custom--button--small--spacing--padding--left) + var(--wp--custom--button--border--width));vertical-align:middle}.button.button-large{padding:calc(var(--wp--custom--button--spacing--padding--top) + var(--wp--custom--button--border--width)) calc(var(--wp--custom--button--spacing--padding--right) + var(--wp--custom--button--border--width)) calc(var(--wp--custom--button--spacing--padding--bottom) + var(--wp--custom--button--border--width)) calc(var(--wp--custom--button--spacing--padding--left) + var(--wp--custom--button--border--width))}input+button.button,select+button.button{margin-top:-3px}.button.disabled{cursor:not-allowed;opacity:.6}.wp-block-post-content a.button{text-decoration:none}.wp-block-button__link{width:auto}pre{background-color:#f7f7f7;border:1px solid var(--wp--preset--color--light-grey-1);overflow:scroll;padding:20px}code,pre{border-radius:2px}code{background:var(--wp--preset--color--light-grey-2);display:inline-block;line-height:var(--wp--custom--body--extra-small--typography--line-height);max-width:100%;padding-inline-end:3px;padding-inline-start:3px}dialog{border:0;box-shadow:6px 6px 6px #0003;min-height:50%;min-width:30%}@media (min-width:1280px){dialog{max-width:55%}}dialog::backdrop{background:#000;opacity:.5}dialog .close{color:inherit;cursor:pointer;position:absolute;right:1em;text-decoration:none!important;top:1em}.plugin-card{display:flex;flex-direction:column;height:100%;justify-content:space-between}.plugin-card .entry{display:inline-block;vertical-align:top}.plugin-card .entry-title{display:block;display:-webkit-box;font-size:var(--wp--preset--font-size--heading-5);font-weight:500;line-height:1.3;margin-bottom:2px!important;max-height:2.6em;overflow:hidden;-webkit-line-clamp:2;-webkit-box-orient:vertical}.plugin-card .entry-title a{display:block;text-decoration:none}.plugin-card .entry-title a:focus{box-shadow:none}.plugin-card .entry-excerpt{clear:both;font-size:var(--wp--preset--font-size--small)}.plugin-card .entry-excerpt p{margin:0}.plugin-card footer{font-size:var(--wp--preset--font-size--small);margin-top:var(--wp--style--block-gap)}.plugin-card footer span{color:var(--wp--preset--color--charcoal-4);display:inline-block;line-height:var(--wp--preset--font-size--normal);overflow:hidden}.plugin-card footer span.plugin-author{width:100%}.plugin-card footer span.plugin-author span{color:var(--wp--preset--color--charcoal-1)}.plugin-card footer span.plugin-author path{fill:var(--wp--preset--color--charcoal-1)}.plugin-card footer span svg{height:24px;vertical-align:bottom;width:24px}.plugin-card footer span svg path{fill:var(--wp--preset--color--charcoal-4)}.plugin-card footer span.active-installs{min-width:48%}.plugin-cards{cursor:pointer}.plugin-cards .is-style-cards-grid li:hover{background-color:#fff!important;border:1px solid var(--wp--preset--color--charcoal-1)!important}.plugin-cards .is-style-cards-grid li:focus-within{border-color:#0000;border-radius:2px;box-shadow:0 0 0 1.5px var(--wp--custom--link--color--text)}@media screen and (max-width:737px){.plugin-cards .is-style-cards-grid{grid-template-columns:100%}}.entry-thumbnail{display:none;margin-bottom:var(--wp--style--block-gap);margin-right:var(--wp--style--block-gap);max-width:80px}.entry-thumbnail .plugin-icon{background-size:cover;border-radius:var(--wp--custom--button--border--radius);display:block;height:80px;width:80px}@media screen and (min-width:21em){.entry-thumbnail{display:inline-block;float:left;vertical-align:top}}.single .entry-thumbnail{display:none;float:left;height:96px;margin-bottom:0;max-width:96px}@media screen and (min-width:26em){.single .entry-thumbnail{display:block}}.single .entry-thumbnail .plugin-icon{background-size:contain!important;height:96px!important;width:96px!important}.plugin-rating{line-height:1;margin:0 10px 8px 0}.plugin-rating .wporg-ratings{display:inline-block;margin-right:5px}.plugin-rating .rating-count{color:var(--wp--preset--color--charcoal-4);font-size:var(--wp--preset--font-size--extra-small);vertical-align:text-bottom}.plugin-rating .rating-count a{color:inherit;cursor:hand;text-decoration:none}[class*=dashicons-star-]{color:var(--wp--preset--color--pomegrade-1)}.rtl .dashicons-star-half{transform:rotateY(180deg)}#main .plugin-section{margin:0 auto var(--wp--preset--spacing--60)}#main .plugin-section:last-of-type{margin-bottom:0}#main .plugin-section .section-header{align-items:center;column-gap:10px;display:flex;justify-content:space-between;margin-bottom:var(--wp--style--block-gap)}#main .plugin-section .section-header>h2{margin-bottom:0}#main .plugin-section .section-link{align-self:center;flex:0 0 auto;text-decoration:underline}.pagination .nav-links{margin-top:var(--wp--style--block-gap);padding-top:var(--wp--style--block-gap);text-align:center}.pagination .nav-links a{text-decoration:none}.pagination .nav-links .page-numbers{cursor:pointer;display:inline-block;min-width:2em;padding:8px;text-align:center}.pagination .nav-links .page-numbers.dots,.pagination .nav-links .page-numbers.next,.pagination .nav-links .page-numbers.prev{background:none;font-size:.9em;width:auto}.pagination .nav-links .page-numbers.dots{cursor:inherit}@media screen and (max-width:737px){.pagination .nav-links .page-numbers.next,.pagination .nav-links .page-numbers.prev{font-size:0;min-width:auto;padding:0}.pagination .nav-links .page-numbers.next:after,.pagination .nav-links .page-numbers.prev:before{display:inline-block;font-size:medium;line-height:1.5;min-width:2em;padding:8px}.pagination .nav-links .page-numbers.prev:before{content:"‹"}.pagination .nav-links .page-numbers.next:after{content:"›"}}.pagination .nav-links span.page-numbers{font-weight:700}.pagination .nav-links span.page-numbers.current{text-decoration:underline}@keyframes favme-anime{0%{font-size:var(--wp--preset--font-size--large);opacity:1;-webkit-text-stroke-color:#0000}25%{color:#fff;font-size:var(--wp--preset--font-size--small);opacity:.6;-webkit-text-stroke-width:1px;-webkit-text-stroke-color:#dc3232}75%{color:#fff;font-size:var(--wp--preset--font-size--large);opacity:.6;-webkit-text-stroke-width:1px;-webkit-text-stroke-color:#dc3232}to{font-size:var(--wp--preset--font-size--normal);opacity:1;-webkit-text-stroke-color:#0000}}.plugin-favorite{height:calc(var(--wp--custom--button--spacing--padding--top)*2 + var(--wp--preset--font-size--normal)*2);text-align:center;vertical-align:top;width:36px}.plugin-favorite .plugin-favorite-heart{align-items:center;background:none;border:0;border-radius:0;box-shadow:none;color:#cbcdce;cursor:pointer;display:flex;font-size:var(--wp--preset--font-size--large);height:100%;justify-content:center;line-height:1;margin:0;outline:none;padding:0;text-decoration:none}.plugin-favorite .plugin-favorite-heart.favorited{color:#dc3232}.plugin-favorite .plugin-favorite-heart:focus,.plugin-favorite .plugin-favorite-heart:hover{color:var(----wp--preset--color--charcoal-2);text-decoration:none}.plugin-favorite .plugin-favorite-heart:after{content:"\f487";font-family:dashicons;vertical-align:top}.plugin-banner img{aspect-ratio:3.089;border-radius:var(--wp--custom--button--border--radius);display:block;margin:0 auto var(--wp--preset--spacing--30);width:100%}.plugin-releases{list-style-type:none;padding:0}.plugin-releases-item{border:1px solid var(--wp--preset--color--light-grey-1);border-radius:4px;margin-bottom:var(--wp--preset--spacing--30);padding:var(--wp--style--block-gap)}.plugin-releases-item-header{display:flex;justify-content:space-between}.plugin-releases-item-header h3{margin:0!important}@keyframes hideAnimation{to{visibility:hidden}}.categorization .help{color:var(--wp--preset--color--charcoal-4);display:inline-block;font-size:.8rem;margin-top:0}.categorization label{display:block;font-weight:700}.categorization input{width:100%}.categorization .success-msg{background:#eff7ed;border:solid #64b450;border-width:0 0 0 5px;font-size:.8rem;margin-left:1rem;opacity:0;overflow:auto;padding:.1rem .6rem .2rem;position:relative;transition:visibility 0s,opacity .5s linear;-webkit-user-select:none;user-select:none;visibility:hidden}.categorization .success-msg.saved{animation:hideAnimation 0s ease-in 5s;animation-fill-mode:forwards;opacity:1;visibility:visible}.plugin-changelog code{font-size:var(--wp--preset--font-size--small)}.plugin-developers .contributors-list li{align-items:center;display:flex;padding-bottom:var(--wp--style--block-gap)}@media screen and (min-width:500px){.plugin-developers .contributors-list{display:flex;flex-wrap:wrap}.plugin-developers .contributors-list li{padding-bottom:unset;width:50%}}.plugin-faq dl{border-bottom:1px solid var(--wp--preset--color--light-grey-1)}.plugin-faq dt{border-top:1px solid var(--wp--preset--color--light-grey-1);cursor:pointer;padding:1rem 0}.plugin-faq dt:before{content:"\f347";float:right;font-family:dashicons;margin:0 1rem}.plugin-faq dt.open:before{content:"\f343"}.plugin-faq dt .button-link{display:inherit;text-align:inherit}.plugin-faq dt .button-link.no-focus{box-shadow:none;outline:none}.plugin-faq dt h3{color:var(--wp--custom--link--color--text);display:inline;font-size:var(--wp--preset--font-size--normal);font-weight:400;margin-bottom:0;margin-top:0!important;text-decoration:underline}.plugin-faq dt h3 button{all:inherit;max-width:calc(100% - 60px)}.plugin-faq dt h3 button:focus,.plugin-faq dt h3 button:hover{text-decoration:underline}.plugin-faq dd{display:none;margin:0 0 1rem}.no-js .plugin-faq dd{display:block}.plugin-faq dd p{margin:0}.plugin-faq dd p+p{margin-top:1rem}.image-gallery{-webkit-user-select:none;user-select:none}.image-gallery-content{position:relative}.image-gallery-content .image-gallery-left-nav,.image-gallery-content .image-gallery-right-nav{border-color:var(--wp--preset--color--light-grey-1);display:none;font-size:48px;height:100%;position:absolute;top:0;transition:background .1s ease,border .1s ease;z-index:4}@media (max-width:768px){.image-gallery-content .image-gallery-left-nav,.image-gallery-content .image-gallery-right-nav{font-size:3.4em}}@media (min-width:768px){.image-gallery-content .image-gallery-left-nav:hover,.image-gallery-content .image-gallery-right-nav:hover{background:#fff;border:1px solid var(--wp--preset--color--light-grey-1);opacity:.8}}.image-gallery-content .image-gallery-left-nav:before,.image-gallery-content .image-gallery-right-nav:before{font-family:dashicons;position:relative}.image-gallery-content .image-gallery-left-nav{left:0}.image-gallery-content .image-gallery-left-nav:before{content:"\f341"}.image-gallery-content .image-gallery-left-nav:hover{margin-left:-1px}.image-gallery-content .image-gallery-right-nav{right:0}.image-gallery-content .image-gallery-right-nav:before{content:"\f345"}.image-gallery-content .image-gallery-right-nav:hover{margin-right:-1px}.image-gallery-content:hover .image-gallery-left-nav,.image-gallery-content:hover .image-gallery-right-nav{display:block}.image-gallery-slides{border:1px solid #eee;line-height:0;overflow:hidden;position:relative;white-space:nowrap}.image-gallery-slide{left:0;position:absolute;top:0;width:100%}.image-gallery-slide.center{position:relative}.image-gallery-slide .image-gallery-image{margin:0}.image-gallery-slide img{display:block;margin:0 auto}.image-gallery-slide .image-gallery-description{background:var(--wp--preset--color--light-grey-2);color:var(--wp--preset--color--charcoal-1);font-size:var(--wp--preset--font-size--small);line-height:1.5;padding:10px 20px;white-space:normal}@media (max-width:768px){.image-gallery-slide .image-gallery-description{padding:8px 15px}}.image-gallery-thumbnails{background:#fff;margin-top:5px}.image-gallery-thumbnails .image-gallery-thumbnails-container{cursor:pointer;text-align:center;white-space:nowrap}.image-gallery-thumbnail{border:1px solid #eee;display:table-cell;margin-right:5px;max-height:100px;overflow:hidden}.image-gallery-thumbnail .image-gallery-image{margin:0}.image-gallery-thumbnail img{vertical-align:middle;width:100px}@media (max-width:768px){.image-gallery-thumbnail img{width:75px}}.image-gallery-thumbnail:hover{box-shadow:0 1px 8px #0000004d}.image-gallery-thumbnail.active{border:1px solid #337ab7}.image-gallery-thumbnail-label{color:#222;font-size:1em}@media (max-width:768px){.image-gallery-thumbnail-label{font-size:.8em}}.image-gallery-index{background:#0006;bottom:0;color:#fff;line-height:1;padding:10px 20px;position:absolute;right:0;z-index:4}.plugin-reviews{list-style-type:none;margin:0;padding:0}.plugin-reviews .plugin-review{border-bottom:1px solid var(--wp--preset--color--light-grey-1);margin:2rem 0 1rem;padding-bottom:1rem}.plugin-reviews .plugin-review a{text-decoration:none}.plugin-reviews .plugin-review:first-child{margin-top:0}.plugin-reviews .plugin-review .header-top{display:flex}.plugin-reviews .plugin-review .header-top .wporg-ratings{flex-shrink:0}.plugin-reviews .plugin-review .header-bottom{display:flex;margin-top:4px}.plugin-reviews .review-avatar{display:none}.plugin-reviews .review,.plugin-reviews .review-author,.plugin-reviews .wporg-ratings{display:inline-block;vertical-align:top}.plugin-reviews .review-header{margin:0 0 .5rem}.plugin-reviews .review-title{font-size:var(--wp--preset--font-size--normal);font-weight:500;margin:2px 0 0 12px!important;text-transform:inherit}.plugin-reviews .review-author,.plugin-reviews .review-date,.plugin-reviews .review-replies{font-size:var(--wp--preset--font-size--extra-small);line-height:1.25}.plugin-reviews .review-date,.plugin-reviews .review-replies{color:var(--wp--preset--color--charcoal-4);font-size:var(--wp--preset--font-size--extra-small);margin-left:12px}.plugin-reviews .review-replies:before{content:"•";margin-right:12px}.plugin-reviews .review-content{margin:1em 0}@media screen and (min-width:737px){.plugin-reviews .review-avatar{display:inline-block;vertical-align:top}.plugin-reviews .review-avatar .avatar{margin-right:1rem}.plugin-reviews .review{width:calc(100% - 60px - 1rem)}.plugin-reviews .review-header{margin:0}.plugin-reviews .review-author,.plugin-reviews .review-date,.plugin-reviews .review-replies{line-height:1}}.plugin-reviews .reviews-link{display:inline-block;font-size:var(--wp--preset--font-size--small);text-decoration:none}.plugin-reviews .reviews-link:after{content:"\f345";float:right;font-family:dashicons;padding-left:5px;position:relative;top:1px;vertical-align:text-top}.plugin-screenshots{list-style-type:none;margin:0;padding:0}.plugin-screenshots .image-gallery-content{display:table;width:100%}.plugin-screenshots .image-gallery-slides{display:table-cell;max-height:600px}.plugin-screenshots .image-gallery-image img{max-height:550px;max-width:100%}.plugin-screenshots .image-gallery-thumbnail{vertical-align:top}.plugin-screenshots .image-gallery-thumbnail img{max-height:100px}.plugin-screenshots .image-gallery-thumbnails{overflow:hidden}.download-history-stats td{text-align:right}.previous-versions{max-width:60%}@media screen and (min-width:737px){.previous-versions{height:32px;vertical-align:middle}}hr{margin:2.5rem auto}.section h1:nth-child(2),.section h2:nth-child(2),.section h3:nth-child(2),.section h4:nth-child(2),.section h5:nth-child(2),.section h6:nth-child(2){margin-top:0}.section-heading{font-family:var(--wp--preset--font-family--inter)!important;font-size:var(--wp--preset--font-size--heading-5)!important;font-style:normal;font-weight:600;line-height:var(--wp--custom--heading--level-5--typography--line-height)}.section-intro{color:var(--wp--preset--color--charcoal-4);font-size:var(--wp--preset--font-size--small);margin-bottom:var(--wp--preset--spacing--20);margin-top:var(--wp--preset--spacing--10)}.type-plugin .plugin-notice{margin-top:0}.type-plugin .plugin-header{border-bottom:0;padding-top:var(--wp--preset--spacing--40)}.type-plugin .plugin-header:after,.type-plugin .plugin-header:before{content:"";display:table;table-layout:fixed}.type-plugin .plugin-header:after{clear:both}.type-plugin .plugin-header .entry-heading-container{display:flex;flex-direction:column;justify-content:space-between}@media screen and (max-width:599px){.type-plugin .plugin-header .entry-heading-container{--wp--custom--button--spacing--padding--top:12px;--wp--custom--button--spacing--padding--bottom:12px;--wp--custom--button--spacing--padding--left:16px;--wp--custom--button--spacing--padding--right:16px}}@media screen and (min-width:700px){.type-plugin .plugin-header .entry-heading-container{flex-direction:row}}.type-plugin .plugin-header .entry-heading-container>:first-child{align-items:center;display:flex;flex:1}.type-plugin .plugin-header .plugin-actions{align-items:center;display:flex;gap:16px;margin-top:var(--wp--style--block-gap)}@media screen and (min-width:700px){.type-plugin .plugin-header .plugin-actions{margin-top:0;margin-inline-start:1rem}}.type-plugin .plugin-header .plugin-actions>.button,.type-plugin .plugin-header .plugin-actions>div{display:inline-block;text-align:center}@media screen and (max-width:34em){.type-plugin .plugin-header .plugin-actions>.button.download-button{display:none}}.type-plugin .plugin-header .plugin-title{clear:none;font-size:var(--wp--preset--font-size--heading-3);font-weight:400;line-height:var(--wp--custom--heading--level-3--typography--line-height);margin:0}.type-plugin .plugin-header .plugin-title a{color:inherit;text-decoration:none}.type-plugin .plugin-header .plugin-title a:hover{text-decoration:underline}.type-plugin .plugin-header .byline{color:var(--wp--preset--color--charcoal-4);display:block;margin-top:4px}.type-plugin .plugin-banner+.plugin-header{padding-top:0}.type-plugin .plugin-banner+.plugin-header>.notice:first-of-type{margin-top:0}.type-plugin .tabs{border-bottom:1px solid var(--wp--preset--color--light-grey-1);list-style:none;margin:0}.type-plugin .tabs li{border:1px solid #0000;display:inline-block;font-size:.9rem;margin-bottom:-1px;transition:background .2s ease}.type-plugin .tabs li a{background:#fff;border:0;color:var(--wp--preset--color--charcoal-1);display:block;font-size:var(--wp--preset--font-size--normal);padding:.64rem 1.25rem;text-decoration:none}.type-plugin .tabs li a.active,.type-plugin .tabs li a:hover{background:var(--wp--preset--color--light-grey-2)!important}.type-plugin .tabs li.active,.type-plugin .tabs li:hover{border:1px solid var(--wp--preset--color--light-grey-1)}@media screen and (max-width:38em){.type-plugin .tabs{border-top:1px solid var(--wp--preset--color--light-grey-1)}.type-plugin .tabs li{display:block;margin-bottom:1px}.type-plugin .tabs li,.type-plugin .tabs li.active,.type-plugin .tabs li:hover{border:none;border-bottom:1px solid var(--wp--preset--color--light-grey-1)}}@media screen and (min-width:737px){.type-plugin .entry-content{float:left;padding:0;width:65%}}.type-plugin .entry-content>div,.type-plugin .entry-content>div~button{border:0;display:none}.type-plugin .entry-content ol>li>p,.type-plugin .entry-content ul>li>p{margin:0}.type-plugin .entry-content #admin{display:block!important}.type-plugin .plugin-blocks-list{list-style:none;margin-left:0;padding-left:0}.type-plugin .plugin-blocks-list .plugin-blocks-list-item{display:grid;grid-template-columns:auto 1fr;margin-bottom:var(--wp--style--block-gap)}.type-plugin .plugin-blocks-list .block-icon{border:1px solid var(--wp--preset--color--light-grey-1);border-radius:2px;display:inline-block;height:3.5rem;line-height:16px;margin-right:var(--wp--style--block-gap);padding:var(--wp--style--block-gap);width:3.5rem}.type-plugin .plugin-blocks-list .block-icon.dashicons{color:inherit}.type-plugin .plugin-blocks-list .block-icon.dashicons:before{margin-left:-3px}.type-plugin .plugin-blocks-list .block-icon svg{height:16px;width:16px;fill:currentColor;margin-left:-1px}.type-plugin .plugin-blocks-list .block-title{align-self:center;font-weight:700}.type-plugin .plugin-blocks-list .has-description .block-icon{grid-row:1/span 2}.type-plugin .plugin-blocks-list .has-description .block-title{margin-bottom:.4em}.type-plugin span#description,.type-plugin span#developers,.type-plugin span#installation,.type-plugin span#releases,.type-plugin span#reviews{position:fixed}.type-plugin span#advanced.displayed~#section-links .tabs li#tablink-advanced,.type-plugin span#developers:target~#section-links .tabs li#tablink-developers,.type-plugin span#installation:target~#section-links .tabs li#tablink-installation,.type-plugin span#releases:target~#section-links .tabs li#tablink-releases,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~span#advanced:not(.displayed)~#section-links .tabs li#tablink-description,.type-plugin span#reviews:target~#section-links .tabs li#tablink-reviews{background:#fff;border:1px solid var(--wp--preset--color--light-grey-1);border-bottom:0;padding-bottom:1px}@media screen and (max-width:38em){.type-plugin span#advanced.displayed~#section-links .tabs li#tablink-advanced.active,.type-plugin span#advanced.displayed~#section-links .tabs li#tablink-advanced:hover,.type-plugin span#developers:target~#section-links .tabs li#tablink-developers.active,.type-plugin span#developers:target~#section-links .tabs li#tablink-developers:hover,.type-plugin span#installation:target~#section-links .tabs li#tablink-installation.active,.type-plugin span#installation:target~#section-links .tabs li#tablink-installation:hover,.type-plugin span#releases:target~#section-links .tabs li#tablink-releases.active,.type-plugin span#releases:target~#section-links .tabs li#tablink-releases:hover,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~span#advanced:not(.displayed)~#section-links .tabs li#tablink-description.active,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~span#advanced:not(.displayed)~#section-links .tabs li#tablink-description:hover,.type-plugin span#reviews:target~#section-links .tabs li#tablink-reviews.active,.type-plugin span#reviews:target~#section-links .tabs li#tablink-reviews:hover{padding-bottom:1px!important}}.type-plugin span#section-links{display:flex;flex-flow:row wrap;margin-top:var(--wp--preset--spacing--30)}.type-plugin span#section-links .tabs{flex:1 1 auto;padding-left:0}@media screen and (max-width:38em){.type-plugin span#section-links .tabs{border:1px solid var(--wp--preset--color--light-grey-1)!important}.type-plugin span#section-links .tabs li{border:none!important}.type-plugin span#section-links{display:block}}.type-plugin #link-support{align-self:flex-end;border-bottom:1px solid var(--wp--preset--color--light-grey-1);flex:0 0 auto;font-size:.9rem}.type-plugin #link-support a{display:inline-block;font-size:var(--wp--preset--font-size--normal);padding:.64rem 0 .64rem 1.25rem}@media screen and (max-width:38em){.type-plugin #link-support{border-bottom:0;display:block;width:100%}.type-plugin #link-support a{padding-right:1.25rem}}.type-plugin span#developers:target~.entry-content #tab-changelog,.type-plugin span#developers:target~.entry-content #tab-developers,.type-plugin span#developers:target~.entry-content #tab-developers .plugin-development,.type-plugin span#developers:target~.entry-content #tab-developers~button,.type-plugin span#installation:target~.entry-content #tab-installation,.type-plugin span#releases:target~.entry-content #tab-releases,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~.entry-content #blocks,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~.entry-content #faq,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~.entry-content #screenshots,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~.entry-content #tab-description,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~.entry-content #tab-developers,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~.entry-content #tab-developers~button,.type-plugin span#reviews:target~.entry-content #tab-reviews{display:block}.type-plugin span#developers:target~.entry-content #tab-developers .plugin-contributors,.type-plugin span#installation:target~.entry-meta .plugin-contributors,.type-plugin span#releases:target~.entry-meta,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~.entry-content #tab-developers .plugin-development,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~.entry-meta .plugin-contributors,.type-plugin span#reviews:target~.entry-meta .plugin-contributors,.type-plugin span#reviews:target~.entry-meta .plugin-donate,.type-plugin span#reviews:target~.entry-meta .plugin-meta,.type-plugin span#reviews:target~.entry-meta .plugin-support{display:none}.type-plugin span#releases:target~.entry-content{width:100%}@media screen and (min-width:737px){.type-plugin .entry-content,.type-plugin .entry-meta{padding-left:0;padding-right:0}.type-plugin .entry-meta{float:right;width:30%}}.type-plugin .plugin-danger-zone h4{margin-top:var(--wp--preset--spacing--60)}.plugin-releases-listing{border-collapse:collapse;width:100%}.plugin-releases-listing tbody td:nth-child(4) div{font-size:14px}.plugin-releases-listing-actions{display:flex;flex-direction:column;gap:8px}@media screen and (min-width:34em){.plugin-releases-listing-actions{flex-direction:row}}.plugin-adopt-me{background:#e6f4fa;margin-top:36px;padding:12px}.plugin-adopt-me .widget-title{margin-top:0}.plugin-adopt-me p{margin-bottom:0}.widget.plugin-categorization{margin-top:var(--wp--style--block-gap)}.widget.plugin-categorization .widget-head h2{font-size:var(--wp--preset--font-size--heading-4);margin-bottom:.2rem;margin-top:0}.widget.plugin-categorization .widget-head a{font-size:var(--wp--preset--font-size--small)}.widget.plugin-categorization .widget-head a[href=""]{display:none}.widget.plugin-categorization p{font-size:var(--wp--preset--font-size--small);margin-top:.5rem}.widget.plugin-categorization~.plugin-meta li:first-child{border-top:1px solid var(--wp--preset--color--light-grey-1)}.committer-list,.support-rep-list{list-style:none;margin:0;padding:0}.committer-list li,.support-rep-list li{padding-bottom:.5rem}.committer-list li .remove,.support-rep-list li .remove{color:red;visibility:hidden}.committer-list li:hover .remove,.support-rep-list li:hover .remove{visibility:visible}.committer-list .avatar,.support-rep-list .avatar{float:left;margin-right:10px}.committer-list .spinner,.support-rep-list .spinner{position:relative}.committer-list .spinner:after,.support-rep-list .spinner:after{background:url(/wp-admin/images/spinner.gif) no-repeat 50%;background-size:20px 20px;content:"";display:block;height:20px;margin:-10px -10px 0 0;position:absolute;right:-50%;top:50%;transform:translateZ(0);width:20px}@media (min-resolution:120dpi),print{.committer-list .spinner:after,.support-rep-list .spinner:after{background-image:url(/wp-admin/images/spinner-2x.gif)}}.committer-list .new,.support-rep-list .new{margin-top:var(--wp--style--block-gap)}.plugin-contributors.read-more{border-bottom:1px solid var(--wp--preset--color--light-grey-1);max-height:200px;overflow:hidden;padding-bottom:1px}.plugin-contributors.read-more.toggled{max-height:none}.no-js .plugin-contributors.read-more{max-height:none;overflow:auto}.contributors-list{list-style-type:none;margin:0;padding:0}.contributors-list li{align-items:center;display:flex;margin-bottom:1rem}.contributors-list .avatar{float:left;margin-right:10px}.plugin-meta{font-size:var(--wp--preset--font-size--small);margin-top:var(--wp--style--block-gap)}.plugin-meta ul{list-style-type:none;margin:0;padding:0}.plugin-meta li{border-top:1px solid var(--wp--preset--color--light-grey-1);display:inline-block;padding:.5rem 0;position:relative;width:100%}.plugin-meta li strong{float:right;font-weight:500}.plugin-meta li .plugin-admin{font-size:var(--wp--preset--font-size--normal);font-weight:400}.plugin-meta li:first-child{border-top:0}.plugin-meta .languages,.plugin-meta .tags{float:right;text-align:right}.plugin-meta .tags{width:60%}.plugin-meta .languages button{font-size:var(--wp--preset--font-size--small);outline:revert}.plugin-meta .languages .popover{margin-top:8px}.plugin-meta .languages .popover-trigger{color:var(--wp--custom--link--color--text);text-decoration:underline}.plugin-meta .languages .popover-trigger:hover{text-decoration:underline}.plugin-meta [rel=tag]{background:var(--wp--preset--color--blueberry-4);border-radius:2px;color:var(--wp--preset--color--charcoal-1);display:inline-block;font-size:var(--wp--preset--font-size--extra-small);margin:2px;max-width:95%;overflow:hidden;padding:3px 6px;position:relative;text-decoration:none;text-overflow:ellipsis;white-space:nowrap;width:auto}.plugin-meta [rel=tag]:hover{text-decoration:underline}.popover{background-color:#fff;border:1px solid var(--wp--preset--color--light-grey-1);border-radius:2px;box-shadow:0 2px 10px #0000001a;display:none;left:0;margin-top:10px;max-width:300px;padding:1em 1em 2em;position:absolute;width:100%;z-index:100}.popover.is-top-right{left:auto;right:0}.popover.is-visible{display:block}.popover .popover-close{bottom:.5em;color:var(--wp--custom--link--color--text);font-size:small;position:absolute;right:.6em}.popover .popover-close:active,.popover .popover-close:focus,.popover .popover-close:hover{text-decoration:underline}.popover .popover-arrow{border:10px solid #0000;border-bottom:10px solid #ccc;border-top:none;height:0;position:absolute;right:20px;top:-10px;width:0;z-index:-1}.popover .popover-arrow:after{border:10px solid #0000;border-bottom:10px solid #fff;border-top:none;content:"";left:-10px;position:absolute;top:2px}.popover .popover-inner{text-align:left}.popover .popover-inner p:first-child{margin-top:0}.popover .popover-inner p:last-child{margin-bottom:0}.plugin-support .counter-container{margin-bottom:1rem;position:relative}.plugin-support .counter-back,.plugin-support .counter-bar{display:inline-block;height:30px;vertical-align:middle}.plugin-support .counter-back{background-color:var(--wp--preset--color--light-grey-2);width:100%}.plugin-support .counter-bar{background-color:var(--wp--preset--color--acid-green-2);display:block}.plugin-support .counter-count{font-size:var(--wp--preset--font-size--extra-small);left:8px;position:absolute;top:8px;width:100%;width:calc(100% - 8px)}@media screen and (min-width:737px){.plugin-support .counter-count{top:5px}}.home .widget,.widget-area.home .widget{display:inline-block;font-size:var(--wp--preset--font-size--small);margin:0;margin:var(--wp--style--block-gap);vertical-align:top;width:auto}@media screen and (min-width:737px){.home .widget,.widget-area.home .widget{margin:0;width:30%}.home .widget:first-child,.widget-area.home .widget:first-child{margin-right:5%}.home .widget:last-child,.widget-area.home .widget:last-child{margin-left:5%}}.home .widget select,.widget-area.home .widget select{max-width:100%}.entry-meta .widget-title{font-size:var(--wp--preset--font-size--heading-4)}body.single.single-plugin .entry-meta{font-size:var(--wp--preset--font-size--normal)}.widget-area{margin:0 auto;padding:var(--wp--preset--spacing--40) 0}.widget-area .widget-title{font-size:var(--wp--preset--font-size--heading-1);font-weight:var(--wp--custom--heading--typography--font-weight);margin-top:var(--wp--preset--spacing--50)}.widget-area .textwidget{text-wrap:pretty} \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/functions.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/functions.php index 424fcce2c7..37ee6f6bef 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/functions.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/functions.php @@ -28,13 +28,15 @@ require_once __DIR__ . '/src/blocks/plugin-card/index.php'; require_once __DIR__ . '/src/blocks/release-checks/index.php'; require_once __DIR__ . '/src/blocks/release-commits/index.php'; +require_once __DIR__ . '/src/blocks/release-confirmation/index.php'; +require_once __DIR__ . '/src/blocks/release-date/index.php'; require_once __DIR__ . '/src/blocks/release-draft/index.php'; -require_once __DIR__ . '/src/blocks/card/index.php'; -require_once __DIR__ . '/src/blocks/release-publish/index.php'; -require_once __DIR__ . '/src/blocks/release-result-item/index.php'; +require_once __DIR__ . '/src/blocks/release-details-form/index.php'; +require_once __DIR__ . '/src/blocks/release-check-item/index.php'; require_once __DIR__ . '/src/blocks/release-flags/index.php'; require_once __DIR__ . '/src/blocks/release-menu-options/index.php'; require_once __DIR__ . '/src/blocks/release-page/index.php'; +require_once __DIR__ . '/src/blocks/release-status/index.php'; // Block Configs require_once __DIR__ . '/inc/block-bindings.php'; @@ -461,47 +463,21 @@ function update_archive_description( $description ) { } add_filter( 'get_the_archive_description', __NAMESPACE__ . '\update_archive_description' ); - -/** - * Get's the plugin post object. - * - * @return WP_Post The plugin post object. - */ -function get_plugin() { - global $post; - - if ( 'plugin_release' === $post->post_type ) { - return get_post( $post->post_parent ); - } - - return $post; -} - -/** - * Filter the archive title to use custom string for business model. - * - * @return string Plugin slug. - */ -function get_plugin_slug() { - $plugin = get_plugin(); - - if ( ! $plugin ) { - return ''; - } - - return $plugin->post_name; -} - /** * Generates a Trac changeset link for a plugin. * + * @param string $parent_id The plugin ID. * @param string $previous_version The previous version of the plugin. * @param string $current_version The current version of the plugin. Default is 'trunk'. * * @return string The Trac changeset link. */ -function get_trac_changeset_link( $previous_version, $current_version = 'trunk' ) { - $plugin_slug = get_plugin_slug(); +function get_trac_changeset_link( $parent_id, $previous_version, $current_version = 'trunk' ) { + $plugin = get_post( $parent_id ); + + if ( ! $plugin ) { + return ''; + } $current_path = ( 'trunk' === $current_version ) ? 'trunk' @@ -509,7 +485,7 @@ function get_trac_changeset_link( $previous_version, $current_version = 'trunk' return sprintf( 'https://plugins.trac.wordpress.org/changeset?old_path=/%1$s/%2$s&new_path=/%1$s/tags/%3$s', - $plugin_slug, + $plugin->post_name, $current_path, $previous_version ); @@ -517,17 +493,16 @@ function get_trac_changeset_link( $previous_version, $current_version = 'trunk' /** * Get the releases for a plugin. - + * + * @param WP_Post $parent_id The release post. * * @return WP_Post[] The releases for the plugin. */ -function get_releases() { - $plugin = get_plugin(); - +function get_releases( $parent_id ) { $args = array( 'post_type' => 'plugin_release', 'posts_per_page' => -1, - 'post_parent' => $plugin->ID, + 'post_parent' => $parent_id, 'orderby' => 'date', 'order' => 'DESC', ); @@ -539,7 +514,7 @@ function get_releases() { * Get the previous version of a plugin. * * @param WP_Post $release_post The current release post. - * @param WP_Post[] $releases List of releases. + * @param WP_Post[] $release List of releases. * * @return string|null The previous version of the plugin. */ @@ -574,6 +549,7 @@ function get_previous_version( $release_post, $releases ) { * @return WP_Post|null The latest release of the plugin. */ function get_latest_release( $plugin_id ) { + $releases = get_releases( $plugin_id ); if ( empty( $releases ) ) { @@ -599,9 +575,8 @@ function get_blueprint_url( $download_url ) { */ $blueprint = wp_json_encode( array( - 'login' => true, - 'landingPage' => '/wp-admin/plugins.php', - 'steps' => array( + 'login' => true, + 'steps' => array( array( 'step' => 'installPlugin', 'pluginData' => array( @@ -615,151 +590,3 @@ function get_blueprint_url( $download_url ) { return 'https://playground.wordpress.net/#' . base64_encode( $blueprint ); } - -/** - * Get the link to the revision log for a set of commits. - * - * @param array $commits The commits to get the log link for. - * - * @return string The link to the revision log. - */ -function get_revision_log_link( $commits ) { - $plugin_slug = get_plugin_slug(); - - $base_url = sprintf( - 'https://plugins.trac.wordpress.org/log/%s/trunk', - $plugin_slug - ); - - if ( count( $commits ) < 2 ) { - return $base_url; - } - - $latest_commit = reset( $commits ); - $earliest_commit = end( $commits ); - - return sprintf( - '%1$s?rev=%2$s&stop_rev=%3$s', - $base_url, - $latest_commit['revision'], - $earliest_commit['revision'], - ); -} - -/** - * Get the link to the revision log for a set of commits. - * - * @param array $commits The commits to get the log link for. - * - * @return string The link to the revision log. - */ -function get_revision_changeset_link( $commits ) { - global $post; - - $plugin_slug = get_plugin_slug(); - - if ( count( $commits ) < 2 ) { - return sprintf( - 'https://plugins.trac.wordpress.org/log/%s/trunk', - $plugin_slug - ); - } - - $latest_commit = reset( $commits ); - $earliest_commit = end( $commits ); - - return sprintf( - 'https://plugins.trac.wordpress.org/changeset?new=%2$s@%1$s/trunk&old=%3$s@%1$s/trunk', - $plugin_slug, - $earliest_commit['revision'], - $latest_commit['revision'], - ); -} - -/** - * Formats plugin check results into an HTML list. - * - * @param array $results The plugin check results. - * @return string HTML formatted results. - */ -function format_plugin_check_results( $results ) { - if ( empty( $results ) ) { - return '

    ' . __( 'No issues found.', 'wporg-plugins' ) . '

    '; - } - - $output = '
      '; - - foreach ( $results as $result ) { - $type_class = isset( $result['type'] ) ? strtolower( $result['type'] ) : ''; - - $output .= sprintf( - '
    • %1$s %2$s
    • ', - esc_html( $result['message'] ), - ! empty( $result['docs'] ) - ? sprintf( - '%s', - esc_url( $result['docs'] ), - __( 'More Information', 'wporg-plugins' ) - ) - : '' - ); - } - - $output .= '
    '; - - return $output; -} - -/** - * Get the test run message. - * - * @param object $plugin_check_errors The plugin check errors. - * - * @return string The test run message. - */ -function get_test_run_message( $plugin_check_errors ) { - $plugin_check_link = sprintf( - '%s', - esc_url( 'https://wordpress.org/plugins/plugin-check' ), - esc_html__( 'Plugin Check (PCP)', 'wporg-plugins' ) - ); - - if ( $plugin_check_errors['verdict'] ) { - return sprintf( - /* translators: %1$s is a link to the Plugin Check (PCP) tool. */ - __( '%1$s found no issues.', 'wporg-plugins' ), - $plugin_check_link - ); - } - - $result_count = count( $plugin_check_errors['results'] ); - $message = sprintf( - /* translators: %s number of issues reported from test. */ - _n( '%s issue', '%s issues', $result_count, 'wporg-plugins' ), - $result_count - ); - - return sprintf( - '
    %1$s%2$s
    ', - sprintf( - /* translators: %1$s is a link to the Plugin Check (PCP) tool. */ - __( '%1$s completed with %2$s.', 'wporg-plugins' ), - $plugin_check_link, - $message - ), - format_plugin_check_results( $plugin_check_errors['results'] ), - ); -} - -/** - * Get the download link for a plugin. - * - * @param string $version The version of the plugin to download. - * - * @return string The download link for the plugin. - */ -function get_download_link( $version ) { - $plugin = get_plugin(); - - return Template::download_link( $plugin , $version ); -} \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/inc/block-config.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/inc/block-config.php index e4a95e0aa5..e068abf643 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/inc/block-config.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/inc/block-config.php @@ -7,6 +7,7 @@ use WordPressdotorg\Plugin_Directory\Tools; +add_action( 'init', __NAMESPACE__ . '\handle_publish_action' ); add_filter( 'wporg_block_navigation_menus', __NAMESPACE__ . '\add_site_navigation_menus' ); add_filter( 'wporg_query_filter_options_sort', __NAMESPACE__ . '\wporg_query_filter_options_sort' ); add_filter( 'wporg_query_filter_options_business_model', __NAMESPACE__ . '\wporg_query_filter_options_business_model' ); @@ -30,14 +31,14 @@ function add_site_navigation_menus( $menus ) { $url = 'https://' . $_SERVER['HTTP_HOST'] . parse_url( $_SERVER['REQUEST_URI'], PHP_URL_PATH ); $items = array( - 'plugins' => array( + 'plugins' => array( array( 'label' => __( 'Submit a plugin', 'wporg-plugins' ), - 'url' => '/developers/', + 'url' => '/developers/', ), array( - 'label' => __( 'My favorites', 'wporg-plugins' ), - 'url' => '/browse/favorites/', + 'label' => __( 'My favorites', 'wporg-plugins' ), + 'url' => '/browse/favorites/', 'className' => 'has-separator', ), ), @@ -48,7 +49,7 @@ function add_site_navigation_menus( $menus ) { ), array( 'label' => __( 'Community', 'wporg-plugins' ), - 'url' => is_search() ? esc_url( get_search_link() . '?plugin_business_model=community' ) : esc_url( $url . '?plugin_business_model=community' ), + 'url' => is_search() ? esc_url( get_search_link() . '?plugin_business_model=community' ) : esc_url( $url . '?plugin_business_model=community' ), 'term' => get_term_by( 'slug', 'community', 'plugin_business_model' ), ), array( @@ -73,15 +74,15 @@ function add_site_navigation_menus( $menus ) { 'label' => __( 'Popular', 'wporg-plugins' ), 'term' => get_term_by( 'slug', 'popular', 'plugin_section' ), ),*/ - ), + ) ); if ( ! is_user_logged_in() ) { global $wp; - $redirect_url = home_url( $wp->request ); + $redirect_url = home_url( $wp->request ); $items['plugins'][] = array( 'label' => __( 'Log in', 'wporg-plugins' ), - 'url' => wp_login_url( $redirect_url ), + 'url' => wp_login_url( $redirect_url ), ); } @@ -107,7 +108,7 @@ function wporg_query_filter_options_sort() { global $wp_query; $orderby = strtolower( $wp_query->query['orderby'] ?? '' ); $order = strtolower( $wp_query->query['order'] ?? '' ); - $sort = $orderby . ( $order ? '_' . $order : '' ); + $sort = $orderby . ( $order ? '_' . $order : '' ); $options = array( 'relevance' => __( 'Relevance', 'wporg-plugins' ), @@ -139,7 +140,7 @@ function wporg_query_filter_options_sort() { 'key' => 'orderby', 'action' => '', 'options' => $options, - 'selected' => array( $sort ), + 'selected' => [ $sort ], ); } @@ -149,7 +150,7 @@ function wporg_query_filter_options_business_model() { 'commercial' => __( 'Commercial', 'wporg-plugins' ), 'community' => __( 'Community', 'wporg-plugins' ), ); - $label = __( 'Type', 'wporg-plugins' ); + $label = __( 'Type', 'wporg-plugins' ); if ( get_query_var( 'plugin_business_model' ) && isset( $options[ get_query_var( 'plugin_business_model' ) ] ) ) { $label = sprintf( __( 'Type: %s', 'wporg-plugins' ), $options[ get_query_var( 'plugin_business_model' ) ] ); } @@ -159,25 +160,25 @@ function wporg_query_filter_options_business_model() { 'title' => __( 'Type', 'wporg-plugins' ), 'key' => 'plugin_business_model', 'action' => '', - 'options' => $options, - 'selected' => array( get_query_var( 'plugin_business_model' ) ), + 'options' => $options , + 'selected' => [ get_query_var( 'plugin_business_model' ) ], ); } function wporg_query_filter_options_plugin_category() { - $options = array(); + $options = []; - foreach ( get_terms( 'plugin_category', array( 'hide_empty' => true ) ) as $term ) { + foreach ( get_terms( 'plugin_category', [ 'hide_empty' => true ] ) as $term ) { $options[ $term->slug ] = $term->name; } - + $count = count( (array) get_query_var( 'plugin_category' ) ); $label = sprintf( /* translators: The dropdown label for filtering, %s is the selected term count. */ _n( 'Categories %s', 'Categories %s', number_format_i18n( $count ), 'wporg-plugins' ), $count ); - + return array( 'label' => $label, 'title' => __( 'Category', 'wporg-plugins' ), @@ -228,9 +229,10 @@ function wporg_query_filter_in_form( $key ) { } // Temporary for feature flag - if ( isset( $_GET['show_filters'] ) ) { + if ( isset( $_GET['show_filters'] ) ) { echo ''; } + } function wporg_query_total_label( $label, $count ) { @@ -270,8 +272,8 @@ function wporg_query_total_label( $label, $count ) { */ function get_favorite_settings( $settings, $post_id ) { return array( - 'is_favorite' => Tools::favorited_plugin( $post_id ), - 'add_callback' => function ( $_post_id ) { + 'is_favorite' => Tools::favorited_plugin( $post_id ), + 'add_callback' => function( $_post_id ) { $result = (bool) Tools::favorite_plugin( $_post_id, get_current_user_id(), true ); // `favorite_plugin` can return false for a number of reasons (not logged in, no plugin found, ) if ( ! $result ) { @@ -279,7 +281,7 @@ function get_favorite_settings( $settings, $post_id ) { } return $result; }, - 'delete_callback' => function ( $_post_id ) { + 'delete_callback' => function( $_post_id ) { $result = (bool) Tools::favorite_plugin( $_post_id, get_current_user_id(), false ); // `favorite_plugin` can return false for a number of reasons (not logged in, no plugin found, ) if ( ! $result ) { @@ -311,7 +313,7 @@ function set_rating_data( $data, $post_id ) { /** * Why do we multiply the average rating by 20? - * The themes API does it this way, and the rating plugin was built to fit that. + * The themes API does it this way, and the rating plugin was built to fit that. * Instead of redoing everything, multiplying here keeps things simple and works well. * * @see theme-directory/class-themes-api.php for more info. @@ -319,10 +321,10 @@ function set_rating_data( $data, $post_id ) { $adjusted_rating = $rating * 20; return array( - 'rating' => $adjusted_rating, + 'rating' => $adjusted_rating, 'ratingsCount' => array_sum( $ratings ), - 'ratings' => $ratings, - 'supportUrl' => esc_url( 'https://wordpress.org/support/plugin/' . $post->post_name . '/reviews/' ), + 'ratings' => $ratings, + 'supportUrl' => esc_url( 'https://wordpress.org/support/plugin/' . $post->post_name . '/reviews/' ) ); } @@ -336,8 +338,7 @@ function filter_search_block( $block_content ) { // Remove the required attribute $block_content = preg_replace( '/(]*)\s+required\s*([^>]*)>/', '$1$2>', $block_content ); - /* - Temporarily disable this until filters are enabled. + /* Temporarily disable this until filters are enabled. // Insert the current query filters into the search form. ob_start(); wporg_query_filter_in_form( 's' ); @@ -367,9 +368,9 @@ function filter_site_title_block( $block_content ) { /** * Filter the navigation to add the current item indicator when no business model is selected. - * + * * @param string $block_content - * @param array $block + * @param array $block * @return string */ function filter_navigation_block( $block_content, $block ) { @@ -382,10 +383,10 @@ function filter_navigation_block( $block_content, $block ) { if ( get_query_var( 'plugin_business_model' ) ) { - // The menu doesn't select properly if viewing /tags/ or /browse/. + // The menu doesn't select properly if viewing /tags/ or /browse/. if ( get_query_var( 'browse' ) || get_query_var( 'plugin_tags' ) ) { $tags = new \WP_HTML_Tag_Processor( $block_content ); - + while ( $tags->next_tag( 'li' ) ) { $tags->set_bookmark( 'parent-li' ); $tags->next_tag( 'a' ); @@ -420,9 +421,9 @@ function filter_navigation_block( $block_content, $block ) { /** * Increase the visibilit of the language suggest bar to recruit translators on plugin page. - * + * * @see https://github.com/WordPress/wordpress.org/issues/301 - * + * * @param string $block_content * @return string */ @@ -437,14 +438,21 @@ function filter_language_suggest( $block_content ) { return $html->get_updated_html(); } +/** + * Handle form that publishes or discards a release. + */ +function handle_publish_action() { + if ( isset( $_POST['publish_release_nonce'] ) && wp_verify_nonce( $_POST['publish_release_nonce'], 'publish-release-action' ) ) { + if ( 'publish' === $_POST['action'] ) { + var_dump('publish: not yet implemented'); + } elseif ('discard' === $_POST['action']) { + var_dump('discard: not yet implemented'); + } + } +} + /* * Filter the query to show only the children of the plugin. - * - * @param array $query The query arguments. - * @param string $block The block name. - * @param WP_Post $page The current page. - * - * @return array */ function modify_block_query_var( $query, $block, $page ) { if ( 'plugin_release' !== $query['post_type'] ) { diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/patterns/releases-list.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/patterns/releases-list.php deleted file mode 100644 index 4dd778abe5..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/patterns/releases-list.php +++ /dev/null @@ -1,49 +0,0 @@ - - - -
    - - -
    - -
    - -
    - - -
    - - - -
    - -
    - -
    - - -
    - - - - - - - - - - -

    - - - -
    - diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/card/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/card/render.php deleted file mode 100644 index f4ac504879..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/card/render.php +++ /dev/null @@ -1,27 +0,0 @@ - -
    - -

    - {$block->attributes['title']} -

    - - $content -
    - -HTML; - -$output = sprintf( - '
    %2$s
    ', - wp_kses_data( get_block_wrapper_attributes() ), - $html, -); - -echo do_blocks( $output ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/card/style.scss b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/card/style.scss deleted file mode 100644 index 383d5f834b..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/card/style.scss +++ /dev/null @@ -1,4 +0,0 @@ -.wp-block-wporg-release-draft { - font-size: var(--wp--preset--font-size--small); - -} \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-result-item/block.json b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-check-item/block.json similarity index 63% rename from wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-result-item/block.json rename to wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-check-item/block.json index 047300ee75..4751ae42a8 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-result-item/block.json +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-check-item/block.json @@ -1,17 +1,18 @@ { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 2, - "name": "wporg/release-result-item", + "name": "wporg/release-check-item", "version": "0.1.0", - "title": "Release Result Item", + "title": "Release Check Item", "category": "design", "icon": "", - "description": "A block to display release draft result item.", + "description": "A block to display release draft check item.", "textdomain": "wporg", "attributes": { "status": { "type": "string", - "enum": [ "error", "warning", "success" ] + "enum": [ "error", "warning", "success" ], + "default": "success" } }, "supports": { diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/card/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-check-item/index.js similarity index 100% rename from wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/card/index.js rename to wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-check-item/index.js diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-result-item/index.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-check-item/index.php similarity index 72% rename from wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-result-item/index.php rename to wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-check-item/index.php index d8c72264cd..fec62da587 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-result-item/index.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-check-item/index.php @@ -1,12 +1,12 @@ ' . __( 'No issues found.', 'wporg-plugins' ) . '

    '; + } + + $output = '
      '; + + foreach ( $results as $result ) { + $type_class = isset( $result['type'] ) ? strtolower( $result['type'] ) : ''; + + $output .= sprintf( + '
    • %1$s %2$s
    • ', + esc_html( $result['message'] ), + ! empty( $result['docs'] ) + ? sprintf( + '%s', + esc_url( $result['docs'] ), + __( 'More Information', 'wporg-plugins' ) + ) + : '' + ); + } + + $output .= '
    '; + + return $output; +} + +/** + * Get the counts of each error type. + * + * @param array $result The plugin check result. + * + * @return array Array of error type counts. + */ +function get_error_type_counts( $result ) { + return array_reduce( + $result ?? array(), + function ( $carry, $item ) { + if ( isset( $item['type'] ) ) { + $carry[ $item['type'] ] = ( $carry[ $item['type'] ] ?? 0 ) + 1; + } + return $carry; + }, + array( + 'ERROR' => 0, + 'WARNING' => 0, + ) + ); +} + +/** + * Get the test run message. + * + * @param object $plugin_check_errors The plugin check errors. + * + * @return string The test run message. + */ +function get_test_run_message( $plugin_check_errors ) { + + $plugin_check_link = sprintf( + '%s', + esc_url( 'https://wordpress.org/plugins/plugin-check' ), + esc_html__( 'Plugin Check (PCP)', 'wporg-plugins' ) + ); + + if ( $plugin_check_errors->verdict ) { + return sprintf( + /* translators: %1$s is a link to the Plugin Check (PCP) tool. */ + __( 'Passed the %1$s.', 'wporg-plugins' ), + $plugin_check_link + ); + } + + $counts = get_error_type_counts( $plugin_check_errors['results'] ); + + $error_message = sprintf( _n( '%s error', '%s errors', $counts['ERROR'], 'wporg-plugins' ), $counts['ERROR'] ); + $warning_message = sprintf( _n( '%s warning', '%s warnings', $counts['WARNING'], 'wporg-plugins' ), $counts['WARNING'] ); + $message = ''; + + if ( empty( $counts['ERROR'] ) ) { + $message = $warning_message; + } elseif ( empty( $counts['WARNING'] ) ) { + $message = $error_message; + } else { + /* translators: %1$s: number of errors, %2$s: number of warnings */ + $message = sprintf( + '%1$s and %2$s', + $error_message, + $warning_message + ); + } + + return sprintf( + '
    %1$s%2$s
    ', + sprintf( + /* translators: %1$s is a link to the Plugin Check (PCP) tool. */ + __( '%1$s completed with %2$s.', 'wporg-plugins' ), + $plugin_check_link, + $message + ), + format_plugin_check_results( $plugin_check_errors['results'] ), + ); +} + $plugin_check_errors = get_post_meta( get_post( $block->context['postId'] )->ID, 'plugin_check_result', true ); $heading = sprintf( @@ -36,8 +143,8 @@ // Create a block with the overall status. $status_block = sprintf( - '%2$s', - $plugin_check_errors['verdict'] ? 'success' : 'warning', + '%2$s', + $plugin_check_errors->verdict ? 'success' : 'error', get_test_run_message( $plugin_check_errors ) ); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-commits/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-commits/render.php index 827e1b442e..1f7388593b 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-commits/render.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-commits/render.php @@ -6,7 +6,10 @@ */ use WordPressdotorg\Plugin_Directory\Readme\Validator as Readme_Validator; -use function WordPressdotorg\Plugin_Directory\Theme\{get_plugin_slug, get_revision_log_link}; + +if ( ! current_user_can( 'plugin_admin_edit', $post ) ) { + return; +} if ( ! $block->context['postId'] ) { return; @@ -18,16 +21,79 @@ return '

    ' . __( 'No commits found.', 'wporg-plugins' ) . '

    '; } -// Newest commits first. -usort( - $commits, - function ( $a, $b ) { - return $b['date'] <=> $a['date']; +/** + * Count the number of files edited, added, and deleted in the given commits. + * + * @param array $commits Array of commits. + * @return array Associative array with keys 'edited', 'added', and 'deleted'. + */ +function count_file_changes( $commits ) { + $file_actions = array(); + + ksort( $commits ); + + foreach ( $commits as $commit ) { + if ( ! isset( $commit['actions'] ) || ! is_array( $commit['actions'] ) ) { + continue; + } + + foreach ( $commit['actions'] as $file_path => $action ) { + $file_actions[ $file_path ] = $action; + } + } + + $edited_files = array(); + $added_files = array(); + $deleted_files = array(); + + foreach ( $file_actions as $file_path => $action ) { + switch ( $action ) { + case 'M': + $edited_files[ $file_path ] = true; + break; + case 'A': + $added_files[ $file_path ] = true; + break; + case 'D': + $deleted_files[ $file_path ] = true; + break; + } + } + + return array( + 'edited' => count( $edited_files ), + 'added' => count( $added_files ), + 'deleted' => count( $deleted_files ), + ); +} + +/** + * Generate a summary of the changes made in the given commits. + * + * @param array $change_counts Associative array with keys 'edited', 'added', and 'deleted'. + * @return string Summary of the changes. + */ +function generate_summary( $change_counts ) { + $parts = array(); + + if ( $change_counts['added'] > 0 ) { + $parts[] = sprintf( '%d added', $change_counts['added'] ); + } + + if ( $change_counts['deleted'] > 0 ) { + $parts[] = sprintf( '%d deleted', $change_counts['deleted'] ); + } + + if ( $change_counts['edited'] > 0 ) { + $parts[] = sprintf( '%d edited', $change_counts['edited'] ); } -); -$maximum_commits = 5; -$sliced_commits = array_slice( $commits, 0, $maximum_commits ); + if ( empty( $parts ) ) { + return ''; + } + + return implode( ', ', $parts ); +} ?> @@ -41,59 +107,54 @@ function ( $a, $b ) { esc_attr__( 'Commits', 'wporg-plugins' ) ); + $change_counts = count_file_changes( $commits ); + $summary = generate_summary( $change_counts ); + + $subheading = sprintf( + ' + + ', + $summary + ); + echo do_blocks( $heading ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped + echo do_blocks( $subheading ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?> -
      +
      • + + ID, 20 ); ?> + display_name ); ?> + + %2$s', - esc_url( - sprintf( - 'https://plugins.trac.wordpress.org/changeset/%1$s/%2$s/trunk', - $commit['revision'], - get_plugin_slug() - ) - ), - esc_html( $commit['message'] ) - ); - ?> - + $release_post = get_post( $block->context['postId'] ); + $parent_post = get_post( $release_post->post_parent ); - - -
      • + - $maximum_commits ) : ?> -
      • - - - -
      • -
    diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-commits/style.scss b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-commits/style.scss index dde5a9ffd6..90f8d10051 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-commits/style.scss +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-commits/style.scss @@ -1,17 +1,16 @@ .wp-block-wporg-release-commits { margin-top: 0 !important; -} -.wp-block-wporg-release-commit-list { - display: flex; - flex-direction: column; - gap: 8px; - list-style: none; + ul { + display: flex; + flex-direction: column; + gap: 8px; + list-style: none; + } li { display: flex; - gap: inherit; - align-items: center; + gap: 8px; } } @@ -20,13 +19,4 @@ align-items: center; gap: 8px; font-weight: 500; -} - -.wp-block-wporg-release-commit-by-line { - color: var(--wp--preset--color--charcoal-4) !important; - font-size: 12px; - - a { - color: var(--wp--preset--color--charcoal-4) !important; - } } \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/card/block.json b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-confirmation/block.json similarity index 67% rename from wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/card/block.json rename to wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-confirmation/block.json index be5a2f5c8f..89f4a9bf8b 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/card/block.json +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-confirmation/block.json @@ -1,19 +1,14 @@ { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 2, - "name": "wporg/card", + "name": "wporg/release-confirmation", "version": "0.1.0", - "title": "Release Card", + "title": "Release Confirmation Banner.", "category": "design", "icon": "", - "description": "A block to display a card.", + "description": "A block to display release confirmation banner.", "textdomain": "wporg", - "attributes": { - "title": { - "type": "string", - "default": "" - } - }, + "attributes": {}, "supports": { "html": false, "interactivity": true diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-publish/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-confirmation/index.js similarity index 100% rename from wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-publish/index.js rename to wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-confirmation/index.js diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-confirmation/index.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-confirmation/index.php new file mode 100644 index 0000000000..8e7d5b81af --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-confirmation/index.php @@ -0,0 +1,22 @@ +context['postId'] ) { + return; +} + +$release_post = get_post( $block->context['postId'] ); +if ( ! $release_post ) { + return; +} + +?> +
    > + + + +
    +

    + + + +

    + + + +
    +
    + +
    + +
    + +
    +
    + + +
    + +
    diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-confirmation/style.scss b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-confirmation/style.scss new file mode 100644 index 0000000000..cd1d58a3aa --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-confirmation/style.scss @@ -0,0 +1,4 @@ +.wp-block-wporg-release-confirmation .wporg-release-confirmation-actions { + display: flex; // I'm not sure why they are not working. + gap: 8px; +} \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-date/block.json b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-date/block.json new file mode 100644 index 0000000000..f27b4236b9 --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-date/block.json @@ -0,0 +1,19 @@ +{ + "$schema": "https://schemas.wp.org/trunk/block.json", + "apiVersion": 2, + "name": "wporg/release-date", + "version": "0.1.0", + "title": "Release Date", + "category": "design", + "icon": "", + "description": "A block to display release date.", + "textdomain": "wporg", + "attributes": {}, + "supports": { + "html": false + }, + "usesContext": [ "postId" ], + "editorScript": "file:./index.js", + "render": "file:./render.php", + "style": "file:./style-index.css" +} \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-date/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-date/index.js new file mode 100644 index 0000000000..9e4580b21f --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-date/index.js @@ -0,0 +1,27 @@ +/** + * WordPress dependencies + */ +import { Disabled } from '@wordpress/components'; +import { registerBlockType } from '@wordpress/blocks'; +import ServerSideRender from '@wordpress/server-side-render'; +import { useBlockProps } from '@wordpress/block-editor'; + +/** + * Internal dependencies + */ +import metadata from './block.json'; + +function Edit( { attributes, name } ) { + return ( +
    + + + +
    + ); +} + +registerBlockType( metadata.name, { + edit: Edit, + save: () => null, +} ); \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-publish/index.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-date/index.php similarity index 74% rename from wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-publish/index.php rename to wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-date/index.php index 52957ada81..0f4c00008a 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-publish/index.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-date/index.php @@ -1,12 +1,12 @@ context['postId'] ) { + return; +} + +$post = get_post( $block->context['postId'] ); +if ( ! $post ) { + return; +} + +if ( 'publish' !== $post->post_status ) { + return 3; +} + +echo do_blocks( '' ); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-publish/block.json b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-details-form/block.json similarity index 55% rename from wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-publish/block.json rename to wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-details-form/block.json index 72cf2534ae..f0634c46e0 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-publish/block.json +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-details-form/block.json @@ -1,21 +1,20 @@ { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 2, - "name": "wporg/release-publish", + "name": "wporg/release-details-form", "version": "0.1.0", - "title": "Release Publish", + "title": "Release Details Form", "category": "design", "icon": "", - "description": "A block to display release publish view.", + "description": "A block to display release details form.", "textdomain": "wporg", "attributes": {}, "supports": { "html": false, "interactivity": true }, - "usesContext": [ "postId", "pluginSlug" ], + "usesContext": [ "postId" ], "editorScript": "file:./index.js", "render": "file:./render.php", - "style": "file:./style-index.css", - "viewScriptModule": "file:./view.js" + "style": "file:./style-index.css" } \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-result-item/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-details-form/index.js similarity index 100% rename from wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-result-item/index.js rename to wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-details-form/index.js diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-details-form/index.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-details-form/index.php new file mode 100644 index 0000000000..d2b7cbe0a4 --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-details-form/index.php @@ -0,0 +1,22 @@ +context['postId'] ) ) { return; } -$release_post = get_post( $block->context['postId'] ); +$release_post = get_post( $block->context['postId'] ); +$current_version = get_post_meta( $block->context['postId'], 'release_version', true ); +$tested_up_to = get_post_meta( $block->context['postId'], 'release_tested', true ); // Bail if the release post does not exist. if ( ! $release_post ) { return; } -$current_version = get_post_meta( $block->context['postId'], 'release_version', true ); -$tested_up_to = get_post_meta( $block->context['postId'], 'release_tested', true ); - /** * Returns whether the tested_up_to value is recent. * @@ -49,17 +49,20 @@ function has_recently_been_tested( $tested_up_to ) { return $tested_major >= $latest_major; } + /** * Generate the HTML for a release item content block. * * @param string $label The label for the item. + * @param string $value The value for the item. * @param string $content The additional content or description. * @return string The formatted HTML content for the release item. */ -function get_release_item_content( $label, $content ) { +function get_release_item_content( $label, $value, $content ) { return sprintf( - '
    %1$s
    %2$s
    ', - esc_html( $label ), + '
    %1$s: %2$s
    %3$s
    ', + wp_kses_post( $label ), + wp_kses_post( $value ), wp_kses_post( $content ) ); } @@ -74,7 +77,7 @@ function get_release_item_content( $label, $content ) { function get_release_check_item( $status, $content ) { return do_blocks( sprintf( - '%2$s', + '%2$s', esc_attr( $status ), $content ) @@ -84,74 +87,23 @@ function get_release_check_item( $status, $content ) { /** * Generate the block content for the version number check item. * - * @param bool $verdict Whether the version number is valid. - * @param string $value The current version number. - * - * @return string The block content. - */ -function get_changelog_check_item() { - $label = __( 'Update your changelog with key changes.', 'wporg-plugins' ); - $info_text = sprintf( - 'Learn more about writing useful changelogs.', - esc_url( 'https://developer.wordpress.org/plugins/wordpress-org/plugin-developer-faq/#what-should-be-in-my-changelog' ), - ); - - $content = get_release_item_content( $label, $info_text ); - - return get_release_check_item( 'default', $content ); -} - -/** - * Generate the block content for the version number check item. - * - * @param bool $verdict Whether the version number is valid. - * @param string $value The current version number. - * - * @return string The block content. - */ -function get_view_diff_check_item( $post ) { - $label = __( 'Review your changes.', 'wporg-plugins' ); - $commits = get_post_meta( $post->ID, 'release_commit_log', true ); - $plugin = get_post( $post->post_parent ); - $info_text = sprintf( - /* translators: %s: URL to the plugin in the Plugin Directory */ - __( 'Scan through your changeset before publishing.', 'wporg-plugins' ), - esc_url( get_revision_changeset_link( $plugin->post_name, $commits ) ) - ); - $content = get_release_item_content( $label, $info_text ); - - return get_release_check_item( 'default', $content ); -} - -/** - * Generate the block content for the version number check item. - * - * @param bool $verdict Whether the version number is valid. - * @param string $value The current version number. + * @param bool $verdict Whether the version number is valid. + * @param string $value The current version number. + * @param WP_Post $release_post The release post object. * * @return string The block content. */ -function get_version_number_check_item( $verdict, $value ) { - $label = __( 'Increment your version number.', 'wporg-plugins' ); - - $info_text = sprintf( - /* translators: %s: The current version number */ - __( 'Current version: %s', 'wporg-plugins' ), - '' . $value . '', - ); - - $status = ''; +function get_version_number_check_item( $verdict, $value, $release_post ) { + $label = __( 'Version number', 'wporg-plugins' ); + $info_text = __( 'It looks like plugin version was incremented appropriately.', 'wporg-plugins' ); + $status = 'success'; if ( ! $verdict ) { $status = 'error'; - $info_text = sprintf( - /* translators: %s: The current version number */ - __( 'Your plugin\'s version number %s must be incremented before you can publish.', 'wporg-plugins' ), - '' . $value . '', - ); + $info_text = __( 'Please increment your plugin\'s version number.', 'wporg-plugins' ); } - $content = get_release_item_content( $label, $info_text ); + $content = get_release_item_content( $label, $value, $info_text ); return get_release_check_item( $status, $content ); } @@ -159,32 +111,29 @@ function get_version_number_check_item( $verdict, $value ) { /** * Generate the block content for the "Tested up to" check item. * - * @param bool $verdict Whether the tested up to value is recent. - * @param string $value The tested up to value. - * @param WP_Post $release_post The release post object. - * + * @param string $value The tested up to value. * @return string The block content. */ function get_tested_up_to_check_item( $verdict, $value, $release_post ) { $label = __( - 'Test your plugin with the latest version of WordPress.', + 'Tested up to', 'wporg-plugins' ); - $status = ''; + $status = 'success'; - $plugin = get_post( $release_post->post_parent ); + $parent = get_post( $release_post->post_parent ); $blueprint_url = get_blueprint_url( sprintf( 'https://downloads.wordpress.org/plugin/%s.zip', - $plugin->post_name, + $parent->post_name, ) ); $info_text = sprintf( - /* translators: %s: The Tested Up to value */ - __( 'Tested up to: %s', 'wporg-plugins' ), - '' . $value . '', + /* translators: %s: URL to the plugin in the Plugin Directory */ + __( 'Everything looks great! Playground makes testing easy. If needed, you can test it here.', 'wporg-plugins' ), + esc_url( $blueprint_url ) ); if ( empty( $value ) ) { @@ -195,13 +144,12 @@ function get_tested_up_to_check_item( $verdict, $value, $release_post ) { $status = 'warning'; $info_text = sprintf( /* translators: %s: URL to the plugin in the Plugin Directory */ - __( 'Tested up to is %1$s. Test it now in Playground and update. ', 'wporg-plugins' ), - '' . $value . '', + __( 'Your plugin has been tested with recent versions of WordPress! Test it now in Playground.', 'wporg-plugins' ), esc_url( $blueprint_url ) ); } - $content = get_release_item_content( $label, $info_text ); + $content = get_release_item_content( $label, $value, $info_text ); return get_release_check_item( $status, $content ); } @@ -218,38 +166,22 @@ function get_tested_up_to_check_item( $verdict, $value, $release_post ) { data-wp-interactive="async-action-block" > - -

    %s

    - ', - esc_html__( 'Checklist', 'wporg-plugins' ) - ) + +

    %s

    + ', + esc_html__( 'Headers', 'wporg-plugins' ) ) - ?> + ); +?> +
      - - - +
    - - - //
    - //
    - //

    %s

    - //
    - // ', - // esc_html__( 'You need to increment your plugin version number and reload the page.', 'wporg-plugins' ) - // ); - // echo do_blocks( $block ); - ?> -
    - +
    +
    -
    - - - +
    + +
    + +
    + +

    + $publish_title +

    + +
    + + + +

    $publish_intro_text

    + + + +
    +
    + HTML; printf( diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-draft/style.scss b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-draft/style.scss index 383d5f834b..a7adf4781e 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-draft/style.scss +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-draft/style.scss @@ -1,4 +1,11 @@ .wp-block-wporg-release-draft { font-size: var(--wp--preset--font-size--small); + ul { + margin-top: var(--wp--preset--spacing--10); + padding: 0; + display: flex; + flex-direction: column; + gap: 12px; + } } \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-menu-options/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-menu-options/render.php index 61f288f3e5..4eda65229d 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-menu-options/render.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-menu-options/render.php @@ -1,11 +1,7 @@ context['postId'] ) { return; @@ -17,41 +13,43 @@ } $current_version = get_post_meta( $release_post->ID, 'release_version', true ); -$download_link = get_download_link( $release_post->post_parent, $current_version ); -$download_link_html = sprintf( + +$download_link = sprintf( '', - __( 'Download', 'wporg-plugins' ), - esc_url( $download_link ) + esc_html( 'Download', 'wporg-plugins' ), + esc_url( get_blueprint_url( Template::download_link( $release_post->post_parent, $current_version ) ) ) ); -$blueprint_link_html = sprintf( +$blueprint_link = sprintf( '', - __( 'Load in Playground', 'wporg-plugins' ), - esc_url( get_blueprint_url( get_download_link( $current_version ) ) ) + esc_html( 'Load in Playground', 'wporg-plugins' ), + esc_url( $encoded_blueprint_url ) ); -$changes_link_html = ''; -$releases = get_releases(); +$changes_link = ''; +$releases = get_releases( $release_post->post_parent ); $previous_version = get_previous_version( $release_post, $releases ); if ( null !== $previous_version ) { - $changes_link_html = sprintf( + $changes_link = sprintf( '', - __( 'View changes', 'wporg-plugins' ), - esc_url( get_trac_changeset_link( $previous_version, $current_version ) ) + esc_html( 'View changes', 'wporg-plugins' ), + esc_url( get_trac_changeset_link( $release_post->post_parent, $previous_version, $current_version ) ) ); } +$submenu = sprintf( + '%2$s%3$s%4$s', + esc_html( 'Release options', 'wporg-plugins' ), + $download_link, + $blueprint_link, + $changes_link +); + $navigation = sprintf( '%2$s', - __( 'Release options', 'wporg-plugins' ), - sprintf( - '%2$s%3$s%4$s', - __( 'Release options', 'wporg-plugins' ), - $download_link_html, - $blueprint_link_html, - $changes_link_html - ) + esc_html( 'Release options', 'release options label', 'wporg-plugins' ), + $submenu ); -echo do_blocks( $navigation ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped +echo do_blocks( $navigation ); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-page/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-page/render.php index f939f21d4b..878b57533b 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-page/render.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-page/render.php @@ -1,55 +1,88 @@ context['postId'] ) { +if ( ! current_user_can( 'plugin_admin_edit', $post ) ) { return; } -$plugin_post = get_post( $block->context['postId'] ); +$release_post = get_post( $post->ID ); -if ( ! $plugin_post ) { +if ( ! $release_post ) { return; } -$heading_text = __( 'Releases', 'wporg-plugins' ); - +// Why use `do_blocks` here? for some reason, just outputting the content directly doesn't work and context gets messed up. $markup = << -

    $heading_text

    +

    Releases

    -
    - - - +
    + + + + + + +
    + + +
    + +
    + +
    + + +
    + + + +
    + +
    + +
    + + +
    + + + + + + + + + + +

    There are no releases yet

    + + - +
    +
    HTML; -/** - * Create initial state for the async-action-block. - */ -wp_interactivity_state( - 'async-action-block', - array( - 'isCreatingRelease' => false, - ) -); -/** - * Create initial context for the async-action-block. - */ +// Interactivity API context +$form_context = array( + 'btnDefaultText' => 'Publish release', + 'btnLoadingText' => 'Publishing...', + 'preSubmitting' => false, + 'isWaiting' => false, + 'isComplete' => false, + 'errorMessage' => '', + 'pluginSlug' => $release_post->post_name, + 'nonce' => wp_create_nonce( 'wp_rest' ) +); printf( - '
    %3$s
    ', - wp_kses_data( get_block_wrapper_attributes() ), + '
    %4$s
    ', 'data-wp-interactive="async-action-block"', + wp_kses_data( get_block_wrapper_attributes() ), + wp_interactivity_data_wp_context( $form_context ), // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped do_blocks( $markup ) // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-page/view.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-page/view.js index 5047ca83e2..90ba4e75a9 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-page/view.js +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-page/view.js @@ -4,10 +4,17 @@ import { store, getContext } from '@wordpress/interactivity'; const { state } = store('async-action-block', { + state: { + get btnText() { + const { btnDefaultText, btnLoadingText } = getContext(); + + return state.isWaiting ? btnLoadingText : btnDefaultText; + }, + }, actions: { handlePreSubmit(event) { event.preventDefault(); - state.isCreatingRelease = true; + state.preSubmitting = true; const element = document.querySelector( '.wp-block-wporg-release-page' @@ -20,5 +27,49 @@ const { state } = store('async-action-block', { }); } }, + handleBackClick(event) { + event.preventDefault(); + state.preSubmitting = false; + }, + *handleSubmit(event) { + // Prevent default form submission + event.preventDefault(); + + debugger; + + // Set waiting state + state.isWaiting = true; + state.errorMessage = ''; + + const { pluginSlug, nonce, homeUrl } = getContext(); + + try { + const response = yield fetch( + '/plugins/wp-json/plugins/v2/plugin/clapback/release', + { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + 'X-WP-Nonce': nonce, + }, + body: JSON.stringify({ + plugin_slug: pluginSlug, + }), + } + ); + + const data = yield response.json(); + + // Update state based on response + if (data.success) { + } else { + state.errorMessage = data.message || 'Action failed'; + } + } catch (error) { + state.errorMessage = 'Network error occurred'; + } finally { + state.isWaiting = false; + } + }, }, }); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-publish/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-publish/render.php deleted file mode 100644 index 1f775eb1ea..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-publish/render.php +++ /dev/null @@ -1,350 +0,0 @@ -context['postId'] ) ) { - return; -} - -$release_post = get_post( $block->context['postId'] ); - -// Bail if the release post does not exist. -if ( ! $release_post ) { - return; -} - -$current_version = get_post_meta( $block->context['postId'], 'release_version', true ); -$tested_up_to = '6.7';// get_post_meta( $block->context['postId'], 'release_tested', true ); - -/** - * Returns whether the tested_up_to value is recent. - * - * @param string $tested_up_to The tested up to value. - * - * @return bool Whether the tested up to value is recent. - */ -function has_recently_been_tested( $tested_up_to ) { - global $wp_version; - - // If the tested up to value is empty, it's not recent. - if ( empty( $tested_up_to ) ) { - return false; - } - - $latest_release = $wp_version; - - if ( defined( 'WP_CORE_STABLE_BRANCH' ) ) { - $latest_release = WP_CORE_STABLE_BRANCH; - } - - $tested_major = (int) explode( '.', $tested_up_to )[0]; - $latest_major = (int) explode( '.', $latest_release )[0]; - - return $tested_major >= $latest_major; -} - -/** - * Generate the HTML for a release item content block. - * - * @param string $label The label for the item. - * @param string $content The additional content or description. - * @return string The formatted HTML content for the release item. - */ -function get_release_item_content( $label, $content ) { - return sprintf( - '
    %1$s
    %2$s
    ', - esc_html( $label ), - wp_kses_post( $content ) - ); -} - -/** - * Generate a release check item block with a specific status. - * - * @param string $status The status of the check item ('success' or 'error'). - * @param string $content The content to display inside the block. - * @return string The formatted block content. - */ -function get_release_check_item( $status, $content ) { - return do_blocks( - sprintf( - '%2$s', - esc_attr( $status ), - $content - ) - ); -} - -/** - * Generate the block content for the version number check item. - * - * @param bool $verdict Whether the version number is valid. - * @param string $value The current version number. - * - * @return string The block content. - */ -function get_changelog_check_item() { - $label = __( 'Update your changelog with key changes.', 'wporg-plugins' ); - $info_text = sprintf( - 'Learn more about writing useful changelogs.', - esc_url( 'https://developer.wordpress.org/plugins/wordpress-org/plugin-developer-faq/#what-should-be-in-my-changelog' ), - ); - - $content = get_release_item_content( $label, $info_text ); - - return get_release_check_item( 'default', $content ); -} - -/** - * Generate the block content for the version number check item. - * - * @param bool $verdict Whether the version number is valid. - * @param string $value The current version number. - * - * @return string The block content. - */ -function get_view_diff_check_item( $post ) { - $label = __( 'Review your changes.', 'wporg-plugins' ); - $commits = get_post_meta( $post->ID, 'release_commit_log', true ); - $info_text = sprintf( - /* translators: %s: URL to the plugin in the Plugin Directory */ - __( 'Double-check your changeset before publishing.', 'wporg-plugins' ), - esc_url( get_revision_changeset_link( $commits ) ) - ); - $content = get_release_item_content( $label, $info_text ); - - return get_release_check_item( 'default', $content ); -} - -/** - * Generate the block content for the version number check item. - * - * @param bool $verdict Whether the version number is valid. - * @param string $value The current version number. - * - * @return string The block content. - */ -function get_version_number_check_item( $verdict, $value ) { - $label = __( 'Increment your version number.', 'wporg-plugins' ); - - $info_text = sprintf( - /* translators: %s: The current version number */ - __( 'New version: %s', 'wporg-plugins' ), - '' . $value . '', - ); - - $status = ''; - - if ( ! $verdict ) { - $status = 'error'; - $info_text = sprintf( - /* translators: %s: The current version number */ - __( 'Your plugin\'s version number %s must be incremented before you can publish.', 'wporg-plugins' ), - '' . $value . '', - ); - } - - $content = get_release_item_content( $label, $info_text ); - - return get_release_check_item( $status, $content ); -} - -/** - * Generate the block content for the "Tested up to" check item. - * - * @param bool $verdict Whether the tested up to value is recent. - * @param string $value The tested up to value. - * - * @return string The block content. - */ -function get_tested_up_to_check_item( $verdict, $value ) { - $label = __( - 'Test your plugin with the latest version of WordPress.', - 'wporg-plugins' - ); - $status = ''; - - $info_text = sprintf( - /* translators: %s: The Tested Up to value */ - __( 'Tested up to: %s', 'wporg-plugins' ), - '' . $value . '', - ); - - if ( empty( $value ) ) { - $value = __( 'Unknown', 'wporg-plugins' ); - $status = 'error'; - $info_text = __( 'We weren\'t able to determine your "Tested up to" value.', 'wporg-plugins' ); - } elseif ( ! $verdict ) { - $status = 'warning'; - $info_text = sprintf( - /* translators: %s: URL to the plugin in the Plugin Directory */ - __( 'Tested up to is %1$s. Test it now in Playground and update your readme.txt. ', 'wporg-plugins' ), - '' . $value . '', - esc_url( - get_blueprint_url( - sprintf( - 'https://downloads.wordpress.org/plugin/%s.zip', - get_plugin_slug(), - ) - ) - ) - ); - } - - $content = get_release_item_content( $label, $info_text ); - - return get_release_check_item( $status, $content ); -} - -$latest_release = get_latest_release( $release_post->post_parent ); -$last_version = get_post_meta( $latest_release->ID, 'release_version', true ); -$version_pass = version_compare( $current_version, $last_version, '>' ); -$tested_up_to_pass = has_recently_been_tested( $tested_up_to ); - -$plugin_slug = get_plugin_slug(); -$form_context = array( - 'pluginSlug' => $plugin_slug, - 'nonce' => wp_create_nonce( 'wp_rest' ), - 'apiURL' => esc_url( rest_url( 'plugins/v2/plugin/' . $plugin_slug . '/publish' ) ), -); - -/** - * Create initial state for the async-action-block. - */ -wp_interactivity_state( - 'async-action-block', - array( - 'hasConfirmed' => false, - 'isPublishing' => false, - 'isPublished' => false, - 'hasError' => false, - 'errorMessage' => '', - ) -); - -?> - -
    - - > -
    - -

    %s

    - ', - __( 'Before releasing your plugin, make sure everything is up-to-date and ready for your users:', 'wporg-plugins' ) - ), - ); - ?> - -
    - -

    %s

    - ', - esc_html__( 'Checklist', 'wporg-plugins' ) - ) - ) - ?> -
      - - - - -
    - -
    - - -
    - -
    -
    - -
    - -
    - -
    -
    -
    -
    - -
    -
    - - -
    -
    - - -
    -

    -

    - -
    -
    - - - -
    -
    -
    - -
    - -
    -
    -

    -
    - ' - ); - ?> -
    -
    diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-publish/style.scss b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-publish/style.scss deleted file mode 100644 index c5b469231f..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-publish/style.scss +++ /dev/null @@ -1,29 +0,0 @@ -.wp-block-wporg-release-publish { - label { - display: block; - } - - .wp-block-wporg-release-result-item > div:last-child > div { - color: var(--wp--preset--color--charcoal-4); - } -} - -.wp-block-wporg-release-publish-user-confirm { - margin-top: var(--wp--preset--spacing--20); -} - -.wp-block-wporg-release-publish-actions { - display: flex; - margin-top: var(--wp--preset--spacing--20); - gap: 8px; - - button[disabled] { - opacity: 0.5; - } -} - -.wp-block-wporg-release-publish-spinner { - align-items: center; - display: flex; - gap: 6px; -} diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-publish/view.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-publish/view.js deleted file mode 100644 index 8e18cb48f0..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-publish/view.js +++ /dev/null @@ -1,78 +0,0 @@ -/** - * WordPress dependencies - */ -import { store, getContext } from '@wordpress/interactivity'; - -const { state } = store('async-action-block', { - state: { - get userHasConfirmed() { - return state.hasConfirmed; - }, - get isDefaultState() { - return ! state.isPublishing && !state.isPublished && !state.hasError; - }, - get isPublishingState() { - return state.isPublishing; - }, - get isPublishedState() { - return state.isPublished; - }, - }, - actions: { - handleReleaseConfirm() { - state.hasConfirmed = !state.hasConfirmed; - }, - handleBackClick(event) { - event.preventDefault(); - state.isCreatingRelease = false; - - // Make user reconfirm. - state.hasConfirmed = false; - }, - handlePageReload() { - window.location.reload(); - }, - *handleSubmit(event) { - event.preventDefault(); - - state.isPublishing = true; - state.errorMessage = ''; - - const { pluginSlug, nonce, apiURL } = getContext(); - - try { - const response = yield fetch( - apiURL, - { - method: 'POST', - headers: { - 'Content-Type': 'application/json', - 'X-WP-Nonce': nonce, - }, - body: JSON.stringify({ - plugin_slug: pluginSlug, - }), - } - ); - - if( ! response.ok ) { - try { - const error = yield response.json(); - throw new Error( error.message ); - } catch ( error ) { // Handle cases where json is not returned, like a gateway timeout. - throw new Error( 'An error occurred while publishing the release.' ); - } - } - - state.isPublished = true; - - } catch (error) { - state.errorMessage = error.message; - state.hasError = true; - state.isPublishing = false; - } finally { - state.isPublishing = false; - } - }, - } -}); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-result-item/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-result-item/render.php deleted file mode 100644 index d2a7346ba1..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-result-item/render.php +++ /dev/null @@ -1,24 +0,0 @@ -
  • > -
    - attributes['status'] ) : ?> - - - - - - attributes['status'] ) : ?> - - - - attributes['status'] ) : ?> - - - - - - - -
    - - inner_html ); ?> -
  • diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-status/block.json b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-status/block.json new file mode 100644 index 0000000000..45fe373ab2 --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-status/block.json @@ -0,0 +1,19 @@ +{ + "$schema": "https://schemas.wp.org/trunk/block.json", + "apiVersion": 2, + "name": "wporg/release-status", + "version": "0.1.0", + "title": "Release Status", + "category": "design", + "icon": "", + "description": "A block to display release status.", + "textdomain": "wporg", + "attributes": {}, + "supports": { + "html": false + }, + "usesContext": [ "postId" ], + "editorScript": "file:./index.js", + "render": "file:./render.php", + "style": "file:./style-index.css" +} \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-status/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-status/index.js new file mode 100644 index 0000000000..a52cd322ed --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-status/index.js @@ -0,0 +1,28 @@ +/** + * WordPress dependencies + */ +import { Disabled } from '@wordpress/components'; +import { registerBlockType } from '@wordpress/blocks'; +import ServerSideRender from '@wordpress/server-side-render'; +import { useBlockProps } from '@wordpress/block-editor'; + +/** + * Internal dependencies + */ +import metadata from './block.json'; +import './style.scss'; + +function Edit( { attributes, name } ) { + return ( +
    + + + +
    + ); +} + +registerBlockType( metadata.name, { + edit: Edit, + save: () => null, +} ); \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/card/index.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-status/index.php similarity index 65% rename from wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/card/index.php rename to wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-status/index.php index 2e69df2f57..20c2397bf2 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/card/index.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-status/index.php @@ -1,12 +1,12 @@ context['postId'] ) { + return; +} + +$post = get_post( $block->context['postId'] ); +if ( ! $post ) { + return; +} + +if('draft' != $post->post_s) { + return; +} +?> + +
    > + post_status )->label; ?> +
    diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-status/style.scss b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-status/style.scss new file mode 100644 index 0000000000..d89d64b6f6 --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-status/style.scss @@ -0,0 +1,6 @@ +.wp-block-wporg-release-status { + padding: 2px 10px; + border: 1px solid var(--wp--preset--color--blueberry-3); + font-size: var(--wp--preset--font-size--extra-small); + border-radius: var(--wp--custom--button--border--radius); +} \ No newline at end of file From c949b07c4c375dbb86a2ccdf1737408f0efb1e99 Mon Sep 17 00:00:00 2001 From: StevenDufresne Date: Tue, 10 Dec 2024 02:08:57 +0000 Subject: [PATCH 48/84] Setup the saving sate. --- .../build/blocks/archive-page/index.asset.php | 2 +- .../build/blocks/archive-page/index.js | 184 +-------- .../build/blocks/card/block.json | 27 ++ .../build/blocks/card/index.asset.php | 1 + .../build/blocks/card/index.js | 1 + .../build/blocks/card/render.php | 27 ++ .../build/blocks/card/style-index.css | 1 + .../category-navigation/index.asset.php | 2 +- .../build/blocks/category-navigation/index.js | 184 +-------- .../build/blocks/filter-bar/index.asset.php | 2 +- .../build/blocks/filter-bar/index.js | 184 +-------- .../build/blocks/front-page/index.asset.php | 2 +- .../build/blocks/front-page/index.js | 184 +-------- .../build/blocks/plugin-card/index.asset.php | 2 +- .../build/blocks/plugin-card/index.js | 184 +-------- .../build/blocks/plugin-card/view.asset.php | 2 +- .../build/blocks/plugin-card/view.js | 37 +- .../blocks/release-checks/index.asset.php | 2 +- .../build/blocks/release-checks/index.js | 299 +-------------- .../build/blocks/release-checks/render.php | 119 +----- .../blocks/release-checks/style-index.css | 13 +- .../blocks/release-commits/index.asset.php | 2 +- .../build/blocks/release-commits/index.js | 299 +-------------- .../build/blocks/release-commits/render.php | 155 +++----- .../blocks/release-commits/style-index.css | 26 +- .../build/blocks/release-date/render.php | 11 +- .../blocks/release-details-form/block.json | 3 +- .../release-details-form/index.asset.php | 2 +- .../blocks/release-details-form/index.js | 2 +- .../blocks/release-details-form/render.php | 152 +++++--- .../release-details-form/style-index.css | 6 +- .../blocks/release-draft copy/block.json | 3 +- .../blocks/release-draft copy/index.asset.php | 2 +- .../build/blocks/release-draft copy/index.js | 2 +- .../blocks/release-draft copy/render.php | 111 +++--- .../blocks/release-draft copy/style-index.css | 4 - .../blocks/release-draft-card/block.json | 27 ++ .../blocks/release-draft-card/index.asset.php | 1 + .../build/blocks/release-draft-card/index.js | 298 +++++++++++++++ .../blocks/release-draft-card/render.php | 25 ++ .../blocks/release-draft-card/style-index.css | 8 + .../blocks/release-draft-content/block.json | 27 ++ .../release-draft-content/index.asset.php | 1 + .../blocks/release-draft-content/index.js | 298 +++++++++++++++ .../blocks/release-draft-content/render.php | 25 ++ .../release-draft-content/style-index.css | 8 + .../blocks/release-draft/index.asset.php | 2 +- .../build/blocks/release-draft/index.js | 299 +-------------- .../build/blocks/release-draft/render.php | 96 ++--- .../blocks/release-draft/style-index.css | 16 +- .../build/blocks/release-draft/view.asset.php | 2 +- .../build/blocks/release-draft/view.js | 45 ++- .../blocks/release-flags/index.asset.php | 2 +- .../build/blocks/release-flags/index.js | 184 +-------- .../release-menu-options/index.asset.php | 2 +- .../blocks/release-menu-options/index.js | 299 +-------------- .../blocks/release-menu-options/render.php | 52 +-- .../release-menu-options/style-index.css | 41 +- .../build/blocks/release-page/index.asset.php | 2 +- .../build/blocks/release-page/index.js | 299 +-------------- .../build/blocks/release-page/render.php | 93 ++--- .../build/blocks/release-page/style-index.css | 13 +- .../build/blocks/release-page/view.asset.php | 2 +- .../build/blocks/release-page/view.js | 137 +------ .../blocks/release-publish-release/block.json | 23 ++ .../release-publish-release/index.asset.php | 1 + .../blocks/release-publish-release/index.js | 298 +++++++++++++++ .../release-publish-release}/render.php | 152 +++++--- .../release-publish-release/style-index.css | 17 + .../build/blocks/release-publish/block.json | 24 ++ .../blocks/release-publish/index.asset.php | 1 + .../build/blocks/release-publish/index.js | 1 + .../build/blocks/release-publish/render.php | 350 ++++++++++++++++++ .../blocks/release-publish/style-index.css | 1 + .../blocks/release-publish/view.asset.php | 1 + .../build/blocks/release-publish/view.js | 1 + .../release-result-item copy/block.json | 28 ++ .../release-result-item copy/index.asset.php | 1 + .../blocks/release-result-item copy/index.js | 298 +++++++++++++++ .../release-result-item copy}/render.php | 0 .../release-result-item copy/style-index.css | 17 + .../blocks/release-result-item/block.json | 27 ++ .../release-result-item/index.asset.php | 1 + .../build/blocks/release-result-item/index.js | 1 + .../blocks/release-result-item/render.php | 24 ++ .../release-result-item/style-index.css | 1 + .../blocks/release-result-list/block.json | 18 + .../release-result-list/index.asset.php | 1 + .../build/blocks/release-result-list/index.js | 298 +++++++++++++++ .../blocks/release-result-list/render.php | 22 ++ .../release-result-list/style-index.css | 17 + .../build/blocks/release-status/render.php | 6 +- .../build/blocks/search-page/index.asset.php | 2 +- .../build/blocks/search-page/index.js | 184 +-------- .../blocks/single-plugin/index.asset.php | 2 +- .../build/blocks/single-plugin/index.js | 184 +-------- .../client/components/plugin/_spinner.scss | 49 +++ .../client/styles/components/_components.scss | 1 + .../pub/wporg-plugins-2024/css/style-rtl.css | 2 +- .../pub/wporg-plugins-2024/css/style.css | 2 +- .../pub/wporg-plugins-2024/functions.php | 215 +++++++++-- .../wporg-plugins-2024/inc/block-config.php | 86 ++--- .../patterns/releases-list.php | 49 +++ .../{release-details-form => card}/block.json | 13 +- .../{release-check-item => card}/index.js | 0 .../blocks/{release-date => card}/index.php | 8 +- .../src/blocks/card/render.php | 27 ++ .../src/blocks/card/style.scss | 4 + .../src/blocks/release-checks/render.php | 119 +----- .../src/blocks/release-commits/render.php | 155 +++----- .../src/blocks/release-commits/style.scss | 24 +- .../src/blocks/release-confirmation/index.php | 22 -- .../blocks/release-confirmation/render.php | 45 --- .../blocks/release-confirmation/style.scss | 4 - .../src/blocks/release-date/block.json | 19 - .../src/blocks/release-date/index.js | 27 -- .../src/blocks/release-date/render.php | 16 - .../src/blocks/release-details-form/index.php | 22 -- .../blocks/release-details-form/style.scss | 15 - .../src/blocks/release-draft/render.php | 96 ++--- .../src/blocks/release-draft/style.scss | 7 - .../blocks/release-menu-options/render.php | 52 +-- .../src/blocks/release-page/render.php | 93 ++--- .../src/blocks/release-page/view.js | 53 +-- .../block.json | 11 +- .../index.js | 0 .../index.php | 8 +- .../src/blocks/release-publish/render.php | 350 ++++++++++++++++++ .../src/blocks/release-publish/style.scss | 29 ++ .../src/blocks/release-publish/view.js | 78 ++++ .../block.json | 9 +- .../index.js | 0 .../index.php | 8 +- .../src/blocks/release-result-item/render.php | 24 ++ .../style.scss | 8 +- .../src/blocks/release-status/block.json | 19 - .../src/blocks/release-status/index.js | 28 -- .../src/blocks/release-status/render.php | 19 - .../src/blocks/release-status/style.scss | 6 - 139 files changed, 3784 insertions(+), 4583 deletions(-) create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/card/block.json create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/card/index.asset.php create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/card/index.js create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/card/render.php create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/card/style-index.css create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-card/block.json create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-card/index.asset.php create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-card/index.js create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-card/render.php create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-card/style-index.css create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-content/block.json create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-content/index.asset.php create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-content/index.js create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-content/render.php create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-content/style-index.css create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish-release/block.json create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish-release/index.asset.php create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish-release/index.js rename wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/{src/blocks/release-details-form => build/blocks/release-publish-release}/render.php (51%) create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish-release/style-index.css create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish/block.json create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish/index.asset.php create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish/index.js create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish/render.php create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish/style-index.css create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish/view.asset.php create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish/view.js create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-item copy/block.json create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-item copy/index.asset.php create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-item copy/index.js rename wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/{src/blocks/release-check-item => build/blocks/release-result-item copy}/render.php (100%) create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-item copy/style-index.css create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-item/block.json create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-item/index.asset.php create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-item/index.js create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-item/render.php create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-item/style-index.css create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-list/block.json create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-list/index.asset.php create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-list/index.js create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-list/render.php create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-list/style-index.css create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/client/components/plugin/_spinner.scss create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/patterns/releases-list.php rename wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/{release-details-form => card}/block.json (67%) rename wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/{release-check-item => card}/index.js (100%) rename wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/{release-date => card}/index.php (66%) create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/card/render.php create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/card/style.scss delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-confirmation/index.php delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-confirmation/render.php delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-confirmation/style.scss delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-date/block.json delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-date/index.js delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-date/render.php delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-details-form/index.php delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-details-form/style.scss rename wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/{release-confirmation => release-publish}/block.json (55%) rename wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/{release-confirmation => release-publish}/index.js (100%) rename wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/{release-status => release-publish}/index.php (74%) create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-publish/render.php create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-publish/style.scss create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-publish/view.js rename wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/{release-check-item => release-result-item}/block.json (63%) rename wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/{release-details-form => release-result-item}/index.js (100%) rename wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/{release-check-item => release-result-item}/index.php (72%) create mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-result-item/render.php rename wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/{release-check-item => release-result-item}/style.scss (51%) delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-status/block.json delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-status/index.js delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-status/render.php delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-status/style.scss diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/archive-page/index.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/archive-page/index.asset.php index 9202f58eda..d7b228686a 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/archive-page/index.asset.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/archive-page/index.asset.php @@ -1 +1 @@ - array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => '7f26875761f01d13f9dd'); + array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => '8627e1da9b24373a1f90'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/archive-page/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/archive-page/index.js index 772b3d2c7e..1b86a728bd 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/archive-page/index.js +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/archive-page/index.js @@ -1,183 +1 @@ -/******/ (() => { // webpackBootstrap -/******/ "use strict"; -/******/ var __webpack_modules__ = ({ - -/***/ "react": -/*!************************!*\ - !*** external "React" ***! - \************************/ -/***/ ((module) => { - -module.exports = window["React"]; - -/***/ }), - -/***/ "@wordpress/block-editor": -/*!*************************************!*\ - !*** external ["wp","blockEditor"] ***! - \*************************************/ -/***/ ((module) => { - -module.exports = window["wp"]["blockEditor"]; - -/***/ }), - -/***/ "@wordpress/blocks": -/*!********************************!*\ - !*** external ["wp","blocks"] ***! - \********************************/ -/***/ ((module) => { - -module.exports = window["wp"]["blocks"]; - -/***/ }), - -/***/ "@wordpress/components": -/*!************************************!*\ - !*** external ["wp","components"] ***! - \************************************/ -/***/ ((module) => { - -module.exports = window["wp"]["components"]; - -/***/ }), - -/***/ "@wordpress/server-side-render": -/*!******************************************!*\ - !*** external ["wp","serverSideRender"] ***! - \******************************************/ -/***/ ((module) => { - -module.exports = window["wp"]["serverSideRender"]; - -/***/ }), - -/***/ "./src/blocks/archive-page/block.json": -/*!********************************************!*\ - !*** ./src/blocks/archive-page/block.json ***! - \********************************************/ -/***/ ((module) => { - -module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"wporg/archive-page","version":"0.1.0","title":"Archive Page Content","category":"design","icon":"","description":"A block that displays the archive page content","textdomain":"wporg","attributes":{},"supports":{"html":false},"editorScript":"file:./index.js","render":"file:./render.php"}'); - -/***/ }) - -/******/ }); -/************************************************************************/ -/******/ // The module cache -/******/ var __webpack_module_cache__ = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ // Check if module is in cache -/******/ var cachedModule = __webpack_module_cache__[moduleId]; -/******/ if (cachedModule !== undefined) { -/******/ return cachedModule.exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = __webpack_module_cache__[moduleId] = { -/******/ // no module.id needed -/******/ // no module.loaded needed -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/************************************************************************/ -/******/ /* webpack/runtime/compat get default export */ -/******/ (() => { -/******/ // getDefaultExport function for compatibility with non-harmony modules -/******/ __webpack_require__.n = (module) => { -/******/ var getter = module && module.__esModule ? -/******/ () => (module['default']) : -/******/ () => (module); -/******/ __webpack_require__.d(getter, { a: getter }); -/******/ return getter; -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/define property getters */ -/******/ (() => { -/******/ // define getter functions for harmony exports -/******/ __webpack_require__.d = (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 */ -/******/ (() => { -/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) -/******/ })(); -/******/ -/******/ /* webpack/runtime/make namespace object */ -/******/ (() => { -/******/ // define __esModule on exports -/******/ __webpack_require__.r = (exports) => { -/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { -/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); -/******/ } -/******/ Object.defineProperty(exports, '__esModule', { value: true }); -/******/ }; -/******/ })(); -/******/ -/************************************************************************/ -var __webpack_exports__ = {}; -// This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk. -(() => { -/*!******************************************!*\ - !*** ./src/blocks/archive-page/index.js ***! - \******************************************/ -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); -/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/blocks */ "@wordpress/blocks"); -/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/server-side-render */ "@wordpress/server-side-render"); -/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/block-editor */ "@wordpress/block-editor"); -/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__); -/* harmony import */ var _block_json__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./block.json */ "./src/blocks/archive-page/block.json"); - -/** - * WordPress dependencies - */ - - - - - -/** - * Internal dependencies - */ - -function Edit({ - attributes, - name -}) { - return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", { - ...(0,_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__.useBlockProps)() - }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Disabled, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)((_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default()), { - block: name, - attributes: attributes - }))); -} -(0,_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__.registerBlockType)(_block_json__WEBPACK_IMPORTED_MODULE_5__.name, { - edit: Edit, - save: () => null -}); -})(); - -/******/ })() -; -//# sourceMappingURL=index.js.map \ No newline at end of file +(()=>{"use strict";var e={n:t=>{var r=t&&t.__esModule?()=>t.default:()=>t;return e.d(r,{a:r}),r},d:(t,r)=>{for(var o in r)e.o(r,o)&&!e.o(t,o)&&Object.defineProperty(t,o,{enumerable:!0,get:r[o]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t)};const t=window.React,r=window.wp.components,o=window.wp.blocks,n=window.wp.serverSideRender;var a=e.n(n);const c=window.wp.blockEditor,i=JSON.parse('{"u2":"wporg/archive-page"}');(0,o.registerBlockType)(i.u2,{edit:function({attributes:e,name:o}){return(0,t.createElement)("div",{...(0,c.useBlockProps)()},(0,t.createElement)(r.Disabled,null,(0,t.createElement)(a(),{block:o,attributes:e})))},save:()=>null})})(); \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/card/block.json b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/card/block.json new file mode 100644 index 0000000000..3ce8c4872d --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/card/block.json @@ -0,0 +1,27 @@ +{ + "$schema": "https://schemas.wp.org/trunk/block.json", + "apiVersion": 2, + "name": "wporg/card", + "version": "0.1.0", + "title": "Release Card", + "category": "design", + "icon": "", + "description": "A block to display a card.", + "textdomain": "wporg", + "attributes": { + "title": { + "type": "string", + "default": "" + } + }, + "supports": { + "html": false, + "interactivity": true + }, + "usesContext": [ + "postId" + ], + "editorScript": "file:./index.js", + "render": "file:./render.php", + "style": "file:./style-index.css" +} \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/card/index.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/card/index.asset.php new file mode 100644 index 0000000000..cc0120678c --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/card/index.asset.php @@ -0,0 +1 @@ + array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => '046977664ec5b2f853f7'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/card/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/card/index.js new file mode 100644 index 0000000000..8e83f8ed24 --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/card/index.js @@ -0,0 +1 @@ +(()=>{"use strict";var e,r={594:(e,r,n)=>{const o=window.React,t=window.wp.components,i=window.wp.blocks,a=window.wp.serverSideRender;var l=n.n(a);const s=window.wp.blockEditor;(0,i.registerBlockType)("wporg/card",{edit:function({attributes:e,name:r}){return(0,o.createElement)("div",{...(0,s.useBlockProps)()},(0,o.createElement)(t.Disabled,null,(0,o.createElement)(l(),{block:r,attributes:e})))},save:()=>null})}},n={};function o(e){var t=n[e];if(void 0!==t)return t.exports;var i=n[e]={exports:{}};return r[e](i,i.exports,o),i.exports}o.m=r,e=[],o.O=(r,n,t,i)=>{if(!n){var a=1/0;for(c=0;c=i)&&Object.keys(o.O).every((e=>o.O[e](n[s])))?n.splice(s--,1):(l=!1,i0&&e[c-1][2]>i;c--)e[c]=e[c-1];e[c]=[n,t,i]},o.n=e=>{var r=e&&e.__esModule?()=>e.default:()=>e;return o.d(r,{a:r}),r},o.d=(e,r)=>{for(var n in r)o.o(r,n)&&!o.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),(()=>{var e={816:0,294:0};o.O.j=r=>0===e[r];var r=(r,n)=>{var t,i,a=n[0],l=n[1],s=n[2],p=0;if(a.some((r=>0!==e[r]))){for(t in l)o.o(l,t)&&(o.m[t]=l[t]);if(s)var c=s(o)}for(r&&r(n);po(594)));t=o.O(t)})(); \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/card/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/card/render.php new file mode 100644 index 0000000000..f4ac504879 --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/card/render.php @@ -0,0 +1,27 @@ + +
    + +

    + {$block->attributes['title']} +

    + + $content +
    + +HTML; + +$output = sprintf( + '
    %2$s
    ', + wp_kses_data( get_block_wrapper_attributes() ), + $html, +); + +echo do_blocks( $output ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/card/style-index.css b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/card/style-index.css new file mode 100644 index 0000000000..f58c926420 --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/card/style-index.css @@ -0,0 +1 @@ +.wp-block-wporg-release-draft{font-size:var(--wp--preset--font-size--small)} diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/category-navigation/index.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/category-navigation/index.asset.php index 94878f12bf..ab2fb9f31a 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/category-navigation/index.asset.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/category-navigation/index.asset.php @@ -1 +1 @@ - array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => '9b7cfda9379a258a4745'); + array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => '6bce91817a063cdf476d'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/category-navigation/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/category-navigation/index.js index a639fdc3e3..e8e14d7ec6 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/category-navigation/index.js +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/category-navigation/index.js @@ -1,183 +1 @@ -/******/ (() => { // webpackBootstrap -/******/ "use strict"; -/******/ var __webpack_modules__ = ({ - -/***/ "react": -/*!************************!*\ - !*** external "React" ***! - \************************/ -/***/ ((module) => { - -module.exports = window["React"]; - -/***/ }), - -/***/ "@wordpress/block-editor": -/*!*************************************!*\ - !*** external ["wp","blockEditor"] ***! - \*************************************/ -/***/ ((module) => { - -module.exports = window["wp"]["blockEditor"]; - -/***/ }), - -/***/ "@wordpress/blocks": -/*!********************************!*\ - !*** external ["wp","blocks"] ***! - \********************************/ -/***/ ((module) => { - -module.exports = window["wp"]["blocks"]; - -/***/ }), - -/***/ "@wordpress/components": -/*!************************************!*\ - !*** external ["wp","components"] ***! - \************************************/ -/***/ ((module) => { - -module.exports = window["wp"]["components"]; - -/***/ }), - -/***/ "@wordpress/server-side-render": -/*!******************************************!*\ - !*** external ["wp","serverSideRender"] ***! - \******************************************/ -/***/ ((module) => { - -module.exports = window["wp"]["serverSideRender"]; - -/***/ }), - -/***/ "./src/blocks/category-navigation/block.json": -/*!***************************************************!*\ - !*** ./src/blocks/category-navigation/block.json ***! - \***************************************************/ -/***/ ((module) => { - -module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"wporg/category-navigation","version":"0.2.0","title":"Category Navigation","category":"design","icon":"","description":"Adds the category navigation menu","textdomain":"wporg","attributes":{},"supports":{"html":false},"editorScript":"file:./index.js","render":"file:./render.php"}'); - -/***/ }) - -/******/ }); -/************************************************************************/ -/******/ // The module cache -/******/ var __webpack_module_cache__ = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ // Check if module is in cache -/******/ var cachedModule = __webpack_module_cache__[moduleId]; -/******/ if (cachedModule !== undefined) { -/******/ return cachedModule.exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = __webpack_module_cache__[moduleId] = { -/******/ // no module.id needed -/******/ // no module.loaded needed -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/************************************************************************/ -/******/ /* webpack/runtime/compat get default export */ -/******/ (() => { -/******/ // getDefaultExport function for compatibility with non-harmony modules -/******/ __webpack_require__.n = (module) => { -/******/ var getter = module && module.__esModule ? -/******/ () => (module['default']) : -/******/ () => (module); -/******/ __webpack_require__.d(getter, { a: getter }); -/******/ return getter; -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/define property getters */ -/******/ (() => { -/******/ // define getter functions for harmony exports -/******/ __webpack_require__.d = (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 */ -/******/ (() => { -/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) -/******/ })(); -/******/ -/******/ /* webpack/runtime/make namespace object */ -/******/ (() => { -/******/ // define __esModule on exports -/******/ __webpack_require__.r = (exports) => { -/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { -/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); -/******/ } -/******/ Object.defineProperty(exports, '__esModule', { value: true }); -/******/ }; -/******/ })(); -/******/ -/************************************************************************/ -var __webpack_exports__ = {}; -// This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk. -(() => { -/*!*************************************************!*\ - !*** ./src/blocks/category-navigation/index.js ***! - \*************************************************/ -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); -/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/blocks */ "@wordpress/blocks"); -/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/server-side-render */ "@wordpress/server-side-render"); -/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/block-editor */ "@wordpress/block-editor"); -/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__); -/* harmony import */ var _block_json__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./block.json */ "./src/blocks/category-navigation/block.json"); - -/** - * WordPress dependencies - */ - - - - - -/** - * Internal dependencies - */ - -function Edit({ - attributes, - name -}) { - return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", { - ...(0,_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__.useBlockProps)() - }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Disabled, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)((_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default()), { - block: name, - attributes: attributes - }))); -} -(0,_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__.registerBlockType)(_block_json__WEBPACK_IMPORTED_MODULE_5__.name, { - edit: Edit, - save: () => null -}); -})(); - -/******/ })() -; -//# sourceMappingURL=index.js.map \ No newline at end of file +(()=>{"use strict";var e={n:t=>{var r=t&&t.__esModule?()=>t.default:()=>t;return e.d(r,{a:r}),r},d:(t,r)=>{for(var o in r)e.o(r,o)&&!e.o(t,o)&&Object.defineProperty(t,o,{enumerable:!0,get:r[o]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t)};const t=window.React,r=window.wp.components,o=window.wp.blocks,n=window.wp.serverSideRender;var a=e.n(n);const i=window.wp.blockEditor,c=JSON.parse('{"u2":"wporg/category-navigation"}');(0,o.registerBlockType)(c.u2,{edit:function({attributes:e,name:o}){return(0,t.createElement)("div",{...(0,i.useBlockProps)()},(0,t.createElement)(r.Disabled,null,(0,t.createElement)(a(),{block:o,attributes:e})))},save:()=>null})})(); \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/filter-bar/index.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/filter-bar/index.asset.php index 922b695350..32cfe90ff5 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/filter-bar/index.asset.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/filter-bar/index.asset.php @@ -1 +1 @@ - array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => 'fe9a74e9340bde2c89fa'); + array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => '4e25fbe50d772f6a1559'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/filter-bar/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/filter-bar/index.js index 1d81e7ca65..3662ea6f71 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/filter-bar/index.js +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/filter-bar/index.js @@ -1,183 +1 @@ -/******/ (() => { // webpackBootstrap -/******/ "use strict"; -/******/ var __webpack_modules__ = ({ - -/***/ "react": -/*!************************!*\ - !*** external "React" ***! - \************************/ -/***/ ((module) => { - -module.exports = window["React"]; - -/***/ }), - -/***/ "@wordpress/block-editor": -/*!*************************************!*\ - !*** external ["wp","blockEditor"] ***! - \*************************************/ -/***/ ((module) => { - -module.exports = window["wp"]["blockEditor"]; - -/***/ }), - -/***/ "@wordpress/blocks": -/*!********************************!*\ - !*** external ["wp","blocks"] ***! - \********************************/ -/***/ ((module) => { - -module.exports = window["wp"]["blocks"]; - -/***/ }), - -/***/ "@wordpress/components": -/*!************************************!*\ - !*** external ["wp","components"] ***! - \************************************/ -/***/ ((module) => { - -module.exports = window["wp"]["components"]; - -/***/ }), - -/***/ "@wordpress/server-side-render": -/*!******************************************!*\ - !*** external ["wp","serverSideRender"] ***! - \******************************************/ -/***/ ((module) => { - -module.exports = window["wp"]["serverSideRender"]; - -/***/ }), - -/***/ "./src/blocks/filter-bar/block.json": -/*!******************************************!*\ - !*** ./src/blocks/filter-bar/block.json ***! - \******************************************/ -/***/ ((module) => { - -module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"wporg/filter-bar","version":"0.2.0","title":"Filter Bar","category":"design","icon":"","description":"Adds a filter bar","textdomain":"wporg","attributes":{},"supports":{"html":false},"editorScript":"file:./index.js","render":"file:./render.php"}'); - -/***/ }) - -/******/ }); -/************************************************************************/ -/******/ // The module cache -/******/ var __webpack_module_cache__ = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ // Check if module is in cache -/******/ var cachedModule = __webpack_module_cache__[moduleId]; -/******/ if (cachedModule !== undefined) { -/******/ return cachedModule.exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = __webpack_module_cache__[moduleId] = { -/******/ // no module.id needed -/******/ // no module.loaded needed -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/************************************************************************/ -/******/ /* webpack/runtime/compat get default export */ -/******/ (() => { -/******/ // getDefaultExport function for compatibility with non-harmony modules -/******/ __webpack_require__.n = (module) => { -/******/ var getter = module && module.__esModule ? -/******/ () => (module['default']) : -/******/ () => (module); -/******/ __webpack_require__.d(getter, { a: getter }); -/******/ return getter; -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/define property getters */ -/******/ (() => { -/******/ // define getter functions for harmony exports -/******/ __webpack_require__.d = (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 */ -/******/ (() => { -/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) -/******/ })(); -/******/ -/******/ /* webpack/runtime/make namespace object */ -/******/ (() => { -/******/ // define __esModule on exports -/******/ __webpack_require__.r = (exports) => { -/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { -/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); -/******/ } -/******/ Object.defineProperty(exports, '__esModule', { value: true }); -/******/ }; -/******/ })(); -/******/ -/************************************************************************/ -var __webpack_exports__ = {}; -// This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk. -(() => { -/*!****************************************!*\ - !*** ./src/blocks/filter-bar/index.js ***! - \****************************************/ -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); -/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/blocks */ "@wordpress/blocks"); -/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/server-side-render */ "@wordpress/server-side-render"); -/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/block-editor */ "@wordpress/block-editor"); -/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__); -/* harmony import */ var _block_json__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./block.json */ "./src/blocks/filter-bar/block.json"); - -/** - * WordPress dependencies - */ - - - - - -/** - * Internal dependencies - */ - -function Edit({ - attributes, - name -}) { - return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", { - ...(0,_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__.useBlockProps)() - }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Disabled, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)((_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default()), { - block: name, - attributes: attributes - }))); -} -(0,_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__.registerBlockType)(_block_json__WEBPACK_IMPORTED_MODULE_5__.name, { - edit: Edit, - save: () => null -}); -})(); - -/******/ })() -; -//# sourceMappingURL=index.js.map \ No newline at end of file +(()=>{"use strict";var e={n:t=>{var r=t&&t.__esModule?()=>t.default:()=>t;return e.d(r,{a:r}),r},d:(t,r)=>{for(var o in r)e.o(r,o)&&!e.o(t,o)&&Object.defineProperty(t,o,{enumerable:!0,get:r[o]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t)};const t=window.React,r=window.wp.components,o=window.wp.blocks,n=window.wp.serverSideRender;var a=e.n(n);const l=window.wp.blockEditor,i=JSON.parse('{"u2":"wporg/filter-bar"}');(0,o.registerBlockType)(i.u2,{edit:function({attributes:e,name:o}){return(0,t.createElement)("div",{...(0,l.useBlockProps)()},(0,t.createElement)(r.Disabled,null,(0,t.createElement)(a(),{block:o,attributes:e})))},save:()=>null})})(); \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/front-page/index.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/front-page/index.asset.php index 264faed9d3..09684019c7 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/front-page/index.asset.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/front-page/index.asset.php @@ -1 +1 @@ - array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => 'b4c88578d4fb8d783dd4'); + array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => '3f3755bbf3697bb808f8'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/front-page/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/front-page/index.js index 7136a3f573..7a3c8b2166 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/front-page/index.js +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/front-page/index.js @@ -1,183 +1 @@ -/******/ (() => { // webpackBootstrap -/******/ "use strict"; -/******/ var __webpack_modules__ = ({ - -/***/ "react": -/*!************************!*\ - !*** external "React" ***! - \************************/ -/***/ ((module) => { - -module.exports = window["React"]; - -/***/ }), - -/***/ "@wordpress/block-editor": -/*!*************************************!*\ - !*** external ["wp","blockEditor"] ***! - \*************************************/ -/***/ ((module) => { - -module.exports = window["wp"]["blockEditor"]; - -/***/ }), - -/***/ "@wordpress/blocks": -/*!********************************!*\ - !*** external ["wp","blocks"] ***! - \********************************/ -/***/ ((module) => { - -module.exports = window["wp"]["blocks"]; - -/***/ }), - -/***/ "@wordpress/components": -/*!************************************!*\ - !*** external ["wp","components"] ***! - \************************************/ -/***/ ((module) => { - -module.exports = window["wp"]["components"]; - -/***/ }), - -/***/ "@wordpress/server-side-render": -/*!******************************************!*\ - !*** external ["wp","serverSideRender"] ***! - \******************************************/ -/***/ ((module) => { - -module.exports = window["wp"]["serverSideRender"]; - -/***/ }), - -/***/ "./src/blocks/front-page/block.json": -/*!******************************************!*\ - !*** ./src/blocks/front-page/block.json ***! - \******************************************/ -/***/ ((module) => { - -module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"wporg/front-page","version":"0.1.0","title":"Front Page Content","category":"design","icon":"","description":"A block that displays the front page content","textdomain":"wporg","attributes":{},"supports":{"html":false},"editorScript":"file:./index.js","render":"file:./render.php"}'); - -/***/ }) - -/******/ }); -/************************************************************************/ -/******/ // The module cache -/******/ var __webpack_module_cache__ = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ // Check if module is in cache -/******/ var cachedModule = __webpack_module_cache__[moduleId]; -/******/ if (cachedModule !== undefined) { -/******/ return cachedModule.exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = __webpack_module_cache__[moduleId] = { -/******/ // no module.id needed -/******/ // no module.loaded needed -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/************************************************************************/ -/******/ /* webpack/runtime/compat get default export */ -/******/ (() => { -/******/ // getDefaultExport function for compatibility with non-harmony modules -/******/ __webpack_require__.n = (module) => { -/******/ var getter = module && module.__esModule ? -/******/ () => (module['default']) : -/******/ () => (module); -/******/ __webpack_require__.d(getter, { a: getter }); -/******/ return getter; -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/define property getters */ -/******/ (() => { -/******/ // define getter functions for harmony exports -/******/ __webpack_require__.d = (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 */ -/******/ (() => { -/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) -/******/ })(); -/******/ -/******/ /* webpack/runtime/make namespace object */ -/******/ (() => { -/******/ // define __esModule on exports -/******/ __webpack_require__.r = (exports) => { -/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { -/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); -/******/ } -/******/ Object.defineProperty(exports, '__esModule', { value: true }); -/******/ }; -/******/ })(); -/******/ -/************************************************************************/ -var __webpack_exports__ = {}; -// This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk. -(() => { -/*!****************************************!*\ - !*** ./src/blocks/front-page/index.js ***! - \****************************************/ -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); -/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/blocks */ "@wordpress/blocks"); -/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/server-side-render */ "@wordpress/server-side-render"); -/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/block-editor */ "@wordpress/block-editor"); -/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__); -/* harmony import */ var _block_json__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./block.json */ "./src/blocks/front-page/block.json"); - -/** - * WordPress dependencies - */ - - - - - -/** - * Internal dependencies - */ - -function Edit({ - attributes, - name -}) { - return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", { - ...(0,_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__.useBlockProps)() - }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Disabled, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)((_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default()), { - block: name, - attributes: attributes - }))); -} -(0,_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__.registerBlockType)(_block_json__WEBPACK_IMPORTED_MODULE_5__.name, { - edit: Edit, - save: () => null -}); -})(); - -/******/ })() -; -//# sourceMappingURL=index.js.map \ No newline at end of file +(()=>{"use strict";var e={n:t=>{var r=t&&t.__esModule?()=>t.default:()=>t;return e.d(r,{a:r}),r},d:(t,r)=>{for(var o in r)e.o(r,o)&&!e.o(t,o)&&Object.defineProperty(t,o,{enumerable:!0,get:r[o]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t)};const t=window.React,r=window.wp.components,o=window.wp.blocks,n=window.wp.serverSideRender;var a=e.n(n);const l=window.wp.blockEditor,c=JSON.parse('{"u2":"wporg/front-page"}');(0,o.registerBlockType)(c.u2,{edit:function({attributes:e,name:o}){return(0,t.createElement)("div",{...(0,l.useBlockProps)()},(0,t.createElement)(r.Disabled,null,(0,t.createElement)(a(),{block:o,attributes:e})))},save:()=>null})})(); \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/plugin-card/index.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/plugin-card/index.asset.php index b579c818ac..f1dd1a21c9 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/plugin-card/index.asset.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/plugin-card/index.asset.php @@ -1 +1 @@ - array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => '26ed8b457f67063bbcbe'); + array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => '58f6f779c22873c960e8'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/plugin-card/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/plugin-card/index.js index 77b892a7b3..3f9a8e7de5 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/plugin-card/index.js +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/plugin-card/index.js @@ -1,183 +1 @@ -/******/ (() => { // webpackBootstrap -/******/ "use strict"; -/******/ var __webpack_modules__ = ({ - -/***/ "react": -/*!************************!*\ - !*** external "React" ***! - \************************/ -/***/ ((module) => { - -module.exports = window["React"]; - -/***/ }), - -/***/ "@wordpress/block-editor": -/*!*************************************!*\ - !*** external ["wp","blockEditor"] ***! - \*************************************/ -/***/ ((module) => { - -module.exports = window["wp"]["blockEditor"]; - -/***/ }), - -/***/ "@wordpress/blocks": -/*!********************************!*\ - !*** external ["wp","blocks"] ***! - \********************************/ -/***/ ((module) => { - -module.exports = window["wp"]["blocks"]; - -/***/ }), - -/***/ "@wordpress/components": -/*!************************************!*\ - !*** external ["wp","components"] ***! - \************************************/ -/***/ ((module) => { - -module.exports = window["wp"]["components"]; - -/***/ }), - -/***/ "@wordpress/server-side-render": -/*!******************************************!*\ - !*** external ["wp","serverSideRender"] ***! - \******************************************/ -/***/ ((module) => { - -module.exports = window["wp"]["serverSideRender"]; - -/***/ }), - -/***/ "./src/blocks/plugin-card/block.json": -/*!*******************************************!*\ - !*** ./src/blocks/plugin-card/block.json ***! - \*******************************************/ -/***/ ((module) => { - -module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"wporg/plugin-card","version":"0.1.0","title":"Plugin Card for Archive Pages","category":"design","icon":"","description":"A block that displays a plugin card.","textdomain":"wporg","attributes":{},"supports":{"html":false},"editorScript":"file:./index.js","render":"file:./render.php","viewScript":"file:./view.js"}'); - -/***/ }) - -/******/ }); -/************************************************************************/ -/******/ // The module cache -/******/ var __webpack_module_cache__ = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ // Check if module is in cache -/******/ var cachedModule = __webpack_module_cache__[moduleId]; -/******/ if (cachedModule !== undefined) { -/******/ return cachedModule.exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = __webpack_module_cache__[moduleId] = { -/******/ // no module.id needed -/******/ // no module.loaded needed -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/************************************************************************/ -/******/ /* webpack/runtime/compat get default export */ -/******/ (() => { -/******/ // getDefaultExport function for compatibility with non-harmony modules -/******/ __webpack_require__.n = (module) => { -/******/ var getter = module && module.__esModule ? -/******/ () => (module['default']) : -/******/ () => (module); -/******/ __webpack_require__.d(getter, { a: getter }); -/******/ return getter; -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/define property getters */ -/******/ (() => { -/******/ // define getter functions for harmony exports -/******/ __webpack_require__.d = (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 */ -/******/ (() => { -/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) -/******/ })(); -/******/ -/******/ /* webpack/runtime/make namespace object */ -/******/ (() => { -/******/ // define __esModule on exports -/******/ __webpack_require__.r = (exports) => { -/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { -/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); -/******/ } -/******/ Object.defineProperty(exports, '__esModule', { value: true }); -/******/ }; -/******/ })(); -/******/ -/************************************************************************/ -var __webpack_exports__ = {}; -// This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk. -(() => { -/*!*****************************************!*\ - !*** ./src/blocks/plugin-card/index.js ***! - \*****************************************/ -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); -/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/blocks */ "@wordpress/blocks"); -/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/server-side-render */ "@wordpress/server-side-render"); -/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/block-editor */ "@wordpress/block-editor"); -/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__); -/* harmony import */ var _block_json__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./block.json */ "./src/blocks/plugin-card/block.json"); - -/** - * WordPress dependencies - */ - - - - - -/** - * Internal dependencies - */ - -function Edit({ - attributes, - name -}) { - return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", { - ...(0,_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__.useBlockProps)() - }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Disabled, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)((_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default()), { - block: name, - attributes: attributes - }))); -} -(0,_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__.registerBlockType)(_block_json__WEBPACK_IMPORTED_MODULE_5__.name, { - edit: Edit, - save: () => null -}); -})(); - -/******/ })() -; -//# sourceMappingURL=index.js.map \ No newline at end of file +(()=>{"use strict";var e={n:t=>{var r=t&&t.__esModule?()=>t.default:()=>t;return e.d(r,{a:r}),r},d:(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:(e,t)=>Object.prototype.hasOwnProperty.call(e,t)};const t=window.React,r=window.wp.components,n=window.wp.blocks,o=window.wp.serverSideRender;var a=e.n(o);const l=window.wp.blockEditor,c=JSON.parse('{"u2":"wporg/plugin-card"}');(0,n.registerBlockType)(c.u2,{edit:function({attributes:e,name:n}){return(0,t.createElement)("div",{...(0,l.useBlockProps)()},(0,t.createElement)(r.Disabled,null,(0,t.createElement)(a(),{block:n,attributes:e})))},save:()=>null})})(); \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/plugin-card/view.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/plugin-card/view.asset.php index 0dd4c71ab5..a451d28c8a 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/plugin-card/view.asset.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/plugin-card/view.asset.php @@ -1 +1 @@ - array(), 'version' => '038d83c28b7b82ea64d9'); + array(), 'version' => 'f221373b7e38d2ff3d7c'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/plugin-card/view.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/plugin-card/view.js index a0ec1ebc4a..f3234f94de 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/plugin-card/view.js +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/plugin-card/view.js @@ -1,36 +1 @@ -/******/ (() => { // webpackBootstrap -var __webpack_exports__ = {}; -/*!****************************************!*\ - !*** ./src/blocks/plugin-card/view.js ***! - \****************************************/ -/** - * Binds click events to navigate on plugin card click. - */ -document.addEventListener('DOMContentLoaded', function () { - var cards = document.querySelectorAll('.plugin-cards li'); - if (cards) { - cards.forEach(function (card) { - card.addEventListener('click', function (event) { - var selectedText = window.getSelection().toString(); - - // Keep regular anchor tag function - if ('a' === event.target.tagName.toLowerCase()) { - return; - } - - // If they are selecting text, let's not navigate. - if ('' !== selectedText) { - return; - } - var anchorTag = card.querySelector('a'); - if (anchorTag) { - var link = anchorTag.getAttribute('href'); - window.location.href = link; - } - }); - }); - } -}); -/******/ })() -; -//# sourceMappingURL=view.js.map \ No newline at end of file +document.addEventListener("DOMContentLoaded",(function(){var e=document.querySelectorAll(".plugin-cards li");e&&e.forEach((function(e){e.addEventListener("click",(function(t){var n=window.getSelection().toString();if("a"!==t.target.tagName.toLowerCase()&&""===n){var o=e.querySelector("a");if(o){var r=o.getAttribute("href");window.location.href=r}}}))}))})); \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks/index.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks/index.asset.php index a727359a89..3c2ca53022 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks/index.asset.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks/index.asset.php @@ -1 +1 @@ - array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => 'e264093d240f158ddead'); + array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => 'a977c41b397d84605650'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks/index.js index 406f7ccc3c..1739398679 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks/index.js +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks/index.js @@ -1,298 +1 @@ -/******/ (() => { // webpackBootstrap -/******/ "use strict"; -/******/ var __webpack_modules__ = ({ - -/***/ "./src/blocks/release-checks/index.js": -/*!********************************************!*\ - !*** ./src/blocks/release-checks/index.js ***! - \********************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); -/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/blocks */ "@wordpress/blocks"); -/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/server-side-render */ "@wordpress/server-side-render"); -/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/block-editor */ "@wordpress/block-editor"); -/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__); -/* harmony import */ var _block_json__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./block.json */ "./src/blocks/release-checks/block.json"); -/* harmony import */ var _style_scss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./style.scss */ "./src/blocks/release-checks/style.scss"); - -/** - * WordPress dependencies - */ - - - - - -/** - * Internal dependencies - */ - - -function Edit({ - attributes, - name -}) { - return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", { - ...(0,_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__.useBlockProps)() - }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Disabled, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)((_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default()), { - block: name, - attributes: attributes - }))); -} -(0,_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__.registerBlockType)(_block_json__WEBPACK_IMPORTED_MODULE_5__.name, { - edit: Edit, - save: () => null -}); - -/***/ }), - -/***/ "./src/blocks/release-checks/style.scss": -/*!**********************************************!*\ - !*** ./src/blocks/release-checks/style.scss ***! - \**********************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -// extracted by mini-css-extract-plugin - - -/***/ }), - -/***/ "react": -/*!************************!*\ - !*** external "React" ***! - \************************/ -/***/ ((module) => { - -module.exports = window["React"]; - -/***/ }), - -/***/ "@wordpress/block-editor": -/*!*************************************!*\ - !*** external ["wp","blockEditor"] ***! - \*************************************/ -/***/ ((module) => { - -module.exports = window["wp"]["blockEditor"]; - -/***/ }), - -/***/ "@wordpress/blocks": -/*!********************************!*\ - !*** external ["wp","blocks"] ***! - \********************************/ -/***/ ((module) => { - -module.exports = window["wp"]["blocks"]; - -/***/ }), - -/***/ "@wordpress/components": -/*!************************************!*\ - !*** external ["wp","components"] ***! - \************************************/ -/***/ ((module) => { - -module.exports = window["wp"]["components"]; - -/***/ }), - -/***/ "@wordpress/server-side-render": -/*!******************************************!*\ - !*** external ["wp","serverSideRender"] ***! - \******************************************/ -/***/ ((module) => { - -module.exports = window["wp"]["serverSideRender"]; - -/***/ }), - -/***/ "./src/blocks/release-checks/block.json": -/*!**********************************************!*\ - !*** ./src/blocks/release-checks/block.json ***! - \**********************************************/ -/***/ ((module) => { - -module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"wporg/release-checks","version":"0.1.0","title":"Release checks.","category":"design","icon":"","description":"A block to display release checks.","textdomain":"wporg","attributes":{},"supports":{"html":false},"usesContext":["postId"],"editorScript":"file:./index.js","render":"file:./render.php","style":"file:./style-index.css"}'); - -/***/ }) - -/******/ }); -/************************************************************************/ -/******/ // The module cache -/******/ var __webpack_module_cache__ = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ // Check if module is in cache -/******/ var cachedModule = __webpack_module_cache__[moduleId]; -/******/ if (cachedModule !== undefined) { -/******/ return cachedModule.exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = __webpack_module_cache__[moduleId] = { -/******/ // no module.id needed -/******/ // no module.loaded needed -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = __webpack_modules__; -/******/ -/************************************************************************/ -/******/ /* webpack/runtime/chunk loaded */ -/******/ (() => { -/******/ var deferred = []; -/******/ __webpack_require__.O = (result, chunkIds, fn, priority) => { -/******/ if(chunkIds) { -/******/ priority = priority || 0; -/******/ for(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1]; -/******/ deferred[i] = [chunkIds, fn, priority]; -/******/ return; -/******/ } -/******/ var notFulfilled = Infinity; -/******/ for (var i = 0; i < deferred.length; i++) { -/******/ var chunkIds = deferred[i][0]; -/******/ var fn = deferred[i][1]; -/******/ var priority = deferred[i][2]; -/******/ var fulfilled = true; -/******/ for (var j = 0; j < chunkIds.length; j++) { -/******/ if ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) { -/******/ chunkIds.splice(j--, 1); -/******/ } else { -/******/ fulfilled = false; -/******/ if(priority < notFulfilled) notFulfilled = priority; -/******/ } -/******/ } -/******/ if(fulfilled) { -/******/ deferred.splice(i--, 1) -/******/ var r = fn(); -/******/ if (r !== undefined) result = r; -/******/ } -/******/ } -/******/ return result; -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/compat get default export */ -/******/ (() => { -/******/ // getDefaultExport function for compatibility with non-harmony modules -/******/ __webpack_require__.n = (module) => { -/******/ var getter = module && module.__esModule ? -/******/ () => (module['default']) : -/******/ () => (module); -/******/ __webpack_require__.d(getter, { a: getter }); -/******/ return getter; -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/define property getters */ -/******/ (() => { -/******/ // define getter functions for harmony exports -/******/ __webpack_require__.d = (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 */ -/******/ (() => { -/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) -/******/ })(); -/******/ -/******/ /* webpack/runtime/make namespace object */ -/******/ (() => { -/******/ // define __esModule on exports -/******/ __webpack_require__.r = (exports) => { -/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { -/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); -/******/ } -/******/ Object.defineProperty(exports, '__esModule', { value: true }); -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/jsonp chunk loading */ -/******/ (() => { -/******/ // no baseURI -/******/ -/******/ // object to store loaded and loading chunks -/******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched -/******/ // [resolve, reject, Promise] = chunk loading, 0 = chunk loaded -/******/ var installedChunks = { -/******/ "blocks/release-checks/index": 0, -/******/ "blocks/release-checks/style-index": 0 -/******/ }; -/******/ -/******/ // no chunk on demand loading -/******/ -/******/ // no prefetching -/******/ -/******/ // no preloaded -/******/ -/******/ // no HMR -/******/ -/******/ // no HMR manifest -/******/ -/******/ __webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0); -/******/ -/******/ // install a JSONP callback for chunk loading -/******/ var webpackJsonpCallback = (parentChunkLoadingFunction, data) => { -/******/ var chunkIds = data[0]; -/******/ var moreModules = data[1]; -/******/ var runtime = data[2]; -/******/ // add "moreModules" to the modules object, -/******/ // then flag all "chunkIds" as loaded and fire callback -/******/ var moduleId, chunkId, i = 0; -/******/ if(chunkIds.some((id) => (installedChunks[id] !== 0))) { -/******/ for(moduleId in moreModules) { -/******/ if(__webpack_require__.o(moreModules, moduleId)) { -/******/ __webpack_require__.m[moduleId] = moreModules[moduleId]; -/******/ } -/******/ } -/******/ if(runtime) var result = runtime(__webpack_require__); -/******/ } -/******/ if(parentChunkLoadingFunction) parentChunkLoadingFunction(data); -/******/ for(;i < chunkIds.length; i++) { -/******/ chunkId = chunkIds[i]; -/******/ if(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) { -/******/ installedChunks[chunkId][0](); -/******/ } -/******/ installedChunks[chunkId] = 0; -/******/ } -/******/ return __webpack_require__.O(result); -/******/ } -/******/ -/******/ var chunkLoadingGlobal = self["webpackChunkwporg_plugins_2024"] = self["webpackChunkwporg_plugins_2024"] || []; -/******/ chunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0)); -/******/ chunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal)); -/******/ })(); -/******/ -/************************************************************************/ -/******/ -/******/ // startup -/******/ // Load entry module and return exports -/******/ // This entry module depends on other loaded chunks and execution need to be delayed -/******/ var __webpack_exports__ = __webpack_require__.O(undefined, ["blocks/release-checks/style-index"], () => (__webpack_require__("./src/blocks/release-checks/index.js"))) -/******/ __webpack_exports__ = __webpack_require__.O(__webpack_exports__); -/******/ -/******/ })() -; -//# sourceMappingURL=index.js.map \ No newline at end of file +(()=>{"use strict";var e,r={651:(e,r,n)=>{const o=window.React,t=window.wp.components,a=window.wp.blocks,i=window.wp.serverSideRender;var l=n.n(i);const s=window.wp.blockEditor,p=JSON.parse('{"u2":"wporg/release-checks"}');(0,a.registerBlockType)(p.u2,{edit:function({attributes:e,name:r}){return(0,o.createElement)("div",{...(0,s.useBlockProps)()},(0,o.createElement)(t.Disabled,null,(0,o.createElement)(l(),{block:r,attributes:e})))},save:()=>null})}},n={};function o(e){var t=n[e];if(void 0!==t)return t.exports;var a=n[e]={exports:{}};return r[e](a,a.exports,o),a.exports}o.m=r,e=[],o.O=(r,n,t,a)=>{if(!n){var i=1/0;for(u=0;u=a)&&Object.keys(o.O).every((e=>o.O[e](n[s])))?n.splice(s--,1):(l=!1,a0&&e[u-1][2]>a;u--)e[u]=e[u-1];e[u]=[n,t,a]},o.n=e=>{var r=e&&e.__esModule?()=>e.default:()=>e;return o.d(r,{a:r}),r},o.d=(e,r)=>{for(var n in r)o.o(r,n)&&!o.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),(()=>{var e={361:0,276:0};o.O.j=r=>0===e[r];var r=(r,n)=>{var t,a,i=n[0],l=n[1],s=n[2],p=0;if(i.some((r=>0!==e[r]))){for(t in l)o.o(l,t)&&(o.m[t]=l[t]);if(s)var u=s(o)}for(r&&r(n);po(651)));t=o.O(t)})(); \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks/render.php index b7a4b97b90..de7a1aa6b5 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks/render.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks/render.php @@ -1,8 +1,12 @@ ' . __( 'No issues found.', 'wporg-plugins' ) . '

    '; - } - - $output = '
      '; - - foreach ( $results as $result ) { - $type_class = isset( $result['type'] ) ? strtolower( $result['type'] ) : ''; - - $output .= sprintf( - '
    • %1$s %2$s
    • ', - esc_html( $result['message'] ), - ! empty( $result['docs'] ) - ? sprintf( - '%s', - esc_url( $result['docs'] ), - __( 'More Information', 'wporg-plugins' ) - ) - : '' - ); - } - - $output .= '
    '; - - return $output; -} - -/** - * Get the counts of each error type. - * - * @param array $result The plugin check result. - * - * @return array Array of error type counts. - */ -function get_error_type_counts( $result ) { - return array_reduce( - $result ?? array(), - function ( $carry, $item ) { - if ( isset( $item['type'] ) ) { - $carry[ $item['type'] ] = ( $carry[ $item['type'] ] ?? 0 ) + 1; - } - return $carry; - }, - array( - 'ERROR' => 0, - 'WARNING' => 0, - ) - ); -} - -/** - * Get the test run message. - * - * @param object $plugin_check_errors The plugin check errors. - * - * @return string The test run message. - */ -function get_test_run_message( $plugin_check_errors ) { - - $plugin_check_link = sprintf( - '%s', - esc_url( 'https://wordpress.org/plugins/plugin-check' ), - esc_html__( 'Plugin Check (PCP)', 'wporg-plugins' ) - ); - - if ( $plugin_check_errors->verdict ) { - return sprintf( - /* translators: %1$s is a link to the Plugin Check (PCP) tool. */ - __( 'Passed the %1$s.', 'wporg-plugins' ), - $plugin_check_link - ); - } - - $counts = get_error_type_counts( $plugin_check_errors['results'] ); - - $error_message = sprintf( _n( '%s error', '%s errors', $counts['ERROR'], 'wporg-plugins' ), $counts['ERROR'] ); - $warning_message = sprintf( _n( '%s warning', '%s warnings', $counts['WARNING'], 'wporg-plugins' ), $counts['WARNING'] ); - $message = ''; - - if ( empty( $counts['ERROR'] ) ) { - $message = $warning_message; - } elseif ( empty( $counts['WARNING'] ) ) { - $message = $error_message; - } else { - /* translators: %1$s: number of errors, %2$s: number of warnings */ - $message = sprintf( - '%1$s and %2$s', - $error_message, - $warning_message - ); - } - - return sprintf( - '
    %1$s%2$s
    ', - sprintf( - /* translators: %1$s is a link to the Plugin Check (PCP) tool. */ - __( '%1$s completed with %2$s.', 'wporg-plugins' ), - $plugin_check_link, - $message - ), - format_plugin_check_results( $plugin_check_errors['results'] ), - ); -} - $plugin_check_errors = get_post_meta( get_post( $block->context['postId'] )->ID, 'plugin_check_result', true ); $heading = sprintf( @@ -143,8 +36,8 @@ function get_test_run_message( $plugin_check_errors ) { // Create a block with the overall status. $status_block = sprintf( - '%2$s', - $plugin_check_errors->verdict ? 'success' : 'error', + '%2$s', + $plugin_check_errors['verdict'] ? 'success' : 'warning', get_test_run_message( $plugin_check_errors ) ); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks/style-index.css b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks/style-index.css index 8206df05fe..16cc7274a7 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks/style-index.css +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks/style-index.css @@ -1,12 +1 @@ -/*!*************************************************************************************************************************************************************************************************************************************************************!*\ - !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/blocks/release-checks/style.scss ***! - \*************************************************************************************************************************************************************************************************************************************************************/ -.wp-block-wporg-release-checks-results { - margin-left: 16px; - list-style: disc; -} -.wp-block-wporg-release-checks-results li:not(:last-child) { - margin-bottom: 8px; -} - -/*# sourceMappingURL=style-index.css.map*/ \ No newline at end of file +.wp-block-wporg-release-checks-results{list-style:disc;margin-left:16px}.wp-block-wporg-release-checks-results li:not(:last-child){margin-bottom:8px} diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-commits/index.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-commits/index.asset.php index c7ee00d1f1..b010de5546 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-commits/index.asset.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-commits/index.asset.php @@ -1 +1 @@ - array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => '5b31c659da768cc49abf'); + array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => 'fca13e6bda13f7954aae'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-commits/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-commits/index.js index 5b053c073b..eac7869c9f 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-commits/index.js +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-commits/index.js @@ -1,298 +1 @@ -/******/ (() => { // webpackBootstrap -/******/ "use strict"; -/******/ var __webpack_modules__ = ({ - -/***/ "./src/blocks/release-commits/index.js": -/*!*********************************************!*\ - !*** ./src/blocks/release-commits/index.js ***! - \*********************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); -/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/blocks */ "@wordpress/blocks"); -/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/server-side-render */ "@wordpress/server-side-render"); -/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/block-editor */ "@wordpress/block-editor"); -/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__); -/* harmony import */ var _block_json__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./block.json */ "./src/blocks/release-commits/block.json"); -/* harmony import */ var _style_scss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./style.scss */ "./src/blocks/release-commits/style.scss"); - -/** - * WordPress dependencies - */ - - - - - -/** - * Internal dependencies - */ - - -function Edit({ - attributes, - name -}) { - return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", { - ...(0,_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__.useBlockProps)() - }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Disabled, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)((_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default()), { - block: name, - attributes: attributes - }))); -} -(0,_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__.registerBlockType)(_block_json__WEBPACK_IMPORTED_MODULE_5__.name, { - edit: Edit, - save: () => null -}); - -/***/ }), - -/***/ "./src/blocks/release-commits/style.scss": -/*!***********************************************!*\ - !*** ./src/blocks/release-commits/style.scss ***! - \***********************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -// extracted by mini-css-extract-plugin - - -/***/ }), - -/***/ "react": -/*!************************!*\ - !*** external "React" ***! - \************************/ -/***/ ((module) => { - -module.exports = window["React"]; - -/***/ }), - -/***/ "@wordpress/block-editor": -/*!*************************************!*\ - !*** external ["wp","blockEditor"] ***! - \*************************************/ -/***/ ((module) => { - -module.exports = window["wp"]["blockEditor"]; - -/***/ }), - -/***/ "@wordpress/blocks": -/*!********************************!*\ - !*** external ["wp","blocks"] ***! - \********************************/ -/***/ ((module) => { - -module.exports = window["wp"]["blocks"]; - -/***/ }), - -/***/ "@wordpress/components": -/*!************************************!*\ - !*** external ["wp","components"] ***! - \************************************/ -/***/ ((module) => { - -module.exports = window["wp"]["components"]; - -/***/ }), - -/***/ "@wordpress/server-side-render": -/*!******************************************!*\ - !*** external ["wp","serverSideRender"] ***! - \******************************************/ -/***/ ((module) => { - -module.exports = window["wp"]["serverSideRender"]; - -/***/ }), - -/***/ "./src/blocks/release-commits/block.json": -/*!***********************************************!*\ - !*** ./src/blocks/release-commits/block.json ***! - \***********************************************/ -/***/ ((module) => { - -module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"wporg/release-commits","version":"0.1.0","title":"Release Commits","category":"design","icon":"","description":"A block to display release commits.","textdomain":"wporg","attributes":{},"supports":{"html":false},"usesContext":["postId"],"editorScript":"file:./index.js","render":"file:./render.php","style":"file:./style-index.css"}'); - -/***/ }) - -/******/ }); -/************************************************************************/ -/******/ // The module cache -/******/ var __webpack_module_cache__ = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ // Check if module is in cache -/******/ var cachedModule = __webpack_module_cache__[moduleId]; -/******/ if (cachedModule !== undefined) { -/******/ return cachedModule.exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = __webpack_module_cache__[moduleId] = { -/******/ // no module.id needed -/******/ // no module.loaded needed -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = __webpack_modules__; -/******/ -/************************************************************************/ -/******/ /* webpack/runtime/chunk loaded */ -/******/ (() => { -/******/ var deferred = []; -/******/ __webpack_require__.O = (result, chunkIds, fn, priority) => { -/******/ if(chunkIds) { -/******/ priority = priority || 0; -/******/ for(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1]; -/******/ deferred[i] = [chunkIds, fn, priority]; -/******/ return; -/******/ } -/******/ var notFulfilled = Infinity; -/******/ for (var i = 0; i < deferred.length; i++) { -/******/ var chunkIds = deferred[i][0]; -/******/ var fn = deferred[i][1]; -/******/ var priority = deferred[i][2]; -/******/ var fulfilled = true; -/******/ for (var j = 0; j < chunkIds.length; j++) { -/******/ if ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) { -/******/ chunkIds.splice(j--, 1); -/******/ } else { -/******/ fulfilled = false; -/******/ if(priority < notFulfilled) notFulfilled = priority; -/******/ } -/******/ } -/******/ if(fulfilled) { -/******/ deferred.splice(i--, 1) -/******/ var r = fn(); -/******/ if (r !== undefined) result = r; -/******/ } -/******/ } -/******/ return result; -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/compat get default export */ -/******/ (() => { -/******/ // getDefaultExport function for compatibility with non-harmony modules -/******/ __webpack_require__.n = (module) => { -/******/ var getter = module && module.__esModule ? -/******/ () => (module['default']) : -/******/ () => (module); -/******/ __webpack_require__.d(getter, { a: getter }); -/******/ return getter; -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/define property getters */ -/******/ (() => { -/******/ // define getter functions for harmony exports -/******/ __webpack_require__.d = (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 */ -/******/ (() => { -/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) -/******/ })(); -/******/ -/******/ /* webpack/runtime/make namespace object */ -/******/ (() => { -/******/ // define __esModule on exports -/******/ __webpack_require__.r = (exports) => { -/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { -/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); -/******/ } -/******/ Object.defineProperty(exports, '__esModule', { value: true }); -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/jsonp chunk loading */ -/******/ (() => { -/******/ // no baseURI -/******/ -/******/ // object to store loaded and loading chunks -/******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched -/******/ // [resolve, reject, Promise] = chunk loading, 0 = chunk loaded -/******/ var installedChunks = { -/******/ "blocks/release-commits/index": 0, -/******/ "blocks/release-commits/style-index": 0 -/******/ }; -/******/ -/******/ // no chunk on demand loading -/******/ -/******/ // no prefetching -/******/ -/******/ // no preloaded -/******/ -/******/ // no HMR -/******/ -/******/ // no HMR manifest -/******/ -/******/ __webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0); -/******/ -/******/ // install a JSONP callback for chunk loading -/******/ var webpackJsonpCallback = (parentChunkLoadingFunction, data) => { -/******/ var chunkIds = data[0]; -/******/ var moreModules = data[1]; -/******/ var runtime = data[2]; -/******/ // add "moreModules" to the modules object, -/******/ // then flag all "chunkIds" as loaded and fire callback -/******/ var moduleId, chunkId, i = 0; -/******/ if(chunkIds.some((id) => (installedChunks[id] !== 0))) { -/******/ for(moduleId in moreModules) { -/******/ if(__webpack_require__.o(moreModules, moduleId)) { -/******/ __webpack_require__.m[moduleId] = moreModules[moduleId]; -/******/ } -/******/ } -/******/ if(runtime) var result = runtime(__webpack_require__); -/******/ } -/******/ if(parentChunkLoadingFunction) parentChunkLoadingFunction(data); -/******/ for(;i < chunkIds.length; i++) { -/******/ chunkId = chunkIds[i]; -/******/ if(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) { -/******/ installedChunks[chunkId][0](); -/******/ } -/******/ installedChunks[chunkId] = 0; -/******/ } -/******/ return __webpack_require__.O(result); -/******/ } -/******/ -/******/ var chunkLoadingGlobal = self["webpackChunkwporg_plugins_2024"] = self["webpackChunkwporg_plugins_2024"] || []; -/******/ chunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0)); -/******/ chunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal)); -/******/ })(); -/******/ -/************************************************************************/ -/******/ -/******/ // startup -/******/ // Load entry module and return exports -/******/ // This entry module depends on other loaded chunks and execution need to be delayed -/******/ var __webpack_exports__ = __webpack_require__.O(undefined, ["blocks/release-commits/style-index"], () => (__webpack_require__("./src/blocks/release-commits/index.js"))) -/******/ __webpack_exports__ = __webpack_require__.O(__webpack_exports__); -/******/ -/******/ })() -; -//# sourceMappingURL=index.js.map \ No newline at end of file +(()=>{"use strict";var e,r={948:(e,r,o)=>{const t=window.React,n=window.wp.components,i=window.wp.blocks,a=window.wp.serverSideRender;var l=o.n(a);const s=window.wp.blockEditor,p=JSON.parse('{"u2":"wporg/release-commits"}');(0,i.registerBlockType)(p.u2,{edit:function({attributes:e,name:r}){return(0,t.createElement)("div",{...(0,s.useBlockProps)()},(0,t.createElement)(n.Disabled,null,(0,t.createElement)(l(),{block:r,attributes:e})))},save:()=>null})}},o={};function t(e){var n=o[e];if(void 0!==n)return n.exports;var i=o[e]={exports:{}};return r[e](i,i.exports,t),i.exports}t.m=r,e=[],t.O=(r,o,n,i)=>{if(!o){var a=1/0;for(u=0;u=i)&&Object.keys(t.O).every((e=>t.O[e](o[s])))?o.splice(s--,1):(l=!1,i0&&e[u-1][2]>i;u--)e[u]=e[u-1];e[u]=[o,n,i]},t.n=e=>{var r=e&&e.__esModule?()=>e.default:()=>e;return t.d(r,{a:r}),r},t.d=(e,r)=>{for(var o in r)t.o(r,o)&&!t.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:r[o]})},t.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),(()=>{var e={99:0,85:0};t.O.j=r=>0===e[r];var r=(r,o)=>{var n,i,a=o[0],l=o[1],s=o[2],p=0;if(a.some((r=>0!==e[r]))){for(n in l)t.o(l,n)&&(t.m[n]=l[n]);if(s)var u=s(t)}for(r&&r(o);pt(948)));n=t.O(n)})(); \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-commits/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-commits/render.php index 1f7388593b..827e1b442e 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-commits/render.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-commits/render.php @@ -6,10 +6,7 @@ */ use WordPressdotorg\Plugin_Directory\Readme\Validator as Readme_Validator; - -if ( ! current_user_can( 'plugin_admin_edit', $post ) ) { - return; -} +use function WordPressdotorg\Plugin_Directory\Theme\{get_plugin_slug, get_revision_log_link}; if ( ! $block->context['postId'] ) { return; @@ -21,79 +18,16 @@ return '

    ' . __( 'No commits found.', 'wporg-plugins' ) . '

    '; } -/** - * Count the number of files edited, added, and deleted in the given commits. - * - * @param array $commits Array of commits. - * @return array Associative array with keys 'edited', 'added', and 'deleted'. - */ -function count_file_changes( $commits ) { - $file_actions = array(); - - ksort( $commits ); - - foreach ( $commits as $commit ) { - if ( ! isset( $commit['actions'] ) || ! is_array( $commit['actions'] ) ) { - continue; - } - - foreach ( $commit['actions'] as $file_path => $action ) { - $file_actions[ $file_path ] = $action; - } - } - - $edited_files = array(); - $added_files = array(); - $deleted_files = array(); - - foreach ( $file_actions as $file_path => $action ) { - switch ( $action ) { - case 'M': - $edited_files[ $file_path ] = true; - break; - case 'A': - $added_files[ $file_path ] = true; - break; - case 'D': - $deleted_files[ $file_path ] = true; - break; - } - } - - return array( - 'edited' => count( $edited_files ), - 'added' => count( $added_files ), - 'deleted' => count( $deleted_files ), - ); -} - -/** - * Generate a summary of the changes made in the given commits. - * - * @param array $change_counts Associative array with keys 'edited', 'added', and 'deleted'. - * @return string Summary of the changes. - */ -function generate_summary( $change_counts ) { - $parts = array(); - - if ( $change_counts['added'] > 0 ) { - $parts[] = sprintf( '%d added', $change_counts['added'] ); - } - - if ( $change_counts['deleted'] > 0 ) { - $parts[] = sprintf( '%d deleted', $change_counts['deleted'] ); - } - - if ( $change_counts['edited'] > 0 ) { - $parts[] = sprintf( '%d edited', $change_counts['edited'] ); +// Newest commits first. +usort( + $commits, + function ( $a, $b ) { + return $b['date'] <=> $a['date']; } +); - if ( empty( $parts ) ) { - return ''; - } - - return implode( ', ', $parts ); -} +$maximum_commits = 5; +$sliced_commits = array_slice( $commits, 0, $maximum_commits ); ?> @@ -107,54 +41,59 @@ function generate_summary( $change_counts ) { esc_attr__( 'Commits', 'wporg-plugins' ) ); - $change_counts = count_file_changes( $commits ); - $summary = generate_summary( $change_counts ); - - $subheading = sprintf( - ' - - ', - $summary - ); - echo do_blocks( $heading ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped - echo do_blocks( $subheading ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?> -
      +
      • - - ID, 20 ); ?> - display_name ); ?> - - context['postId'] ); - $parent_post = get_post( $release_post->post_parent ); + printf( + '%2$s', + esc_url( + sprintf( + 'https://plugins.trac.wordpress.org/changeset/%1$s/%2$s/trunk', + $commit['revision'], + get_plugin_slug() + ) + ), + esc_html( $commit['message'] ) + ); + ?> + - if ( $parent_post ) { + -
      • + + + $maximum_commits ) : ?> +
      • + + + +
      • +
    diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-commits/style-index.css b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-commits/style-index.css index 466d264c4f..6373502b42 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-commits/style-index.css +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-commits/style-index.css @@ -1,25 +1 @@ -/*!**************************************************************************************************************************************************************************************************************************************************************!*\ - !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/blocks/release-commits/style.scss ***! - \**************************************************************************************************************************************************************************************************************************************************************/ -.wp-block-wporg-release-commits { - margin-top: 0 !important; -} -.wp-block-wporg-release-commits ul { - display: flex; - flex-direction: column; - gap: 8px; - list-style: none; -} -.wp-block-wporg-release-commits li { - display: flex; - gap: 8px; -} - -.wp-block-wporg-release-commit-author { - display: flex; - align-items: center; - gap: 8px; - font-weight: 500; -} - -/*# sourceMappingURL=style-index.css.map*/ \ No newline at end of file +.wp-block-wporg-release-commits{margin-top:0!important}.wp-block-wporg-release-commit-list{display:flex;flex-direction:column;gap:8px;list-style:none}.wp-block-wporg-release-commit-list li{align-items:center;display:flex;gap:inherit}.wp-block-wporg-release-commit-author{align-items:center;display:flex;font-weight:500;gap:8px}.wp-block-wporg-release-commit-by-line{font-size:12px}.wp-block-wporg-release-commit-by-line,.wp-block-wporg-release-commit-by-line a{color:var(--wp--preset--color--charcoal-4)!important} diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-date/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-date/render.php index 9a98437739..1b2a451d80 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-date/render.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-date/render.php @@ -1,15 +1,20 @@ context['postId'] ) { return; } -$post = get_post( $block->context['postId'] ); -if ( ! $post ) { +$release_post = get_post( $block->context['postId'] ); +if ( ! $release_post ) { return; } -if ( 'publish' !== $post->post_status ) { +if ( 'publish' !== $release_post->post_status ) { return 3; } diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-details-form/block.json b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-details-form/block.json index 46b5c89954..b6b3110b03 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-details-form/block.json +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-details-form/block.json @@ -14,7 +14,8 @@ "interactivity": true }, "usesContext": [ - "postId" + "postId", + "pluginSlug" ], "editorScript": "file:./index.js", "render": "file:./render.php", diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-details-form/index.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-details-form/index.asset.php index 6e0f2c76c1..3d43d176f6 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-details-form/index.asset.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-details-form/index.asset.php @@ -1 +1 @@ - array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => '314ffa4356c58663de23'); + array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => 'b33dec13bb1cbe0f3761'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-details-form/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-details-form/index.js index 81a050b9a2..50704550b2 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-details-form/index.js +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-details-form/index.js @@ -121,7 +121,7 @@ module.exports = window["wp"]["serverSideRender"]; \****************************************************/ /***/ ((module) => { -module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"wporg/release-details-form","version":"0.1.0","title":"Release Details Form","category":"design","icon":"","description":"A block to display release details form.","textdomain":"wporg","attributes":{},"supports":{"html":false,"interactivity":true},"usesContext":["postId"],"editorScript":"file:./index.js","render":"file:./render.php","style":"file:./style-index.css"}'); +module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"wporg/release-details-form","version":"0.1.0","title":"Release Details Form","category":"design","icon":"","description":"A block to display release details form.","textdomain":"wporg","attributes":{},"supports":{"html":false,"interactivity":true},"usesContext":["postId","pluginSlug"],"editorScript":"file:./index.js","render":"file:./render.php","style":"file:./style-index.css"}'); /***/ }) diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-details-form/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-details-form/render.php index 7d35e07a2a..fad7f60f7d 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-details-form/render.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-details-form/render.php @@ -5,23 +5,23 @@ * @package WordPressdotorg\Plugin_Directory */ -use WordPressdotorg\Plugin_Directory\Template; -use function WordPressdotorg\Plugin_Directory\Theme\{get_blueprint_url, get_latest_release}; +use function WordPressdotorg\Plugin_Directory\Theme\{get_blueprint_url, get_latest_release, get_revision_changeset_link}; // Ensure the block context has a valid post ID. if ( empty( $block->context['postId'] ) ) { return; } -$release_post = get_post( $block->context['postId'] ); -$current_version = get_post_meta( $block->context['postId'], 'release_version', true ); -$tested_up_to = get_post_meta( $block->context['postId'], 'release_tested', true ); +$release_post = get_post( $block->context['postId'] ); // Bail if the release post does not exist. if ( ! $release_post ) { return; } +$current_version = get_post_meta( $block->context['postId'], 'release_version', true ); +$tested_up_to = get_post_meta( $block->context['postId'], 'release_tested', true ); + /** * Returns whether the tested_up_to value is recent. * @@ -49,20 +49,17 @@ function has_recently_been_tested( $tested_up_to ) { return $tested_major >= $latest_major; } - /** * Generate the HTML for a release item content block. * * @param string $label The label for the item. - * @param string $value The value for the item. * @param string $content The additional content or description. * @return string The formatted HTML content for the release item. */ -function get_release_item_content( $label, $value, $content ) { +function get_release_item_content( $label, $content ) { return sprintf( - '
    %1$s: %2$s
    %3$s
    ', - wp_kses_post( $label ), - wp_kses_post( $value ), + '
    %1$s
    %2$s
    ', + esc_html( $label ), wp_kses_post( $content ) ); } @@ -77,7 +74,7 @@ function get_release_item_content( $label, $value, $content ) { function get_release_check_item( $status, $content ) { return do_blocks( sprintf( - '%2$s', + '%2$s', esc_attr( $status ), $content ) @@ -87,23 +84,74 @@ function get_release_check_item( $status, $content ) { /** * Generate the block content for the version number check item. * - * @param bool $verdict Whether the version number is valid. - * @param string $value The current version number. - * @param WP_Post $release_post The release post object. + * @param bool $verdict Whether the version number is valid. + * @param string $value The current version number. + * + * @return string The block content. + */ +function get_changelog_check_item() { + $label = __( 'Update your changelog with key changes.', 'wporg-plugins' ); + $info_text = sprintf( + 'Learn more about writing useful changelogs.', + esc_url( 'https://developer.wordpress.org/plugins/wordpress-org/plugin-developer-faq/#what-should-be-in-my-changelog' ), + ); + + $content = get_release_item_content( $label, $info_text ); + + return get_release_check_item( 'default', $content ); +} + +/** + * Generate the block content for the version number check item. + * + * @param bool $verdict Whether the version number is valid. + * @param string $value The current version number. + * + * @return string The block content. + */ +function get_view_diff_check_item( $post ) { + $label = __( 'Review your changes.', 'wporg-plugins' ); + $commits = get_post_meta( $post->ID, 'release_commit_log', true ); + $plugin = get_post( $post->post_parent ); + $info_text = sprintf( + /* translators: %s: URL to the plugin in the Plugin Directory */ + __( 'Scan through your changeset before publishing.', 'wporg-plugins' ), + esc_url( get_revision_changeset_link( $plugin->post_name, $commits ) ) + ); + $content = get_release_item_content( $label, $info_text ); + + return get_release_check_item( 'default', $content ); +} + +/** + * Generate the block content for the version number check item. + * + * @param bool $verdict Whether the version number is valid. + * @param string $value The current version number. * * @return string The block content. */ -function get_version_number_check_item( $verdict, $value, $release_post ) { - $label = __( 'Version number', 'wporg-plugins' ); - $info_text = __( 'It looks like plugin version was incremented appropriately.', 'wporg-plugins' ); - $status = 'success'; +function get_version_number_check_item( $verdict, $value ) { + $label = __( 'Increment your version number.', 'wporg-plugins' ); + + $info_text = sprintf( + /* translators: %s: The current version number */ + __( 'Current version: %s', 'wporg-plugins' ), + '' . $value . '', + ); + + $status = ''; if ( ! $verdict ) { $status = 'error'; - $info_text = __( 'Please increment your plugin\'s version number.', 'wporg-plugins' ); + $info_text = sprintf( + /* translators: %s: The current version number */ + __( 'Your plugin\'s version number %s must be incremented before you can publish.', 'wporg-plugins' ), + '' . $value . '', + ); } - $content = get_release_item_content( $label, $value, $info_text ); + $content = get_release_item_content( $label, $info_text ); return get_release_check_item( $status, $content ); } @@ -111,29 +159,32 @@ function get_version_number_check_item( $verdict, $value, $release_post ) { /** * Generate the block content for the "Tested up to" check item. * - * @param string $value The tested up to value. + * @param bool $verdict Whether the tested up to value is recent. + * @param string $value The tested up to value. + * @param WP_Post $release_post The release post object. + * * @return string The block content. */ function get_tested_up_to_check_item( $verdict, $value, $release_post ) { $label = __( - 'Tested up to', + 'Test your plugin with the latest version of WordPress.', 'wporg-plugins' ); - $status = 'success'; + $status = ''; - $parent = get_post( $release_post->post_parent ); + $plugin = get_post( $release_post->post_parent ); $blueprint_url = get_blueprint_url( sprintf( 'https://downloads.wordpress.org/plugin/%s.zip', - $parent->post_name, + $plugin->post_name, ) ); $info_text = sprintf( - /* translators: %s: URL to the plugin in the Plugin Directory */ - __( 'Everything looks great! Playground makes testing easy. If needed, you can test it here.', 'wporg-plugins' ), - esc_url( $blueprint_url ) + /* translators: %s: The Tested Up to value */ + __( 'Tested up to: %s', 'wporg-plugins' ), + '' . $value . '', ); if ( empty( $value ) ) { @@ -144,12 +195,13 @@ function get_tested_up_to_check_item( $verdict, $value, $release_post ) { $status = 'warning'; $info_text = sprintf( /* translators: %s: URL to the plugin in the Plugin Directory */ - __( 'Your plugin has been tested with recent versions of WordPress! Test it now in Playground.', 'wporg-plugins' ), + __( 'Tested up to is %1$s. Test it now in Playground and update. ', 'wporg-plugins' ), + '' . $value . '', esc_url( $blueprint_url ) ); } - $content = get_release_item_content( $label, $value, $info_text ); + $content = get_release_item_content( $label, $info_text ); return get_release_check_item( $status, $content ); } @@ -166,22 +218,38 @@ function get_tested_up_to_check_item( $verdict, $value, $release_post ) { data-wp-interactive="async-action-block" > - -

    %s

    - ', - esc_html__( 'Headers', 'wporg-plugins' ) + +

    %s

    + ', + esc_html__( 'Checklist', 'wporg-plugins' ) + ) ) - ); -?> - + ?>
      - + + +
    + + + //
    + //
    + //

    %s

    + //
    + // ', + // esc_html__( 'You need to increment your plugin version number and reload the page.', 'wporg-plugins' ) + // ); + // echo do_blocks( $block ); + ?> +
    -
    - -
    - -
    - -

    - $publish_title -

    - -
    - - - -

    $publish_intro_text

    - - - +
    + +
    + +
    + +

    + $publish_title +

    +
    + + +

    $publish_intro_text

    + + + +
    - + +
    HTML; printf( diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft copy/style-index.css b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft copy/style-index.css index c229af784c..12c4011027 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft copy/style-index.css +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft copy/style-index.css @@ -4,9 +4,5 @@ .wp-block-wporg-release-draft { font-size: var(--wp--preset--font-size--small); } -.wp-block-wporg-release-draft ul { - margin-top: var(--wp--preset--spacing--10); - padding: 0; -} /*# sourceMappingURL=style-index.css.map*/ \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-card/block.json b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-card/block.json new file mode 100644 index 0000000000..ac65278c75 --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-card/block.json @@ -0,0 +1,27 @@ +{ + "$schema": "https://schemas.wp.org/trunk/block.json", + "apiVersion": 2, + "name": "wporg/release-draft-card", + "version": "0.1.0", + "title": "Release Card", + "category": "design", + "icon": "", + "description": "A block to display release draft card.", + "textdomain": "wporg", + "attributes": { + "title": { + "type": "string", + "default": "" + } + }, + "supports": { + "html": false, + "interactivity": true + }, + "usesContext": [ + "postId" + ], + "editorScript": "file:./index.js", + "render": "file:./render.php", + "style": "file:./style-index.css" +} \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-card/index.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-card/index.asset.php new file mode 100644 index 0000000000..0dec727d7d --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-card/index.asset.php @@ -0,0 +1 @@ + array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => 'ff8e2cb22c250b0d6bfe'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-card/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-card/index.js new file mode 100644 index 0000000000..602db4b870 --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-card/index.js @@ -0,0 +1,298 @@ +/******/ (() => { // webpackBootstrap +/******/ "use strict"; +/******/ var __webpack_modules__ = ({ + +/***/ "./src/blocks/release-draft-card/index.js": +/*!************************************************!*\ + !*** ./src/blocks/release-draft-card/index.js ***! + \************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); +/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/blocks */ "@wordpress/blocks"); +/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/server-side-render */ "@wordpress/server-side-render"); +/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/block-editor */ "@wordpress/block-editor"); +/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__); +/* harmony import */ var _block_json__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./block.json */ "./src/blocks/release-draft-card/block.json"); +/* harmony import */ var _style_scss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./style.scss */ "./src/blocks/release-draft-card/style.scss"); + +/** + * WordPress dependencies + */ + + + + + +/** + * Internal dependencies + */ + + +function Edit({ + attributes, + name +}) { + return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", { + ...(0,_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__.useBlockProps)() + }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Disabled, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)((_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default()), { + block: name, + attributes: attributes + }))); +} +(0,_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__.registerBlockType)(_block_json__WEBPACK_IMPORTED_MODULE_5__.name, { + edit: Edit, + save: () => null +}); + +/***/ }), + +/***/ "./src/blocks/release-draft-card/style.scss": +/*!**************************************************!*\ + !*** ./src/blocks/release-draft-card/style.scss ***! + \**************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +// extracted by mini-css-extract-plugin + + +/***/ }), + +/***/ "react": +/*!************************!*\ + !*** external "React" ***! + \************************/ +/***/ ((module) => { + +module.exports = window["React"]; + +/***/ }), + +/***/ "@wordpress/block-editor": +/*!*************************************!*\ + !*** external ["wp","blockEditor"] ***! + \*************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["blockEditor"]; + +/***/ }), + +/***/ "@wordpress/blocks": +/*!********************************!*\ + !*** external ["wp","blocks"] ***! + \********************************/ +/***/ ((module) => { + +module.exports = window["wp"]["blocks"]; + +/***/ }), + +/***/ "@wordpress/components": +/*!************************************!*\ + !*** external ["wp","components"] ***! + \************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["components"]; + +/***/ }), + +/***/ "@wordpress/server-side-render": +/*!******************************************!*\ + !*** external ["wp","serverSideRender"] ***! + \******************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["serverSideRender"]; + +/***/ }), + +/***/ "./src/blocks/release-draft-card/block.json": +/*!**************************************************!*\ + !*** ./src/blocks/release-draft-card/block.json ***! + \**************************************************/ +/***/ ((module) => { + +module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"wporg/release-draft-card","version":"0.1.0","title":"Release Card","category":"design","icon":"","description":"A block to display release draft card.","textdomain":"wporg","attributes":{"title":{"type":"string","default":""}},"supports":{"html":false,"interactivity":true},"usesContext":["postId"],"editorScript":"file:./index.js","render":"file:./render.php","style":"file:./style-index.css"}'); + +/***/ }) + +/******/ }); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ // no module.id needed +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = __webpack_modules__; +/******/ +/************************************************************************/ +/******/ /* webpack/runtime/chunk loaded */ +/******/ (() => { +/******/ var deferred = []; +/******/ __webpack_require__.O = (result, chunkIds, fn, priority) => { +/******/ if(chunkIds) { +/******/ priority = priority || 0; +/******/ for(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1]; +/******/ deferred[i] = [chunkIds, fn, priority]; +/******/ return; +/******/ } +/******/ var notFulfilled = Infinity; +/******/ for (var i = 0; i < deferred.length; i++) { +/******/ var chunkIds = deferred[i][0]; +/******/ var fn = deferred[i][1]; +/******/ var priority = deferred[i][2]; +/******/ var fulfilled = true; +/******/ for (var j = 0; j < chunkIds.length; j++) { +/******/ if ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) { +/******/ chunkIds.splice(j--, 1); +/******/ } else { +/******/ fulfilled = false; +/******/ if(priority < notFulfilled) notFulfilled = priority; +/******/ } +/******/ } +/******/ if(fulfilled) { +/******/ deferred.splice(i--, 1) +/******/ var r = fn(); +/******/ if (r !== undefined) result = r; +/******/ } +/******/ } +/******/ return result; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/compat get default export */ +/******/ (() => { +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = (module) => { +/******/ var getter = module && module.__esModule ? +/******/ () => (module['default']) : +/******/ () => (module); +/******/ __webpack_require__.d(getter, { a: getter }); +/******/ return getter; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/define property getters */ +/******/ (() => { +/******/ // define getter functions for harmony exports +/******/ __webpack_require__.d = (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 */ +/******/ (() => { +/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) +/******/ })(); +/******/ +/******/ /* webpack/runtime/make namespace object */ +/******/ (() => { +/******/ // define __esModule on exports +/******/ __webpack_require__.r = (exports) => { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/jsonp chunk loading */ +/******/ (() => { +/******/ // no baseURI +/******/ +/******/ // object to store loaded and loading chunks +/******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched +/******/ // [resolve, reject, Promise] = chunk loading, 0 = chunk loaded +/******/ var installedChunks = { +/******/ "blocks/release-draft-card/index": 0, +/******/ "blocks/release-draft-card/style-index": 0 +/******/ }; +/******/ +/******/ // no chunk on demand loading +/******/ +/******/ // no prefetching +/******/ +/******/ // no preloaded +/******/ +/******/ // no HMR +/******/ +/******/ // no HMR manifest +/******/ +/******/ __webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0); +/******/ +/******/ // install a JSONP callback for chunk loading +/******/ var webpackJsonpCallback = (parentChunkLoadingFunction, data) => { +/******/ var chunkIds = data[0]; +/******/ var moreModules = data[1]; +/******/ var runtime = data[2]; +/******/ // add "moreModules" to the modules object, +/******/ // then flag all "chunkIds" as loaded and fire callback +/******/ var moduleId, chunkId, i = 0; +/******/ if(chunkIds.some((id) => (installedChunks[id] !== 0))) { +/******/ for(moduleId in moreModules) { +/******/ if(__webpack_require__.o(moreModules, moduleId)) { +/******/ __webpack_require__.m[moduleId] = moreModules[moduleId]; +/******/ } +/******/ } +/******/ if(runtime) var result = runtime(__webpack_require__); +/******/ } +/******/ if(parentChunkLoadingFunction) parentChunkLoadingFunction(data); +/******/ for(;i < chunkIds.length; i++) { +/******/ chunkId = chunkIds[i]; +/******/ if(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) { +/******/ installedChunks[chunkId][0](); +/******/ } +/******/ installedChunks[chunkId] = 0; +/******/ } +/******/ return __webpack_require__.O(result); +/******/ } +/******/ +/******/ var chunkLoadingGlobal = self["webpackChunkwporg_plugins_2024"] = self["webpackChunkwporg_plugins_2024"] || []; +/******/ chunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0)); +/******/ chunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal)); +/******/ })(); +/******/ +/************************************************************************/ +/******/ +/******/ // startup +/******/ // Load entry module and return exports +/******/ // This entry module depends on other loaded chunks and execution need to be delayed +/******/ var __webpack_exports__ = __webpack_require__.O(undefined, ["blocks/release-draft-card/style-index"], () => (__webpack_require__("./src/blocks/release-draft-card/index.js"))) +/******/ __webpack_exports__ = __webpack_require__.O(__webpack_exports__); +/******/ +/******/ })() +; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-card/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-card/render.php new file mode 100644 index 0000000000..8e273d7e29 --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-card/render.php @@ -0,0 +1,25 @@ + +
    + +

    + $post_title +

    + + $block->inner_html ); +
    + +HTML; + +printf( + '
    %2$s
    ', + wp_kses_data( get_block_wrapper_attributes() ), + do_blocks( $markup ) // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped +); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-card/style-index.css b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-card/style-index.css new file mode 100644 index 0000000000..1e76ec694e --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-card/style-index.css @@ -0,0 +1,8 @@ +/*!*****************************************************************************************************************************************************************************************************************************************************************!*\ + !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/blocks/release-draft-card/style.scss ***! + \*****************************************************************************************************************************************************************************************************************************************************************/ +.wp-block-wporg-release-draft { + font-size: var(--wp--preset--font-size--small); +} + +/*# sourceMappingURL=style-index.css.map*/ \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-content/block.json b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-content/block.json new file mode 100644 index 0000000000..ca88e99adf --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-content/block.json @@ -0,0 +1,27 @@ +{ + "$schema": "https://schemas.wp.org/trunk/block.json", + "apiVersion": 2, + "name": "wporg/release-draft-content", + "version": "0.1.0", + "title": "Release Content", + "category": "design", + "icon": "", + "description": "A block to display release draft content.", + "textdomain": "wporg", + "attributes": { + "title": { + "type": "string", + "default": "" + } + }, + "supports": { + "html": false, + "interactivity": true + }, + "usesContext": [ + "postId" + ], + "editorScript": "file:./index.js", + "render": "file:./render.php", + "style": "file:./style-index.css" +} \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-content/index.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-content/index.asset.php new file mode 100644 index 0000000000..e056aa5178 --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-content/index.asset.php @@ -0,0 +1 @@ + array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => '2e6e4bdad85f284eebf2'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-content/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-content/index.js new file mode 100644 index 0000000000..ad8c9bcd69 --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-content/index.js @@ -0,0 +1,298 @@ +/******/ (() => { // webpackBootstrap +/******/ "use strict"; +/******/ var __webpack_modules__ = ({ + +/***/ "./src/blocks/release-draft-content/index.js": +/*!***************************************************!*\ + !*** ./src/blocks/release-draft-content/index.js ***! + \***************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); +/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/blocks */ "@wordpress/blocks"); +/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/server-side-render */ "@wordpress/server-side-render"); +/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/block-editor */ "@wordpress/block-editor"); +/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__); +/* harmony import */ var _block_json__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./block.json */ "./src/blocks/release-draft-content/block.json"); +/* harmony import */ var _style_scss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./style.scss */ "./src/blocks/release-draft-content/style.scss"); + +/** + * WordPress dependencies + */ + + + + + +/** + * Internal dependencies + */ + + +function Edit({ + attributes, + name +}) { + return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", { + ...(0,_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__.useBlockProps)() + }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Disabled, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)((_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default()), { + block: name, + attributes: attributes + }))); +} +(0,_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__.registerBlockType)(_block_json__WEBPACK_IMPORTED_MODULE_5__.name, { + edit: Edit, + save: () => null +}); + +/***/ }), + +/***/ "./src/blocks/release-draft-content/style.scss": +/*!*****************************************************!*\ + !*** ./src/blocks/release-draft-content/style.scss ***! + \*****************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +// extracted by mini-css-extract-plugin + + +/***/ }), + +/***/ "react": +/*!************************!*\ + !*** external "React" ***! + \************************/ +/***/ ((module) => { + +module.exports = window["React"]; + +/***/ }), + +/***/ "@wordpress/block-editor": +/*!*************************************!*\ + !*** external ["wp","blockEditor"] ***! + \*************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["blockEditor"]; + +/***/ }), + +/***/ "@wordpress/blocks": +/*!********************************!*\ + !*** external ["wp","blocks"] ***! + \********************************/ +/***/ ((module) => { + +module.exports = window["wp"]["blocks"]; + +/***/ }), + +/***/ "@wordpress/components": +/*!************************************!*\ + !*** external ["wp","components"] ***! + \************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["components"]; + +/***/ }), + +/***/ "@wordpress/server-side-render": +/*!******************************************!*\ + !*** external ["wp","serverSideRender"] ***! + \******************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["serverSideRender"]; + +/***/ }), + +/***/ "./src/blocks/release-draft-content/block.json": +/*!*****************************************************!*\ + !*** ./src/blocks/release-draft-content/block.json ***! + \*****************************************************/ +/***/ ((module) => { + +module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"wporg/release-draft-content","version":"0.1.0","title":"Release Content","category":"design","icon":"","description":"A block to display release draft content.","textdomain":"wporg","attributes":{"title":{"type":"string","default":""}},"supports":{"html":false,"interactivity":true},"usesContext":["postId"],"editorScript":"file:./index.js","render":"file:./render.php","style":"file:./style-index.css"}'); + +/***/ }) + +/******/ }); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ // no module.id needed +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = __webpack_modules__; +/******/ +/************************************************************************/ +/******/ /* webpack/runtime/chunk loaded */ +/******/ (() => { +/******/ var deferred = []; +/******/ __webpack_require__.O = (result, chunkIds, fn, priority) => { +/******/ if(chunkIds) { +/******/ priority = priority || 0; +/******/ for(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1]; +/******/ deferred[i] = [chunkIds, fn, priority]; +/******/ return; +/******/ } +/******/ var notFulfilled = Infinity; +/******/ for (var i = 0; i < deferred.length; i++) { +/******/ var chunkIds = deferred[i][0]; +/******/ var fn = deferred[i][1]; +/******/ var priority = deferred[i][2]; +/******/ var fulfilled = true; +/******/ for (var j = 0; j < chunkIds.length; j++) { +/******/ if ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) { +/******/ chunkIds.splice(j--, 1); +/******/ } else { +/******/ fulfilled = false; +/******/ if(priority < notFulfilled) notFulfilled = priority; +/******/ } +/******/ } +/******/ if(fulfilled) { +/******/ deferred.splice(i--, 1) +/******/ var r = fn(); +/******/ if (r !== undefined) result = r; +/******/ } +/******/ } +/******/ return result; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/compat get default export */ +/******/ (() => { +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = (module) => { +/******/ var getter = module && module.__esModule ? +/******/ () => (module['default']) : +/******/ () => (module); +/******/ __webpack_require__.d(getter, { a: getter }); +/******/ return getter; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/define property getters */ +/******/ (() => { +/******/ // define getter functions for harmony exports +/******/ __webpack_require__.d = (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 */ +/******/ (() => { +/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) +/******/ })(); +/******/ +/******/ /* webpack/runtime/make namespace object */ +/******/ (() => { +/******/ // define __esModule on exports +/******/ __webpack_require__.r = (exports) => { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/jsonp chunk loading */ +/******/ (() => { +/******/ // no baseURI +/******/ +/******/ // object to store loaded and loading chunks +/******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched +/******/ // [resolve, reject, Promise] = chunk loading, 0 = chunk loaded +/******/ var installedChunks = { +/******/ "blocks/release-draft-content/index": 0, +/******/ "blocks/release-draft-content/style-index": 0 +/******/ }; +/******/ +/******/ // no chunk on demand loading +/******/ +/******/ // no prefetching +/******/ +/******/ // no preloaded +/******/ +/******/ // no HMR +/******/ +/******/ // no HMR manifest +/******/ +/******/ __webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0); +/******/ +/******/ // install a JSONP callback for chunk loading +/******/ var webpackJsonpCallback = (parentChunkLoadingFunction, data) => { +/******/ var chunkIds = data[0]; +/******/ var moreModules = data[1]; +/******/ var runtime = data[2]; +/******/ // add "moreModules" to the modules object, +/******/ // then flag all "chunkIds" as loaded and fire callback +/******/ var moduleId, chunkId, i = 0; +/******/ if(chunkIds.some((id) => (installedChunks[id] !== 0))) { +/******/ for(moduleId in moreModules) { +/******/ if(__webpack_require__.o(moreModules, moduleId)) { +/******/ __webpack_require__.m[moduleId] = moreModules[moduleId]; +/******/ } +/******/ } +/******/ if(runtime) var result = runtime(__webpack_require__); +/******/ } +/******/ if(parentChunkLoadingFunction) parentChunkLoadingFunction(data); +/******/ for(;i < chunkIds.length; i++) { +/******/ chunkId = chunkIds[i]; +/******/ if(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) { +/******/ installedChunks[chunkId][0](); +/******/ } +/******/ installedChunks[chunkId] = 0; +/******/ } +/******/ return __webpack_require__.O(result); +/******/ } +/******/ +/******/ var chunkLoadingGlobal = self["webpackChunkwporg_plugins_2024"] = self["webpackChunkwporg_plugins_2024"] || []; +/******/ chunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0)); +/******/ chunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal)); +/******/ })(); +/******/ +/************************************************************************/ +/******/ +/******/ // startup +/******/ // Load entry module and return exports +/******/ // This entry module depends on other loaded chunks and execution need to be delayed +/******/ var __webpack_exports__ = __webpack_require__.O(undefined, ["blocks/release-draft-content/style-index"], () => (__webpack_require__("./src/blocks/release-draft-content/index.js"))) +/******/ __webpack_exports__ = __webpack_require__.O(__webpack_exports__); +/******/ +/******/ })() +; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-content/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-content/render.php new file mode 100644 index 0000000000..4132cb8682 --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-content/render.php @@ -0,0 +1,25 @@ + +
    + +

    + $post_title +

    + + $block->inner_html ); +
    + +HTML; + +printf( + '
    %2$s
    ', + wp_kses_data( get_block_wrapper_attributes() ), + do_blocks( $markup ) // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped +); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-content/style-index.css b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-content/style-index.css new file mode 100644 index 0000000000..5ca238dd3c --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-content/style-index.css @@ -0,0 +1,8 @@ +/*!********************************************************************************************************************************************************************************************************************************************************************!*\ + !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/blocks/release-draft-content/style.scss ***! + \********************************************************************************************************************************************************************************************************************************************************************/ +.wp-block-wporg-release-draft { + font-size: var(--wp--preset--font-size--small); +} + +/*# sourceMappingURL=style-index.css.map*/ \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft/index.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft/index.asset.php index 12b7e1303a..fa290c80b7 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft/index.asset.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft/index.asset.php @@ -1 +1 @@ - array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => '4e12b6eb8d27834cbced'); + array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => '751493c9e75203fe2290'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft/index.js index 8eecd7890d..5ab50814a7 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft/index.js +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft/index.js @@ -1,298 +1 @@ -/******/ (() => { // webpackBootstrap -/******/ "use strict"; -/******/ var __webpack_modules__ = ({ - -/***/ "./src/blocks/release-draft/index.js": -/*!*******************************************!*\ - !*** ./src/blocks/release-draft/index.js ***! - \*******************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); -/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/blocks */ "@wordpress/blocks"); -/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/server-side-render */ "@wordpress/server-side-render"); -/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/block-editor */ "@wordpress/block-editor"); -/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__); -/* harmony import */ var _block_json__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./block.json */ "./src/blocks/release-draft/block.json"); -/* harmony import */ var _style_scss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./style.scss */ "./src/blocks/release-draft/style.scss"); - -/** - * WordPress dependencies - */ - - - - - -/** - * Internal dependencies - */ - - -function Edit({ - attributes, - name -}) { - return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", { - ...(0,_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__.useBlockProps)() - }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Disabled, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)((_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default()), { - block: name, - attributes: attributes - }))); -} -(0,_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__.registerBlockType)(_block_json__WEBPACK_IMPORTED_MODULE_5__.name, { - edit: Edit, - save: () => null -}); - -/***/ }), - -/***/ "./src/blocks/release-draft/style.scss": -/*!*********************************************!*\ - !*** ./src/blocks/release-draft/style.scss ***! - \*********************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -// extracted by mini-css-extract-plugin - - -/***/ }), - -/***/ "react": -/*!************************!*\ - !*** external "React" ***! - \************************/ -/***/ ((module) => { - -module.exports = window["React"]; - -/***/ }), - -/***/ "@wordpress/block-editor": -/*!*************************************!*\ - !*** external ["wp","blockEditor"] ***! - \*************************************/ -/***/ ((module) => { - -module.exports = window["wp"]["blockEditor"]; - -/***/ }), - -/***/ "@wordpress/blocks": -/*!********************************!*\ - !*** external ["wp","blocks"] ***! - \********************************/ -/***/ ((module) => { - -module.exports = window["wp"]["blocks"]; - -/***/ }), - -/***/ "@wordpress/components": -/*!************************************!*\ - !*** external ["wp","components"] ***! - \************************************/ -/***/ ((module) => { - -module.exports = window["wp"]["components"]; - -/***/ }), - -/***/ "@wordpress/server-side-render": -/*!******************************************!*\ - !*** external ["wp","serverSideRender"] ***! - \******************************************/ -/***/ ((module) => { - -module.exports = window["wp"]["serverSideRender"]; - -/***/ }), - -/***/ "./src/blocks/release-draft/block.json": -/*!*********************************************!*\ - !*** ./src/blocks/release-draft/block.json ***! - \*********************************************/ -/***/ ((module) => { - -module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"wporg/release-draft","version":"0.1.0","title":"Release Draft","category":"design","icon":"","description":"A block to display release draft.","textdomain":"wporg","attributes":{},"supports":{"html":false,"interactivity":true},"usesContext":["postId"],"editorScript":"file:./index.js","render":"file:./render.php","style":"file:./style-index.css"}'); - -/***/ }) - -/******/ }); -/************************************************************************/ -/******/ // The module cache -/******/ var __webpack_module_cache__ = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ // Check if module is in cache -/******/ var cachedModule = __webpack_module_cache__[moduleId]; -/******/ if (cachedModule !== undefined) { -/******/ return cachedModule.exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = __webpack_module_cache__[moduleId] = { -/******/ // no module.id needed -/******/ // no module.loaded needed -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = __webpack_modules__; -/******/ -/************************************************************************/ -/******/ /* webpack/runtime/chunk loaded */ -/******/ (() => { -/******/ var deferred = []; -/******/ __webpack_require__.O = (result, chunkIds, fn, priority) => { -/******/ if(chunkIds) { -/******/ priority = priority || 0; -/******/ for(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1]; -/******/ deferred[i] = [chunkIds, fn, priority]; -/******/ return; -/******/ } -/******/ var notFulfilled = Infinity; -/******/ for (var i = 0; i < deferred.length; i++) { -/******/ var chunkIds = deferred[i][0]; -/******/ var fn = deferred[i][1]; -/******/ var priority = deferred[i][2]; -/******/ var fulfilled = true; -/******/ for (var j = 0; j < chunkIds.length; j++) { -/******/ if ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) { -/******/ chunkIds.splice(j--, 1); -/******/ } else { -/******/ fulfilled = false; -/******/ if(priority < notFulfilled) notFulfilled = priority; -/******/ } -/******/ } -/******/ if(fulfilled) { -/******/ deferred.splice(i--, 1) -/******/ var r = fn(); -/******/ if (r !== undefined) result = r; -/******/ } -/******/ } -/******/ return result; -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/compat get default export */ -/******/ (() => { -/******/ // getDefaultExport function for compatibility with non-harmony modules -/******/ __webpack_require__.n = (module) => { -/******/ var getter = module && module.__esModule ? -/******/ () => (module['default']) : -/******/ () => (module); -/******/ __webpack_require__.d(getter, { a: getter }); -/******/ return getter; -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/define property getters */ -/******/ (() => { -/******/ // define getter functions for harmony exports -/******/ __webpack_require__.d = (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 */ -/******/ (() => { -/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) -/******/ })(); -/******/ -/******/ /* webpack/runtime/make namespace object */ -/******/ (() => { -/******/ // define __esModule on exports -/******/ __webpack_require__.r = (exports) => { -/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { -/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); -/******/ } -/******/ Object.defineProperty(exports, '__esModule', { value: true }); -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/jsonp chunk loading */ -/******/ (() => { -/******/ // no baseURI -/******/ -/******/ // object to store loaded and loading chunks -/******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched -/******/ // [resolve, reject, Promise] = chunk loading, 0 = chunk loaded -/******/ var installedChunks = { -/******/ "blocks/release-draft/index": 0, -/******/ "blocks/release-draft/style-index": 0 -/******/ }; -/******/ -/******/ // no chunk on demand loading -/******/ -/******/ // no prefetching -/******/ -/******/ // no preloaded -/******/ -/******/ // no HMR -/******/ -/******/ // no HMR manifest -/******/ -/******/ __webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0); -/******/ -/******/ // install a JSONP callback for chunk loading -/******/ var webpackJsonpCallback = (parentChunkLoadingFunction, data) => { -/******/ var chunkIds = data[0]; -/******/ var moreModules = data[1]; -/******/ var runtime = data[2]; -/******/ // add "moreModules" to the modules object, -/******/ // then flag all "chunkIds" as loaded and fire callback -/******/ var moduleId, chunkId, i = 0; -/******/ if(chunkIds.some((id) => (installedChunks[id] !== 0))) { -/******/ for(moduleId in moreModules) { -/******/ if(__webpack_require__.o(moreModules, moduleId)) { -/******/ __webpack_require__.m[moduleId] = moreModules[moduleId]; -/******/ } -/******/ } -/******/ if(runtime) var result = runtime(__webpack_require__); -/******/ } -/******/ if(parentChunkLoadingFunction) parentChunkLoadingFunction(data); -/******/ for(;i < chunkIds.length; i++) { -/******/ chunkId = chunkIds[i]; -/******/ if(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) { -/******/ installedChunks[chunkId][0](); -/******/ } -/******/ installedChunks[chunkId] = 0; -/******/ } -/******/ return __webpack_require__.O(result); -/******/ } -/******/ -/******/ var chunkLoadingGlobal = self["webpackChunkwporg_plugins_2024"] = self["webpackChunkwporg_plugins_2024"] || []; -/******/ chunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0)); -/******/ chunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal)); -/******/ })(); -/******/ -/************************************************************************/ -/******/ -/******/ // startup -/******/ // Load entry module and return exports -/******/ // This entry module depends on other loaded chunks and execution need to be delayed -/******/ var __webpack_exports__ = __webpack_require__.O(undefined, ["blocks/release-draft/style-index"], () => (__webpack_require__("./src/blocks/release-draft/index.js"))) -/******/ __webpack_exports__ = __webpack_require__.O(__webpack_exports__); -/******/ -/******/ })() -; -//# sourceMappingURL=index.js.map \ No newline at end of file +(()=>{"use strict";var e,r={557:(e,r,t)=>{const n=window.React,o=window.wp.components,a=window.wp.blocks,i=window.wp.serverSideRender;var l=t.n(i);const s=window.wp.blockEditor,p=JSON.parse('{"u2":"wporg/release-draft"}');(0,a.registerBlockType)(p.u2,{edit:function({attributes:e,name:r}){return(0,n.createElement)("div",{...(0,s.useBlockProps)()},(0,n.createElement)(o.Disabled,null,(0,n.createElement)(l(),{block:r,attributes:e})))},save:()=>null})}},t={};function n(e){var o=t[e];if(void 0!==o)return o.exports;var a=t[e]={exports:{}};return r[e](a,a.exports,n),a.exports}n.m=r,e=[],n.O=(r,t,o,a)=>{if(!t){var i=1/0;for(u=0;u=a)&&Object.keys(n.O).every((e=>n.O[e](t[s])))?t.splice(s--,1):(l=!1,a0&&e[u-1][2]>a;u--)e[u]=e[u-1];e[u]=[t,o,a]},n.n=e=>{var r=e&&e.__esModule?()=>e.default:()=>e;return n.d(r,{a:r}),r},n.d=(e,r)=>{for(var t in r)n.o(r,t)&&!n.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:r[t]})},n.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),(()=>{var e={894:0,883:0};n.O.j=r=>0===e[r];var r=(r,t)=>{var o,a,i=t[0],l=t[1],s=t[2],p=0;if(i.some((r=>0!==e[r]))){for(o in l)n.o(l,o)&&(n.m[o]=l[o]);if(s)var u=s(n)}for(r&&r(t);pn(557)));o=n.O(o)})(); \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft/render.php index f412bc815f..e753c05f55 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft/render.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft/render.php @@ -1,4 +1,9 @@ context['postId'] ); +$plugin_post = get_post( $block->context['postId'] ); -if ( ! $post ) { +if ( ! $plugin_post ) { return; } -// get release for the post +/** + * We are in the context of the plugin post, so we can query for the latest draft post. + */ $query_args = array( 'post_type' => 'plugin_release', 'posts_per_page' => 1, - 'post_parent' => $post->ID, + 'post_parent' => $plugin_post->ID, 'orderby' => 'date', 'post_status' => 'draft', 'order' => 'DESC', @@ -32,82 +39,39 @@ // Fetch the latest draft post. $latest_draft_query->the_post(); -$post_title = __( 'Trunk', 'wporg-plugins' ); -$intro_text = __( 'There are unpublished changes in your trunk folder.', 'wporg-plugins' ); -$publish_title = __( 'Create release', 'wporg-plugins' ); -$publish_intro_text = __( 'Before releasing your plugin, take a moment to verify and update the following values:', 'wporg-plugins' ); -$publish_button_text = __( 'Create release', 'wporg-plugins' ); +$post_title = __( 'Trunk', 'wporg-plugins' ); +$intro_text = __( 'There are unpublished changes in your trunk folder.', 'wporg-plugins' ); +$button_text = __( 'Create release', 'wporg-plugins' ); +$publish_title = __( 'Create release', 'wporg-plugins' ); $markup = << - -
    - -
    - -
    +
    + + +

    $intro_text

    + - -
    - -

    - $post_title -

    - - -
    - + + - -

    $intro_text

    - - -
    - -
    - - - -
    - - -
    - -
    + +
    -
    - +
    -
    - -
    - -
    - -

    - $publish_title -

    - -
    - - - -

    $publish_intro_text

    - - - -
    - +
    + + +
    - HTML; printf( diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft/style-index.css b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft/style-index.css index c62356a785..f58c926420 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft/style-index.css +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft/style-index.css @@ -1,15 +1 @@ -/*!************************************************************************************************************************************************************************************************************************************************************!*\ - !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/blocks/release-draft/style.scss ***! - \************************************************************************************************************************************************************************************************************************************************************/ -.wp-block-wporg-release-draft { - font-size: var(--wp--preset--font-size--small); -} -.wp-block-wporg-release-draft ul { - margin-top: var(--wp--preset--spacing--10); - padding: 0; - display: flex; - flex-direction: column; - gap: 12px; -} - -/*# sourceMappingURL=style-index.css.map*/ \ No newline at end of file +.wp-block-wporg-release-draft{font-size:var(--wp--preset--font-size--small)} diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft/view.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft/view.asset.php index cb485ea595..f72123147f 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft/view.asset.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft/view.asset.php @@ -1 +1 @@ - array('@wordpress/interactivity'), 'version' => '63814ecbf0fd013d56ae', 'type' => 'module'); + array('@wordpress/interactivity'), 'version' => 'b2c4b9d88f9bf4c4b32c', 'type' => 'module'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft/view.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft/view.js index 75e14f6d6d..d5acc8111d 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft/view.js +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft/view.js @@ -68,49 +68,48 @@ const { state } = (0,_wordpress_interactivity__WEBPACK_IMPORTED_MODULE_0__.store)('async-action-block', { state: { - preSubmitting: false, - isWaiting: false, - isComplete: false, - errorMessage: '' + get userHasConfirmed() { + return state.hasConfirmed; + } }, actions: { - handlePreSubmit(event) { - event.preventDefault(); - console.log('called'); - state.preSubmitting = true; + handleReleaseConfirm() { + state.hasConfirmed = !state.hasConfirmed; }, handleBackClick(event) { event.preventDefault(); - state.preSubmitting = false; + state.isCreatingRelease = false; + + // Make user reconfirm. + state.hasConfirmed = false; }, *handleSubmit(event) { - // Prevent default form submission event.preventDefault(); - - // Set waiting state state.isWaiting = true; - state.isComplete = false; state.errorMessage = ''; - state.btnText = 'Processing...'; + const { + pluginSlug, + nonce, + apiURL + } = (0,_wordpress_interactivity__WEBPACK_IMPORTED_MODULE_0__.getContext)(); try { - const response = yield fetch('/plugins/wp-json/plugins/v2/plugin/clapback/release', { + const response = yield fetch(apiURL, { method: 'POST', headers: { - 'Content-Type': 'application/json' - } + 'Content-Type': 'application/json', + 'X-WP-Nonce': nonce + }, + body: JSON.stringify({ + plugin_slug: pluginSlug + }) }); const data = yield response.json(); // Update state based on response - if (data.success) { - state.isComplete = true; - } else { + if (data.success) {} else { state.errorMessage = data.message || 'Action failed'; - state.btnText = 'failed'; } } catch (error) { - debugger; - state.btnText = 'failed...'; state.errorMessage = 'Network error occurred'; } finally { state.isWaiting = false; diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-flags/index.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-flags/index.asset.php index eb4ddec36a..e0553317b8 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-flags/index.asset.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-flags/index.asset.php @@ -1 +1 @@ - array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => '990d288e4c52e5e38e55'); + array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => '4781f29298609c4d254e'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-flags/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-flags/index.js index 4808f9f376..fb4a906b0f 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-flags/index.js +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-flags/index.js @@ -1,183 +1 @@ -/******/ (() => { // webpackBootstrap -/******/ "use strict"; -/******/ var __webpack_modules__ = ({ - -/***/ "react": -/*!************************!*\ - !*** external "React" ***! - \************************/ -/***/ ((module) => { - -module.exports = window["React"]; - -/***/ }), - -/***/ "@wordpress/block-editor": -/*!*************************************!*\ - !*** external ["wp","blockEditor"] ***! - \*************************************/ -/***/ ((module) => { - -module.exports = window["wp"]["blockEditor"]; - -/***/ }), - -/***/ "@wordpress/blocks": -/*!********************************!*\ - !*** external ["wp","blocks"] ***! - \********************************/ -/***/ ((module) => { - -module.exports = window["wp"]["blocks"]; - -/***/ }), - -/***/ "@wordpress/components": -/*!************************************!*\ - !*** external ["wp","components"] ***! - \************************************/ -/***/ ((module) => { - -module.exports = window["wp"]["components"]; - -/***/ }), - -/***/ "@wordpress/server-side-render": -/*!******************************************!*\ - !*** external ["wp","serverSideRender"] ***! - \******************************************/ -/***/ ((module) => { - -module.exports = window["wp"]["serverSideRender"]; - -/***/ }), - -/***/ "./src/blocks/release-flags/block.json": -/*!*********************************************!*\ - !*** ./src/blocks/release-flags/block.json ***! - \*********************************************/ -/***/ ((module) => { - -module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"wporg/release-flags","version":"0.1.0","title":"Release Flags","category":"design","icon":"","description":"A block to display release flags.","textdomain":"wporg","attributes":{},"supports":{"html":false},"usesContext":["postId"],"editorScript":"file:./index.js","render":"file:./render.php","style":"file:./style-index.css"}'); - -/***/ }) - -/******/ }); -/************************************************************************/ -/******/ // The module cache -/******/ var __webpack_module_cache__ = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ // Check if module is in cache -/******/ var cachedModule = __webpack_module_cache__[moduleId]; -/******/ if (cachedModule !== undefined) { -/******/ return cachedModule.exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = __webpack_module_cache__[moduleId] = { -/******/ // no module.id needed -/******/ // no module.loaded needed -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/************************************************************************/ -/******/ /* webpack/runtime/compat get default export */ -/******/ (() => { -/******/ // getDefaultExport function for compatibility with non-harmony modules -/******/ __webpack_require__.n = (module) => { -/******/ var getter = module && module.__esModule ? -/******/ () => (module['default']) : -/******/ () => (module); -/******/ __webpack_require__.d(getter, { a: getter }); -/******/ return getter; -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/define property getters */ -/******/ (() => { -/******/ // define getter functions for harmony exports -/******/ __webpack_require__.d = (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 */ -/******/ (() => { -/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) -/******/ })(); -/******/ -/******/ /* webpack/runtime/make namespace object */ -/******/ (() => { -/******/ // define __esModule on exports -/******/ __webpack_require__.r = (exports) => { -/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { -/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); -/******/ } -/******/ Object.defineProperty(exports, '__esModule', { value: true }); -/******/ }; -/******/ })(); -/******/ -/************************************************************************/ -var __webpack_exports__ = {}; -// This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk. -(() => { -/*!*******************************************!*\ - !*** ./src/blocks/release-flags/index.js ***! - \*******************************************/ -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); -/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/blocks */ "@wordpress/blocks"); -/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/server-side-render */ "@wordpress/server-side-render"); -/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/block-editor */ "@wordpress/block-editor"); -/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__); -/* harmony import */ var _block_json__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./block.json */ "./src/blocks/release-flags/block.json"); - -/** - * WordPress dependencies - */ - - - - - -/** - * Internal dependencies - */ - -function Edit({ - attributes, - name -}) { - return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", { - ...(0,_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__.useBlockProps)() - }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Disabled, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)((_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default()), { - block: name, - attributes: attributes - }))); -} -(0,_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__.registerBlockType)(_block_json__WEBPACK_IMPORTED_MODULE_5__.name, { - edit: Edit, - save: () => null -}); -})(); - -/******/ })() -; -//# sourceMappingURL=index.js.map \ No newline at end of file +(()=>{"use strict";var e={n:t=>{var r=t&&t.__esModule?()=>t.default:()=>t;return e.d(r,{a:r}),r},d:(t,r)=>{for(var o in r)e.o(r,o)&&!e.o(t,o)&&Object.defineProperty(t,o,{enumerable:!0,get:r[o]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t)};const t=window.React,r=window.wp.components,o=window.wp.blocks,n=window.wp.serverSideRender;var a=e.n(n);const l=window.wp.blockEditor,s=JSON.parse('{"u2":"wporg/release-flags"}');(0,o.registerBlockType)(s.u2,{edit:function({attributes:e,name:o}){return(0,t.createElement)("div",{...(0,l.useBlockProps)()},(0,t.createElement)(r.Disabled,null,(0,t.createElement)(a(),{block:o,attributes:e})))},save:()=>null})})(); \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-menu-options/index.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-menu-options/index.asset.php index 77921bd0a1..1d2e47f31b 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-menu-options/index.asset.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-menu-options/index.asset.php @@ -1 +1 @@ - array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => 'a82fb3da1323cd72755b'); + array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => '4d3b8e2e1241325b9148'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-menu-options/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-menu-options/index.js index ec4a594e7e..788e017c89 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-menu-options/index.js +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-menu-options/index.js @@ -1,298 +1 @@ -/******/ (() => { // webpackBootstrap -/******/ "use strict"; -/******/ var __webpack_modules__ = ({ - -/***/ "./src/blocks/release-menu-options/index.js": -/*!**************************************************!*\ - !*** ./src/blocks/release-menu-options/index.js ***! - \**************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); -/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/blocks */ "@wordpress/blocks"); -/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/server-side-render */ "@wordpress/server-side-render"); -/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/block-editor */ "@wordpress/block-editor"); -/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__); -/* harmony import */ var _block_json__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./block.json */ "./src/blocks/release-menu-options/block.json"); -/* harmony import */ var _style_scss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./style.scss */ "./src/blocks/release-menu-options/style.scss"); - -/** - * WordPress dependencies - */ - - - - - -/** - * Internal dependencies - */ - - -function Edit({ - attributes, - name -}) { - return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", { - ...(0,_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__.useBlockProps)() - }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Disabled, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)((_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default()), { - block: name, - attributes: attributes - }))); -} -(0,_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__.registerBlockType)(_block_json__WEBPACK_IMPORTED_MODULE_5__.name, { - edit: Edit, - save: () => null -}); - -/***/ }), - -/***/ "./src/blocks/release-menu-options/style.scss": -/*!****************************************************!*\ - !*** ./src/blocks/release-menu-options/style.scss ***! - \****************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -// extracted by mini-css-extract-plugin - - -/***/ }), - -/***/ "react": -/*!************************!*\ - !*** external "React" ***! - \************************/ -/***/ ((module) => { - -module.exports = window["React"]; - -/***/ }), - -/***/ "@wordpress/block-editor": -/*!*************************************!*\ - !*** external ["wp","blockEditor"] ***! - \*************************************/ -/***/ ((module) => { - -module.exports = window["wp"]["blockEditor"]; - -/***/ }), - -/***/ "@wordpress/blocks": -/*!********************************!*\ - !*** external ["wp","blocks"] ***! - \********************************/ -/***/ ((module) => { - -module.exports = window["wp"]["blocks"]; - -/***/ }), - -/***/ "@wordpress/components": -/*!************************************!*\ - !*** external ["wp","components"] ***! - \************************************/ -/***/ ((module) => { - -module.exports = window["wp"]["components"]; - -/***/ }), - -/***/ "@wordpress/server-side-render": -/*!******************************************!*\ - !*** external ["wp","serverSideRender"] ***! - \******************************************/ -/***/ ((module) => { - -module.exports = window["wp"]["serverSideRender"]; - -/***/ }), - -/***/ "./src/blocks/release-menu-options/block.json": -/*!****************************************************!*\ - !*** ./src/blocks/release-menu-options/block.json ***! - \****************************************************/ -/***/ ((module) => { - -module.exports = JSON.parse('{"apiVersion":2,"name":"wporg/release-menu-options","title":"Release Menu Options","category":"widgets","icon":"menu","description":"Display the dropdown menu option for a release.","supports":{"html":false},"usesContext":["postId"],"textdomain":"wporg","editorScript":"file:./index.js","style":"file:./style-index.css","render":"file:./render.php"}'); - -/***/ }) - -/******/ }); -/************************************************************************/ -/******/ // The module cache -/******/ var __webpack_module_cache__ = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ // Check if module is in cache -/******/ var cachedModule = __webpack_module_cache__[moduleId]; -/******/ if (cachedModule !== undefined) { -/******/ return cachedModule.exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = __webpack_module_cache__[moduleId] = { -/******/ // no module.id needed -/******/ // no module.loaded needed -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = __webpack_modules__; -/******/ -/************************************************************************/ -/******/ /* webpack/runtime/chunk loaded */ -/******/ (() => { -/******/ var deferred = []; -/******/ __webpack_require__.O = (result, chunkIds, fn, priority) => { -/******/ if(chunkIds) { -/******/ priority = priority || 0; -/******/ for(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1]; -/******/ deferred[i] = [chunkIds, fn, priority]; -/******/ return; -/******/ } -/******/ var notFulfilled = Infinity; -/******/ for (var i = 0; i < deferred.length; i++) { -/******/ var chunkIds = deferred[i][0]; -/******/ var fn = deferred[i][1]; -/******/ var priority = deferred[i][2]; -/******/ var fulfilled = true; -/******/ for (var j = 0; j < chunkIds.length; j++) { -/******/ if ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) { -/******/ chunkIds.splice(j--, 1); -/******/ } else { -/******/ fulfilled = false; -/******/ if(priority < notFulfilled) notFulfilled = priority; -/******/ } -/******/ } -/******/ if(fulfilled) { -/******/ deferred.splice(i--, 1) -/******/ var r = fn(); -/******/ if (r !== undefined) result = r; -/******/ } -/******/ } -/******/ return result; -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/compat get default export */ -/******/ (() => { -/******/ // getDefaultExport function for compatibility with non-harmony modules -/******/ __webpack_require__.n = (module) => { -/******/ var getter = module && module.__esModule ? -/******/ () => (module['default']) : -/******/ () => (module); -/******/ __webpack_require__.d(getter, { a: getter }); -/******/ return getter; -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/define property getters */ -/******/ (() => { -/******/ // define getter functions for harmony exports -/******/ __webpack_require__.d = (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 */ -/******/ (() => { -/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) -/******/ })(); -/******/ -/******/ /* webpack/runtime/make namespace object */ -/******/ (() => { -/******/ // define __esModule on exports -/******/ __webpack_require__.r = (exports) => { -/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { -/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); -/******/ } -/******/ Object.defineProperty(exports, '__esModule', { value: true }); -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/jsonp chunk loading */ -/******/ (() => { -/******/ // no baseURI -/******/ -/******/ // object to store loaded and loading chunks -/******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched -/******/ // [resolve, reject, Promise] = chunk loading, 0 = chunk loaded -/******/ var installedChunks = { -/******/ "blocks/release-menu-options/index": 0, -/******/ "blocks/release-menu-options/style-index": 0 -/******/ }; -/******/ -/******/ // no chunk on demand loading -/******/ -/******/ // no prefetching -/******/ -/******/ // no preloaded -/******/ -/******/ // no HMR -/******/ -/******/ // no HMR manifest -/******/ -/******/ __webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0); -/******/ -/******/ // install a JSONP callback for chunk loading -/******/ var webpackJsonpCallback = (parentChunkLoadingFunction, data) => { -/******/ var chunkIds = data[0]; -/******/ var moreModules = data[1]; -/******/ var runtime = data[2]; -/******/ // add "moreModules" to the modules object, -/******/ // then flag all "chunkIds" as loaded and fire callback -/******/ var moduleId, chunkId, i = 0; -/******/ if(chunkIds.some((id) => (installedChunks[id] !== 0))) { -/******/ for(moduleId in moreModules) { -/******/ if(__webpack_require__.o(moreModules, moduleId)) { -/******/ __webpack_require__.m[moduleId] = moreModules[moduleId]; -/******/ } -/******/ } -/******/ if(runtime) var result = runtime(__webpack_require__); -/******/ } -/******/ if(parentChunkLoadingFunction) parentChunkLoadingFunction(data); -/******/ for(;i < chunkIds.length; i++) { -/******/ chunkId = chunkIds[i]; -/******/ if(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) { -/******/ installedChunks[chunkId][0](); -/******/ } -/******/ installedChunks[chunkId] = 0; -/******/ } -/******/ return __webpack_require__.O(result); -/******/ } -/******/ -/******/ var chunkLoadingGlobal = self["webpackChunkwporg_plugins_2024"] = self["webpackChunkwporg_plugins_2024"] || []; -/******/ chunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0)); -/******/ chunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal)); -/******/ })(); -/******/ -/************************************************************************/ -/******/ -/******/ // startup -/******/ // Load entry module and return exports -/******/ // This entry module depends on other loaded chunks and execution need to be delayed -/******/ var __webpack_exports__ = __webpack_require__.O(undefined, ["blocks/release-menu-options/style-index"], () => (__webpack_require__("./src/blocks/release-menu-options/index.js"))) -/******/ __webpack_exports__ = __webpack_require__.O(__webpack_exports__); -/******/ -/******/ })() -; -//# sourceMappingURL=index.js.map \ No newline at end of file +(()=>{"use strict";var e,r={356:(e,r,n)=>{const o=window.React,t=window.wp.components,i=window.wp.blocks,a=window.wp.serverSideRender;var l=n.n(a);const s=window.wp.blockEditor,p=JSON.parse('{"u2":"wporg/release-menu-options"}');(0,i.registerBlockType)(p.u2,{edit:function({attributes:e,name:r}){return(0,o.createElement)("div",{...(0,s.useBlockProps)()},(0,o.createElement)(t.Disabled,null,(0,o.createElement)(l(),{block:r,attributes:e})))},save:()=>null})}},n={};function o(e){var t=n[e];if(void 0!==t)return t.exports;var i=n[e]={exports:{}};return r[e](i,i.exports,o),i.exports}o.m=r,e=[],o.O=(r,n,t,i)=>{if(!n){var a=1/0;for(u=0;u=i)&&Object.keys(o.O).every((e=>o.O[e](n[s])))?n.splice(s--,1):(l=!1,i0&&e[u-1][2]>i;u--)e[u]=e[u-1];e[u]=[n,t,i]},o.n=e=>{var r=e&&e.__esModule?()=>e.default:()=>e;return o.d(r,{a:r}),r},o.d=(e,r)=>{for(var n in r)o.o(r,n)&&!o.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),(()=>{var e={980:0,161:0};o.O.j=r=>0===e[r];var r=(r,n)=>{var t,i,a=n[0],l=n[1],s=n[2],p=0;if(a.some((r=>0!==e[r]))){for(t in l)o.o(l,t)&&(o.m[t]=l[t]);if(s)var u=s(o)}for(r&&r(n);po(356)));t=o.O(t)})(); \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-menu-options/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-menu-options/render.php index 4eda65229d..61f288f3e5 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-menu-options/render.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-menu-options/render.php @@ -1,7 +1,11 @@ context['postId'] ) { return; @@ -13,43 +17,41 @@ } $current_version = get_post_meta( $release_post->ID, 'release_version', true ); - -$download_link = sprintf( +$download_link = get_download_link( $release_post->post_parent, $current_version ); +$download_link_html = sprintf( '', - esc_html( 'Download', 'wporg-plugins' ), - esc_url( get_blueprint_url( Template::download_link( $release_post->post_parent, $current_version ) ) ) + __( 'Download', 'wporg-plugins' ), + esc_url( $download_link ) ); -$blueprint_link = sprintf( +$blueprint_link_html = sprintf( '', - esc_html( 'Load in Playground', 'wporg-plugins' ), - esc_url( $encoded_blueprint_url ) + __( 'Load in Playground', 'wporg-plugins' ), + esc_url( get_blueprint_url( get_download_link( $current_version ) ) ) ); -$changes_link = ''; -$releases = get_releases( $release_post->post_parent ); +$changes_link_html = ''; +$releases = get_releases(); $previous_version = get_previous_version( $release_post, $releases ); if ( null !== $previous_version ) { - $changes_link = sprintf( + $changes_link_html = sprintf( '', - esc_html( 'View changes', 'wporg-plugins' ), - esc_url( get_trac_changeset_link( $release_post->post_parent, $previous_version, $current_version ) ) + __( 'View changes', 'wporg-plugins' ), + esc_url( get_trac_changeset_link( $previous_version, $current_version ) ) ); } -$submenu = sprintf( - '%2$s%3$s%4$s', - esc_html( 'Release options', 'wporg-plugins' ), - $download_link, - $blueprint_link, - $changes_link -); - $navigation = sprintf( '%2$s', - esc_html( 'Release options', 'release options label', 'wporg-plugins' ), - $submenu + __( 'Release options', 'wporg-plugins' ), + sprintf( + '%2$s%3$s%4$s', + __( 'Release options', 'wporg-plugins' ), + $download_link_html, + $blueprint_link_html, + $changes_link_html + ) ); -echo do_blocks( $navigation ); +echo do_blocks( $navigation ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-menu-options/style-index.css b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-menu-options/style-index.css index 3bd0eec271..12af1e2ea3 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-menu-options/style-index.css +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-menu-options/style-index.css @@ -1,40 +1 @@ -/*!*******************************************************************************************************************************************************************************************************************************************************************!*\ - !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/blocks/release-menu-options/style.scss ***! - \*******************************************************************************************************************************************************************************************************************************************************************/ -.wporg-release-menu-options { - /* Manually apply screen reader text styles */ -} -.wporg-release-menu-options .wp-block-navigation__submenu-container { - top: calc(100% + 4px) !important; - right: 0 !important; - left: auto !important; -} -.wporg-release-menu-options .wp-block-navigation-item { - background-color: initial; - /* Stops the hidden overflow on focus */ -} -.wporg-release-menu-options .wp-block-navigation__submenu-icon { - display: none; - /* Hide dropdown caret */ -} -.wporg-release-menu-options button > .wp-block-navigation-item__label { - word-wrap: normal !important; - border: 0; - clip-path: inset(50%); - height: 1px; - margin: -1px; - overflow: hidden; - padding: 0; - position: absolute; - width: 1px; -} -.wporg-release-menu-options button { - content: ""; - background-image: url("data:image/svg+xml,"); - background-repeat: no-repeat; - background-position: center; - width: 32px; - height: 32px; -} - -/*# sourceMappingURL=style-index.css.map*/ \ No newline at end of file +.wporg-release-menu-options .wp-block-navigation__submenu-container{left:auto!important;right:0!important;top:calc(100% + 4px)!important}.wporg-release-menu-options .wp-block-navigation-item{background-color:initial}.wporg-release-menu-options .wp-block-navigation__submenu-icon{display:none}.wporg-release-menu-options button>.wp-block-navigation-item__label{word-wrap:normal!important;border:0;clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.wporg-release-menu-options button{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 width=%2724%27 height=%2724%27 aria-hidden=%27true%27%3E%3Cpath d=%27M13 19h-2v-2h2zm0-6h-2v-2h2zm0-6h-2V5h2z%27/%3E%3C/svg%3E");background-position:50%;background-repeat:no-repeat;content:"";height:32px;width:32px} diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-page/index.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-page/index.asset.php index fac12a13c3..bf580ddc47 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-page/index.asset.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-page/index.asset.php @@ -1 +1 @@ - array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => '865d514ec640755ece87'); + array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => 'fe31a17499547ee6e413'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-page/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-page/index.js index 0f6a4e1cac..4a4f3fa6ce 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-page/index.js +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-page/index.js @@ -1,298 +1 @@ -/******/ (() => { // webpackBootstrap -/******/ "use strict"; -/******/ var __webpack_modules__ = ({ - -/***/ "./src/blocks/release-page/index.js": -/*!******************************************!*\ - !*** ./src/blocks/release-page/index.js ***! - \******************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); -/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/blocks */ "@wordpress/blocks"); -/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/server-side-render */ "@wordpress/server-side-render"); -/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/block-editor */ "@wordpress/block-editor"); -/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__); -/* harmony import */ var _block_json__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./block.json */ "./src/blocks/release-page/block.json"); -/* harmony import */ var _style_scss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./style.scss */ "./src/blocks/release-page/style.scss"); - -/** - * WordPress dependencies - */ - - - - - -/** - * Internal dependencies - */ - - -function Edit({ - attributes, - name -}) { - return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", { - ...(0,_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__.useBlockProps)() - }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Disabled, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)((_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default()), { - block: name, - attributes: attributes - }))); -} -(0,_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__.registerBlockType)(_block_json__WEBPACK_IMPORTED_MODULE_5__.name, { - edit: Edit, - save: () => null -}); - -/***/ }), - -/***/ "./src/blocks/release-page/style.scss": -/*!********************************************!*\ - !*** ./src/blocks/release-page/style.scss ***! - \********************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -// extracted by mini-css-extract-plugin - - -/***/ }), - -/***/ "react": -/*!************************!*\ - !*** external "React" ***! - \************************/ -/***/ ((module) => { - -module.exports = window["React"]; - -/***/ }), - -/***/ "@wordpress/block-editor": -/*!*************************************!*\ - !*** external ["wp","blockEditor"] ***! - \*************************************/ -/***/ ((module) => { - -module.exports = window["wp"]["blockEditor"]; - -/***/ }), - -/***/ "@wordpress/blocks": -/*!********************************!*\ - !*** external ["wp","blocks"] ***! - \********************************/ -/***/ ((module) => { - -module.exports = window["wp"]["blocks"]; - -/***/ }), - -/***/ "@wordpress/components": -/*!************************************!*\ - !*** external ["wp","components"] ***! - \************************************/ -/***/ ((module) => { - -module.exports = window["wp"]["components"]; - -/***/ }), - -/***/ "@wordpress/server-side-render": -/*!******************************************!*\ - !*** external ["wp","serverSideRender"] ***! - \******************************************/ -/***/ ((module) => { - -module.exports = window["wp"]["serverSideRender"]; - -/***/ }), - -/***/ "./src/blocks/release-page/block.json": -/*!********************************************!*\ - !*** ./src/blocks/release-page/block.json ***! - \********************************************/ -/***/ ((module) => { - -module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"wporg/release-page","version":"0.1.0","title":"Release Page","category":"design","icon":"","description":"A block to display release page.","textdomain":"wporg","attributes":{},"supports":{"html":false,"interactivity":true},"usesContext":["postId"],"editorScript":"file:./index.js","render":"file:./render.php","style":"file:./style-index.css","viewScriptModule":"file:./view.js"}'); - -/***/ }) - -/******/ }); -/************************************************************************/ -/******/ // The module cache -/******/ var __webpack_module_cache__ = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ // Check if module is in cache -/******/ var cachedModule = __webpack_module_cache__[moduleId]; -/******/ if (cachedModule !== undefined) { -/******/ return cachedModule.exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = __webpack_module_cache__[moduleId] = { -/******/ // no module.id needed -/******/ // no module.loaded needed -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = __webpack_modules__; -/******/ -/************************************************************************/ -/******/ /* webpack/runtime/chunk loaded */ -/******/ (() => { -/******/ var deferred = []; -/******/ __webpack_require__.O = (result, chunkIds, fn, priority) => { -/******/ if(chunkIds) { -/******/ priority = priority || 0; -/******/ for(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1]; -/******/ deferred[i] = [chunkIds, fn, priority]; -/******/ return; -/******/ } -/******/ var notFulfilled = Infinity; -/******/ for (var i = 0; i < deferred.length; i++) { -/******/ var chunkIds = deferred[i][0]; -/******/ var fn = deferred[i][1]; -/******/ var priority = deferred[i][2]; -/******/ var fulfilled = true; -/******/ for (var j = 0; j < chunkIds.length; j++) { -/******/ if ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) { -/******/ chunkIds.splice(j--, 1); -/******/ } else { -/******/ fulfilled = false; -/******/ if(priority < notFulfilled) notFulfilled = priority; -/******/ } -/******/ } -/******/ if(fulfilled) { -/******/ deferred.splice(i--, 1) -/******/ var r = fn(); -/******/ if (r !== undefined) result = r; -/******/ } -/******/ } -/******/ return result; -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/compat get default export */ -/******/ (() => { -/******/ // getDefaultExport function for compatibility with non-harmony modules -/******/ __webpack_require__.n = (module) => { -/******/ var getter = module && module.__esModule ? -/******/ () => (module['default']) : -/******/ () => (module); -/******/ __webpack_require__.d(getter, { a: getter }); -/******/ return getter; -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/define property getters */ -/******/ (() => { -/******/ // define getter functions for harmony exports -/******/ __webpack_require__.d = (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 */ -/******/ (() => { -/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) -/******/ })(); -/******/ -/******/ /* webpack/runtime/make namespace object */ -/******/ (() => { -/******/ // define __esModule on exports -/******/ __webpack_require__.r = (exports) => { -/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { -/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); -/******/ } -/******/ Object.defineProperty(exports, '__esModule', { value: true }); -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/jsonp chunk loading */ -/******/ (() => { -/******/ // no baseURI -/******/ -/******/ // object to store loaded and loading chunks -/******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched -/******/ // [resolve, reject, Promise] = chunk loading, 0 = chunk loaded -/******/ var installedChunks = { -/******/ "blocks/release-page/index": 0, -/******/ "blocks/release-page/style-index": 0 -/******/ }; -/******/ -/******/ // no chunk on demand loading -/******/ -/******/ // no prefetching -/******/ -/******/ // no preloaded -/******/ -/******/ // no HMR -/******/ -/******/ // no HMR manifest -/******/ -/******/ __webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0); -/******/ -/******/ // install a JSONP callback for chunk loading -/******/ var webpackJsonpCallback = (parentChunkLoadingFunction, data) => { -/******/ var chunkIds = data[0]; -/******/ var moreModules = data[1]; -/******/ var runtime = data[2]; -/******/ // add "moreModules" to the modules object, -/******/ // then flag all "chunkIds" as loaded and fire callback -/******/ var moduleId, chunkId, i = 0; -/******/ if(chunkIds.some((id) => (installedChunks[id] !== 0))) { -/******/ for(moduleId in moreModules) { -/******/ if(__webpack_require__.o(moreModules, moduleId)) { -/******/ __webpack_require__.m[moduleId] = moreModules[moduleId]; -/******/ } -/******/ } -/******/ if(runtime) var result = runtime(__webpack_require__); -/******/ } -/******/ if(parentChunkLoadingFunction) parentChunkLoadingFunction(data); -/******/ for(;i < chunkIds.length; i++) { -/******/ chunkId = chunkIds[i]; -/******/ if(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) { -/******/ installedChunks[chunkId][0](); -/******/ } -/******/ installedChunks[chunkId] = 0; -/******/ } -/******/ return __webpack_require__.O(result); -/******/ } -/******/ -/******/ var chunkLoadingGlobal = self["webpackChunkwporg_plugins_2024"] = self["webpackChunkwporg_plugins_2024"] || []; -/******/ chunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0)); -/******/ chunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal)); -/******/ })(); -/******/ -/************************************************************************/ -/******/ -/******/ // startup -/******/ // Load entry module and return exports -/******/ // This entry module depends on other loaded chunks and execution need to be delayed -/******/ var __webpack_exports__ = __webpack_require__.O(undefined, ["blocks/release-page/style-index"], () => (__webpack_require__("./src/blocks/release-page/index.js"))) -/******/ __webpack_exports__ = __webpack_require__.O(__webpack_exports__); -/******/ -/******/ })() -; -//# sourceMappingURL=index.js.map \ No newline at end of file +(()=>{"use strict";var e,r={601:(e,r,n)=>{const o=window.React,t=window.wp.components,a=window.wp.blocks,i=window.wp.serverSideRender;var l=n.n(i);const s=window.wp.blockEditor,p=JSON.parse('{"u2":"wporg/release-page"}');(0,a.registerBlockType)(p.u2,{edit:function({attributes:e,name:r}){return(0,o.createElement)("div",{...(0,s.useBlockProps)()},(0,o.createElement)(t.Disabled,null,(0,o.createElement)(l(),{block:r,attributes:e})))},save:()=>null})}},n={};function o(e){var t=n[e];if(void 0!==t)return t.exports;var a=n[e]={exports:{}};return r[e](a,a.exports,o),a.exports}o.m=r,e=[],o.O=(r,n,t,a)=>{if(!n){var i=1/0;for(u=0;u=a)&&Object.keys(o.O).every((e=>o.O[e](n[s])))?n.splice(s--,1):(l=!1,a0&&e[u-1][2]>a;u--)e[u]=e[u-1];e[u]=[n,t,a]},o.n=e=>{var r=e&&e.__esModule?()=>e.default:()=>e;return o.d(r,{a:r}),r},o.d=(e,r)=>{for(var n in r)o.o(r,n)&&!o.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),(()=>{var e={43:0,162:0};o.O.j=r=>0===e[r];var r=(r,n)=>{var t,a,i=n[0],l=n[1],s=n[2],p=0;if(i.some((r=>0!==e[r]))){for(t in l)o.o(l,t)&&(o.m[t]=l[t]);if(s)var u=s(o)}for(r&&r(n);po(601)));t=o.O(t)})(); \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-page/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-page/render.php index 878b57533b..f939f21d4b 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-page/render.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-page/render.php @@ -1,88 +1,55 @@ context['postId'] ) { return; } -$release_post = get_post( $post->ID ); +$plugin_post = get_post( $block->context['postId'] ); -if ( ! $release_post ) { +if ( ! $plugin_post ) { return; } -// Why use `do_blocks` here? for some reason, just outputting the content directly doesn't work and context gets messed up. +$heading_text = __( 'Releases', 'wporg-plugins' ); + $markup = << -

    Releases

    +

    $heading_text

    -
    - - - - - - -
    - - -
    - -
    - -
    - - -
    - - - -
    - -
    - -
    - - -
    - - - - - - - - - - -

    There are no releases yet

    - - +
    + + + -
    - +
    HTML; - -// Interactivity API context -$form_context = array( - 'btnDefaultText' => 'Publish release', - 'btnLoadingText' => 'Publishing...', - 'preSubmitting' => false, - 'isWaiting' => false, - 'isComplete' => false, - 'errorMessage' => '', - 'pluginSlug' => $release_post->post_name, - 'nonce' => wp_create_nonce( 'wp_rest' ) +/** + * Create initial state for the async-action-block. + */ +wp_interactivity_state( + 'async-action-block', + array( + 'isCreatingRelease' => false, + ) ); +/** + * Create initial context for the async-action-block. + */ + printf( - '
    %4$s
    ', - 'data-wp-interactive="async-action-block"', + '
    %3$s
    ', wp_kses_data( get_block_wrapper_attributes() ), - wp_interactivity_data_wp_context( $form_context ), // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped + 'data-wp-interactive="async-action-block"', do_blocks( $markup ) // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-page/style-index.css b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-page/style-index.css index 324dbabc5e..23f16bbaf3 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-page/style-index.css +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-page/style-index.css @@ -1,12 +1 @@ -/*!***********************************************************************************************************************************************************************************************************************************************************!*\ - !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/blocks/release-page/style.scss ***! - \***********************************************************************************************************************************************************************************************************************************************************/ -.wp-block-wporg-release-draft { - font-size: var(--wp--preset--font-size--small); -} -.wp-block-wporg-release-draft ul { - margin-top: var(--wp--preset--spacing--10); - padding: 0; -} - -/*# sourceMappingURL=style-index.css.map*/ \ No newline at end of file +.wp-block-wporg-release-draft{font-size:var(--wp--preset--font-size--small)}.wp-block-wporg-release-draft ul{margin-top:var(--wp--preset--spacing--10);padding:0} diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-page/view.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-page/view.asset.php index ba0cb7c190..7d8fb67d0e 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-page/view.asset.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-page/view.asset.php @@ -1 +1 @@ - array('@wordpress/interactivity'), 'version' => '47b004f489f4a572490c', 'type' => 'module'); + array('@wordpress/interactivity'), 'version' => '2e3d21c6eee2c7a8d302', 'type' => 'module'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-page/view.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-page/view.js index 97204c48c2..60d8c74e42 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-page/view.js +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-page/view.js @@ -1,136 +1 @@ -import * as __WEBPACK_EXTERNAL_MODULE__wordpress_interactivity_8e89b257__ from "@wordpress/interactivity"; -/******/ var __webpack_modules__ = ({ - -/***/ "@wordpress/interactivity": -/*!*******************************************!*\ - !*** external "@wordpress/interactivity" ***! - \*******************************************/ -/***/ ((module) => { - -var x = y => { var x = {}; __webpack_require__.d(x, y); return x; } -var y = x => () => x -module.exports = __WEBPACK_EXTERNAL_MODULE__wordpress_interactivity_8e89b257__; - -/***/ }) - -/******/ }); -/************************************************************************/ -/******/ // The module cache -/******/ var __webpack_module_cache__ = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ // Check if module is in cache -/******/ var cachedModule = __webpack_module_cache__[moduleId]; -/******/ if (cachedModule !== undefined) { -/******/ return cachedModule.exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = __webpack_module_cache__[moduleId] = { -/******/ // no module.id needed -/******/ // no module.loaded needed -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/************************************************************************/ -/******/ /* webpack/runtime/make namespace object */ -/******/ (() => { -/******/ // define __esModule on exports -/******/ __webpack_require__.r = (exports) => { -/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { -/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); -/******/ } -/******/ Object.defineProperty(exports, '__esModule', { value: true }); -/******/ }; -/******/ })(); -/******/ -/************************************************************************/ -var __webpack_exports__ = {}; -// This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk. -(() => { -/*!*****************************************!*\ - !*** ./src/blocks/release-page/view.js ***! - \*****************************************/ -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _wordpress_interactivity__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/interactivity */ "@wordpress/interactivity"); -/** - * WordPress dependencies - */ - -const { - state -} = (0,_wordpress_interactivity__WEBPACK_IMPORTED_MODULE_0__.store)('async-action-block', { - state: { - get btnText() { - const { - btnDefaultText, - btnLoadingText - } = (0,_wordpress_interactivity__WEBPACK_IMPORTED_MODULE_0__.getContext)(); - return state.isWaiting ? btnLoadingText : btnDefaultText; - } - }, - actions: { - handlePreSubmit(event) { - event.preventDefault(); - state.preSubmitting = true; - const element = document.querySelector('.wp-block-wporg-release-page'); - if (element) { - element.scrollIntoView({ - behavior: 'instant', - block: 'center' - }); - } - }, - handleBackClick(event) { - event.preventDefault(); - state.preSubmitting = false; - }, - *handleSubmit(event) { - // Prevent default form submission - event.preventDefault(); - debugger; - - // Set waiting state - state.isWaiting = true; - state.errorMessage = ''; - const { - pluginSlug, - nonce, - homeUrl - } = (0,_wordpress_interactivity__WEBPACK_IMPORTED_MODULE_0__.getContext)(); - try { - const response = yield fetch('/plugins/wp-json/plugins/v2/plugin/clapback/release', { - method: 'POST', - headers: { - 'Content-Type': 'application/json', - 'X-WP-Nonce': nonce - }, - body: JSON.stringify({ - plugin_slug: pluginSlug - }) - }); - const data = yield response.json(); - - // Update state based on response - if (data.success) {} else { - state.errorMessage = data.message || 'Action failed'; - } - } catch (error) { - state.errorMessage = 'Network error occurred'; - } finally { - state.isWaiting = false; - } - } - } -}); -})(); - - -//# sourceMappingURL=view.js.map \ No newline at end of file +import*as e from"@wordpress/interactivity";var t={d:(e,r)=>{for(var o in r)t.o(r,o)&&!t.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:r[o]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t)};const r=(a={store:()=>e.store},n={},t.d(n,a),n),{state:o}=(0,r.store)("async-action-block",{actions:{handlePreSubmit(e){e.preventDefault(),o.isCreatingRelease=!0;const t=document.querySelector(".wp-block-wporg-release-page");t&&t.scrollIntoView({behavior:"instant",block:"center"})}}});var a,n; \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish-release/block.json b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish-release/block.json new file mode 100644 index 0000000000..b6b3110b03 --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish-release/block.json @@ -0,0 +1,23 @@ +{ + "$schema": "https://schemas.wp.org/trunk/block.json", + "apiVersion": 2, + "name": "wporg/release-details-form", + "version": "0.1.0", + "title": "Release Details Form", + "category": "design", + "icon": "", + "description": "A block to display release details form.", + "textdomain": "wporg", + "attributes": {}, + "supports": { + "html": false, + "interactivity": true + }, + "usesContext": [ + "postId", + "pluginSlug" + ], + "editorScript": "file:./index.js", + "render": "file:./render.php", + "style": "file:./style-index.css" +} \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish-release/index.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish-release/index.asset.php new file mode 100644 index 0000000000..07b3729374 --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish-release/index.asset.php @@ -0,0 +1 @@ + array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => '25dccf3833ad815f8698'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish-release/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish-release/index.js new file mode 100644 index 0000000000..7923bc57a1 --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish-release/index.js @@ -0,0 +1,298 @@ +/******/ (() => { // webpackBootstrap +/******/ "use strict"; +/******/ var __webpack_modules__ = ({ + +/***/ "./src/blocks/release-publish-release/index.js": +/*!*****************************************************!*\ + !*** ./src/blocks/release-publish-release/index.js ***! + \*****************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); +/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/blocks */ "@wordpress/blocks"); +/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/server-side-render */ "@wordpress/server-side-render"); +/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/block-editor */ "@wordpress/block-editor"); +/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__); +/* harmony import */ var _block_json__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./block.json */ "./src/blocks/release-publish-release/block.json"); +/* harmony import */ var _style_scss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./style.scss */ "./src/blocks/release-publish-release/style.scss"); + +/** + * WordPress dependencies + */ + + + + + +/** + * Internal dependencies + */ + + +function Edit({ + attributes, + name +}) { + return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", { + ...(0,_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__.useBlockProps)() + }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Disabled, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)((_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default()), { + block: name, + attributes: attributes + }))); +} +(0,_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__.registerBlockType)(_block_json__WEBPACK_IMPORTED_MODULE_5__.name, { + edit: Edit, + save: () => null +}); + +/***/ }), + +/***/ "./src/blocks/release-publish-release/style.scss": +/*!*******************************************************!*\ + !*** ./src/blocks/release-publish-release/style.scss ***! + \*******************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +// extracted by mini-css-extract-plugin + + +/***/ }), + +/***/ "react": +/*!************************!*\ + !*** external "React" ***! + \************************/ +/***/ ((module) => { + +module.exports = window["React"]; + +/***/ }), + +/***/ "@wordpress/block-editor": +/*!*************************************!*\ + !*** external ["wp","blockEditor"] ***! + \*************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["blockEditor"]; + +/***/ }), + +/***/ "@wordpress/blocks": +/*!********************************!*\ + !*** external ["wp","blocks"] ***! + \********************************/ +/***/ ((module) => { + +module.exports = window["wp"]["blocks"]; + +/***/ }), + +/***/ "@wordpress/components": +/*!************************************!*\ + !*** external ["wp","components"] ***! + \************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["components"]; + +/***/ }), + +/***/ "@wordpress/server-side-render": +/*!******************************************!*\ + !*** external ["wp","serverSideRender"] ***! + \******************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["serverSideRender"]; + +/***/ }), + +/***/ "./src/blocks/release-publish-release/block.json": +/*!*******************************************************!*\ + !*** ./src/blocks/release-publish-release/block.json ***! + \*******************************************************/ +/***/ ((module) => { + +module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"wporg/release-details-form","version":"0.1.0","title":"Release Details Form","category":"design","icon":"","description":"A block to display release details form.","textdomain":"wporg","attributes":{},"supports":{"html":false,"interactivity":true},"usesContext":["postId","pluginSlug"],"editorScript":"file:./index.js","render":"file:./render.php","style":"file:./style-index.css"}'); + +/***/ }) + +/******/ }); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ // no module.id needed +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = __webpack_modules__; +/******/ +/************************************************************************/ +/******/ /* webpack/runtime/chunk loaded */ +/******/ (() => { +/******/ var deferred = []; +/******/ __webpack_require__.O = (result, chunkIds, fn, priority) => { +/******/ if(chunkIds) { +/******/ priority = priority || 0; +/******/ for(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1]; +/******/ deferred[i] = [chunkIds, fn, priority]; +/******/ return; +/******/ } +/******/ var notFulfilled = Infinity; +/******/ for (var i = 0; i < deferred.length; i++) { +/******/ var chunkIds = deferred[i][0]; +/******/ var fn = deferred[i][1]; +/******/ var priority = deferred[i][2]; +/******/ var fulfilled = true; +/******/ for (var j = 0; j < chunkIds.length; j++) { +/******/ if ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) { +/******/ chunkIds.splice(j--, 1); +/******/ } else { +/******/ fulfilled = false; +/******/ if(priority < notFulfilled) notFulfilled = priority; +/******/ } +/******/ } +/******/ if(fulfilled) { +/******/ deferred.splice(i--, 1) +/******/ var r = fn(); +/******/ if (r !== undefined) result = r; +/******/ } +/******/ } +/******/ return result; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/compat get default export */ +/******/ (() => { +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = (module) => { +/******/ var getter = module && module.__esModule ? +/******/ () => (module['default']) : +/******/ () => (module); +/******/ __webpack_require__.d(getter, { a: getter }); +/******/ return getter; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/define property getters */ +/******/ (() => { +/******/ // define getter functions for harmony exports +/******/ __webpack_require__.d = (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 */ +/******/ (() => { +/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) +/******/ })(); +/******/ +/******/ /* webpack/runtime/make namespace object */ +/******/ (() => { +/******/ // define __esModule on exports +/******/ __webpack_require__.r = (exports) => { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/jsonp chunk loading */ +/******/ (() => { +/******/ // no baseURI +/******/ +/******/ // object to store loaded and loading chunks +/******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched +/******/ // [resolve, reject, Promise] = chunk loading, 0 = chunk loaded +/******/ var installedChunks = { +/******/ "blocks/release-publish-release/index": 0, +/******/ "blocks/release-publish-release/style-index": 0 +/******/ }; +/******/ +/******/ // no chunk on demand loading +/******/ +/******/ // no prefetching +/******/ +/******/ // no preloaded +/******/ +/******/ // no HMR +/******/ +/******/ // no HMR manifest +/******/ +/******/ __webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0); +/******/ +/******/ // install a JSONP callback for chunk loading +/******/ var webpackJsonpCallback = (parentChunkLoadingFunction, data) => { +/******/ var chunkIds = data[0]; +/******/ var moreModules = data[1]; +/******/ var runtime = data[2]; +/******/ // add "moreModules" to the modules object, +/******/ // then flag all "chunkIds" as loaded and fire callback +/******/ var moduleId, chunkId, i = 0; +/******/ if(chunkIds.some((id) => (installedChunks[id] !== 0))) { +/******/ for(moduleId in moreModules) { +/******/ if(__webpack_require__.o(moreModules, moduleId)) { +/******/ __webpack_require__.m[moduleId] = moreModules[moduleId]; +/******/ } +/******/ } +/******/ if(runtime) var result = runtime(__webpack_require__); +/******/ } +/******/ if(parentChunkLoadingFunction) parentChunkLoadingFunction(data); +/******/ for(;i < chunkIds.length; i++) { +/******/ chunkId = chunkIds[i]; +/******/ if(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) { +/******/ installedChunks[chunkId][0](); +/******/ } +/******/ installedChunks[chunkId] = 0; +/******/ } +/******/ return __webpack_require__.O(result); +/******/ } +/******/ +/******/ var chunkLoadingGlobal = self["webpackChunkwporg_plugins_2024"] = self["webpackChunkwporg_plugins_2024"] || []; +/******/ chunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0)); +/******/ chunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal)); +/******/ })(); +/******/ +/************************************************************************/ +/******/ +/******/ // startup +/******/ // Load entry module and return exports +/******/ // This entry module depends on other loaded chunks and execution need to be delayed +/******/ var __webpack_exports__ = __webpack_require__.O(undefined, ["blocks/release-publish-release/style-index"], () => (__webpack_require__("./src/blocks/release-publish-release/index.js"))) +/******/ __webpack_exports__ = __webpack_require__.O(__webpack_exports__); +/******/ +/******/ })() +; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-details-form/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish-release/render.php similarity index 51% rename from wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-details-form/render.php rename to wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish-release/render.php index 7d35e07a2a..fad7f60f7d 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-details-form/render.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish-release/render.php @@ -5,23 +5,23 @@ * @package WordPressdotorg\Plugin_Directory */ -use WordPressdotorg\Plugin_Directory\Template; -use function WordPressdotorg\Plugin_Directory\Theme\{get_blueprint_url, get_latest_release}; +use function WordPressdotorg\Plugin_Directory\Theme\{get_blueprint_url, get_latest_release, get_revision_changeset_link}; // Ensure the block context has a valid post ID. if ( empty( $block->context['postId'] ) ) { return; } -$release_post = get_post( $block->context['postId'] ); -$current_version = get_post_meta( $block->context['postId'], 'release_version', true ); -$tested_up_to = get_post_meta( $block->context['postId'], 'release_tested', true ); +$release_post = get_post( $block->context['postId'] ); // Bail if the release post does not exist. if ( ! $release_post ) { return; } +$current_version = get_post_meta( $block->context['postId'], 'release_version', true ); +$tested_up_to = get_post_meta( $block->context['postId'], 'release_tested', true ); + /** * Returns whether the tested_up_to value is recent. * @@ -49,20 +49,17 @@ function has_recently_been_tested( $tested_up_to ) { return $tested_major >= $latest_major; } - /** * Generate the HTML for a release item content block. * * @param string $label The label for the item. - * @param string $value The value for the item. * @param string $content The additional content or description. * @return string The formatted HTML content for the release item. */ -function get_release_item_content( $label, $value, $content ) { +function get_release_item_content( $label, $content ) { return sprintf( - '
    %1$s: %2$s
    %3$s
    ', - wp_kses_post( $label ), - wp_kses_post( $value ), + '
    %1$s
    %2$s
    ', + esc_html( $label ), wp_kses_post( $content ) ); } @@ -77,7 +74,7 @@ function get_release_item_content( $label, $value, $content ) { function get_release_check_item( $status, $content ) { return do_blocks( sprintf( - '%2$s', + '%2$s', esc_attr( $status ), $content ) @@ -87,23 +84,74 @@ function get_release_check_item( $status, $content ) { /** * Generate the block content for the version number check item. * - * @param bool $verdict Whether the version number is valid. - * @param string $value The current version number. - * @param WP_Post $release_post The release post object. + * @param bool $verdict Whether the version number is valid. + * @param string $value The current version number. + * + * @return string The block content. + */ +function get_changelog_check_item() { + $label = __( 'Update your changelog with key changes.', 'wporg-plugins' ); + $info_text = sprintf( + 'Learn more about writing useful changelogs.', + esc_url( 'https://developer.wordpress.org/plugins/wordpress-org/plugin-developer-faq/#what-should-be-in-my-changelog' ), + ); + + $content = get_release_item_content( $label, $info_text ); + + return get_release_check_item( 'default', $content ); +} + +/** + * Generate the block content for the version number check item. + * + * @param bool $verdict Whether the version number is valid. + * @param string $value The current version number. + * + * @return string The block content. + */ +function get_view_diff_check_item( $post ) { + $label = __( 'Review your changes.', 'wporg-plugins' ); + $commits = get_post_meta( $post->ID, 'release_commit_log', true ); + $plugin = get_post( $post->post_parent ); + $info_text = sprintf( + /* translators: %s: URL to the plugin in the Plugin Directory */ + __( 'Scan through your changeset before publishing.', 'wporg-plugins' ), + esc_url( get_revision_changeset_link( $plugin->post_name, $commits ) ) + ); + $content = get_release_item_content( $label, $info_text ); + + return get_release_check_item( 'default', $content ); +} + +/** + * Generate the block content for the version number check item. + * + * @param bool $verdict Whether the version number is valid. + * @param string $value The current version number. * * @return string The block content. */ -function get_version_number_check_item( $verdict, $value, $release_post ) { - $label = __( 'Version number', 'wporg-plugins' ); - $info_text = __( 'It looks like plugin version was incremented appropriately.', 'wporg-plugins' ); - $status = 'success'; +function get_version_number_check_item( $verdict, $value ) { + $label = __( 'Increment your version number.', 'wporg-plugins' ); + + $info_text = sprintf( + /* translators: %s: The current version number */ + __( 'Current version: %s', 'wporg-plugins' ), + '' . $value . '', + ); + + $status = ''; if ( ! $verdict ) { $status = 'error'; - $info_text = __( 'Please increment your plugin\'s version number.', 'wporg-plugins' ); + $info_text = sprintf( + /* translators: %s: The current version number */ + __( 'Your plugin\'s version number %s must be incremented before you can publish.', 'wporg-plugins' ), + '' . $value . '', + ); } - $content = get_release_item_content( $label, $value, $info_text ); + $content = get_release_item_content( $label, $info_text ); return get_release_check_item( $status, $content ); } @@ -111,29 +159,32 @@ function get_version_number_check_item( $verdict, $value, $release_post ) { /** * Generate the block content for the "Tested up to" check item. * - * @param string $value The tested up to value. + * @param bool $verdict Whether the tested up to value is recent. + * @param string $value The tested up to value. + * @param WP_Post $release_post The release post object. + * * @return string The block content. */ function get_tested_up_to_check_item( $verdict, $value, $release_post ) { $label = __( - 'Tested up to', + 'Test your plugin with the latest version of WordPress.', 'wporg-plugins' ); - $status = 'success'; + $status = ''; - $parent = get_post( $release_post->post_parent ); + $plugin = get_post( $release_post->post_parent ); $blueprint_url = get_blueprint_url( sprintf( 'https://downloads.wordpress.org/plugin/%s.zip', - $parent->post_name, + $plugin->post_name, ) ); $info_text = sprintf( - /* translators: %s: URL to the plugin in the Plugin Directory */ - __( 'Everything looks great! Playground makes testing easy. If needed, you can test it here.', 'wporg-plugins' ), - esc_url( $blueprint_url ) + /* translators: %s: The Tested Up to value */ + __( 'Tested up to: %s', 'wporg-plugins' ), + '' . $value . '', ); if ( empty( $value ) ) { @@ -144,12 +195,13 @@ function get_tested_up_to_check_item( $verdict, $value, $release_post ) { $status = 'warning'; $info_text = sprintf( /* translators: %s: URL to the plugin in the Plugin Directory */ - __( 'Your plugin has been tested with recent versions of WordPress! Test it now in Playground.', 'wporg-plugins' ), + __( 'Tested up to is %1$s. Test it now in Playground and update. ', 'wporg-plugins' ), + '' . $value . '', esc_url( $blueprint_url ) ); } - $content = get_release_item_content( $label, $value, $info_text ); + $content = get_release_item_content( $label, $info_text ); return get_release_check_item( $status, $content ); } @@ -166,22 +218,38 @@ function get_tested_up_to_check_item( $verdict, $value, $release_post ) { data-wp-interactive="async-action-block" > - -

    %s

    - ', - esc_html__( 'Headers', 'wporg-plugins' ) + +

    %s

    + ', + esc_html__( 'Checklist', 'wporg-plugins' ) + ) ) - ); -?> - + ?>
      - + + +
    + + + //
    + //
    + //

    %s

    + //
    + // ', + // esc_html__( 'You need to increment your plugin version number and reload the page.', 'wporg-plugins' ) + // ); + // echo do_blocks( $block ); + ?> +
    +
    + +
    + +
    +
    + +
    + +
    +
    + + +
    +
    + + +
    +

    +

    + +
    +
    + + + +
    +
    +
    + +
    + +
    +
    +

    +
    + ' + ); + ?> +
    +
    diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish/style-index.css b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish/style-index.css new file mode 100644 index 0000000000..c7460969b7 --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish/style-index.css @@ -0,0 +1 @@ +.wp-block-wporg-release-publish label{display:block}.wp-block-wporg-release-publish .wp-block-wporg-release-result-item>div:last-child>div{color:var(--wp--preset--color--charcoal-4)}.wp-block-wporg-release-publish-actions,.wp-block-wporg-release-publish-user-confirm{margin-top:var(--wp--preset--spacing--20)}.wp-block-wporg-release-publish-actions{display:flex;gap:8px}.wp-block-wporg-release-publish-actions button[disabled]{opacity:.5}.wp-block-wporg-release-publish-spinner{align-items:center;display:flex;gap:6px} diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish/view.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish/view.asset.php new file mode 100644 index 0000000000..27661128a2 --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish/view.asset.php @@ -0,0 +1 @@ + array('@wordpress/interactivity'), 'version' => 'dbbce87a9cca7f549e5b', 'type' => 'module'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish/view.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish/view.js new file mode 100644 index 0000000000..85539179ee --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish/view.js @@ -0,0 +1 @@ +import*as e from"@wordpress/interactivity";var t={d:(e,r)=>{for(var s in r)t.o(r,s)&&!t.o(e,s)&&Object.defineProperty(e,s,{enumerable:!0,get:r[s]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t)};const r=(i={getContext:()=>e.getContext,store:()=>e.store},n={},t.d(n,i),n),{state:s}=(0,r.store)("async-action-block",{state:{get userHasConfirmed(){return s.hasConfirmed},get isDefaultState(){return!s.isPublishing&&!s.isPublished&&!s.hasError},get isPublishingState(){return s.isPublishing},get isPublishedState(){return s.isPublished}},actions:{handleReleaseConfirm(){s.hasConfirmed=!s.hasConfirmed},handleBackClick(e){e.preventDefault(),s.isCreatingRelease=!1,s.hasConfirmed=!1},handlePageReload(){window.location.reload()},*handleSubmit(e){e.preventDefault(),s.isPublishing=!0,s.errorMessage="";const{pluginSlug:t,nonce:i,apiURL:n}=(0,r.getContext)();try{const e=yield fetch(n,{method:"POST",headers:{"Content-Type":"application/json","X-WP-Nonce":i},body:JSON.stringify({plugin_slug:t})});if(!e.ok)try{const t=yield e.json();throw new Error(t.message)}catch(e){throw new Error("An error occurred while publishing the release.")}s.isPublished=!0}catch(e){s.errorMessage=e.message,s.hasError=!0,s.isPublishing=!1}finally{s.isPublishing=!1}}}});var i,n; \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-item copy/block.json b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-item copy/block.json new file mode 100644 index 0000000000..5086072ee5 --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-item copy/block.json @@ -0,0 +1,28 @@ +{ + "$schema": "https://schemas.wp.org/trunk/block.json", + "apiVersion": 2, + "name": "wporg/release-result-item", + "version": "0.1.0", + "title": "Release Result Item", + "category": "design", + "icon": "", + "description": "A block to display release draft result item.", + "textdomain": "wporg", + "attributes": { + "status": { + "type": "string", + "enum": [ + "error", + "warning", + "success" + ], + "default": "success" + } + }, + "supports": { + "html": false + }, + "editorScript": "file:./index.js", + "render": "file:./render.php", + "style": "file:./style-index.css" +} \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-item copy/index.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-item copy/index.asset.php new file mode 100644 index 0000000000..57eaa35d97 --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-item copy/index.asset.php @@ -0,0 +1 @@ + array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => 'c5097f76ab105587bca5'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-item copy/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-item copy/index.js new file mode 100644 index 0000000000..e3a6578c0d --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-item copy/index.js @@ -0,0 +1,298 @@ +/******/ (() => { // webpackBootstrap +/******/ "use strict"; +/******/ var __webpack_modules__ = ({ + +/***/ "./src/blocks/release-result-item copy/index.js": +/*!******************************************************!*\ + !*** ./src/blocks/release-result-item copy/index.js ***! + \******************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); +/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/blocks */ "@wordpress/blocks"); +/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/server-side-render */ "@wordpress/server-side-render"); +/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/block-editor */ "@wordpress/block-editor"); +/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__); +/* harmony import */ var _block_json__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./block.json */ "./src/blocks/release-result-item copy/block.json"); +/* harmony import */ var _style_scss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./style.scss */ "./src/blocks/release-result-item copy/style.scss"); + +/** + * WordPress dependencies + */ + + + + + +/** + * Internal dependencies + */ + + +function Edit({ + attributes, + name +}) { + return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", { + ...(0,_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__.useBlockProps)() + }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Disabled, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)((_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default()), { + block: name, + attributes: attributes + }))); +} +(0,_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__.registerBlockType)(_block_json__WEBPACK_IMPORTED_MODULE_5__.name, { + edit: Edit, + save: () => null +}); + +/***/ }), + +/***/ "./src/blocks/release-result-item copy/style.scss": +/*!********************************************************!*\ + !*** ./src/blocks/release-result-item copy/style.scss ***! + \********************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +// extracted by mini-css-extract-plugin + + +/***/ }), + +/***/ "react": +/*!************************!*\ + !*** external "React" ***! + \************************/ +/***/ ((module) => { + +module.exports = window["React"]; + +/***/ }), + +/***/ "@wordpress/block-editor": +/*!*************************************!*\ + !*** external ["wp","blockEditor"] ***! + \*************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["blockEditor"]; + +/***/ }), + +/***/ "@wordpress/blocks": +/*!********************************!*\ + !*** external ["wp","blocks"] ***! + \********************************/ +/***/ ((module) => { + +module.exports = window["wp"]["blocks"]; + +/***/ }), + +/***/ "@wordpress/components": +/*!************************************!*\ + !*** external ["wp","components"] ***! + \************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["components"]; + +/***/ }), + +/***/ "@wordpress/server-side-render": +/*!******************************************!*\ + !*** external ["wp","serverSideRender"] ***! + \******************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["serverSideRender"]; + +/***/ }), + +/***/ "./src/blocks/release-result-item copy/block.json": +/*!********************************************************!*\ + !*** ./src/blocks/release-result-item copy/block.json ***! + \********************************************************/ +/***/ ((module) => { + +module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"wporg/release-result-item","version":"0.1.0","title":"Release Result Item","category":"design","icon":"","description":"A block to display release draft result item.","textdomain":"wporg","attributes":{"status":{"type":"string","enum":["error","warning","success"],"default":"success"}},"supports":{"html":false},"editorScript":"file:./index.js","render":"file:./render.php","style":"file:./style-index.css"}'); + +/***/ }) + +/******/ }); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ // no module.id needed +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = __webpack_modules__; +/******/ +/************************************************************************/ +/******/ /* webpack/runtime/chunk loaded */ +/******/ (() => { +/******/ var deferred = []; +/******/ __webpack_require__.O = (result, chunkIds, fn, priority) => { +/******/ if(chunkIds) { +/******/ priority = priority || 0; +/******/ for(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1]; +/******/ deferred[i] = [chunkIds, fn, priority]; +/******/ return; +/******/ } +/******/ var notFulfilled = Infinity; +/******/ for (var i = 0; i < deferred.length; i++) { +/******/ var chunkIds = deferred[i][0]; +/******/ var fn = deferred[i][1]; +/******/ var priority = deferred[i][2]; +/******/ var fulfilled = true; +/******/ for (var j = 0; j < chunkIds.length; j++) { +/******/ if ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) { +/******/ chunkIds.splice(j--, 1); +/******/ } else { +/******/ fulfilled = false; +/******/ if(priority < notFulfilled) notFulfilled = priority; +/******/ } +/******/ } +/******/ if(fulfilled) { +/******/ deferred.splice(i--, 1) +/******/ var r = fn(); +/******/ if (r !== undefined) result = r; +/******/ } +/******/ } +/******/ return result; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/compat get default export */ +/******/ (() => { +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = (module) => { +/******/ var getter = module && module.__esModule ? +/******/ () => (module['default']) : +/******/ () => (module); +/******/ __webpack_require__.d(getter, { a: getter }); +/******/ return getter; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/define property getters */ +/******/ (() => { +/******/ // define getter functions for harmony exports +/******/ __webpack_require__.d = (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 */ +/******/ (() => { +/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) +/******/ })(); +/******/ +/******/ /* webpack/runtime/make namespace object */ +/******/ (() => { +/******/ // define __esModule on exports +/******/ __webpack_require__.r = (exports) => { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/jsonp chunk loading */ +/******/ (() => { +/******/ // no baseURI +/******/ +/******/ // object to store loaded and loading chunks +/******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched +/******/ // [resolve, reject, Promise] = chunk loading, 0 = chunk loaded +/******/ var installedChunks = { +/******/ "blocks/release-result-item copy/index": 0, +/******/ "blocks/release-result-item copy/style-index": 0 +/******/ }; +/******/ +/******/ // no chunk on demand loading +/******/ +/******/ // no prefetching +/******/ +/******/ // no preloaded +/******/ +/******/ // no HMR +/******/ +/******/ // no HMR manifest +/******/ +/******/ __webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0); +/******/ +/******/ // install a JSONP callback for chunk loading +/******/ var webpackJsonpCallback = (parentChunkLoadingFunction, data) => { +/******/ var chunkIds = data[0]; +/******/ var moreModules = data[1]; +/******/ var runtime = data[2]; +/******/ // add "moreModules" to the modules object, +/******/ // then flag all "chunkIds" as loaded and fire callback +/******/ var moduleId, chunkId, i = 0; +/******/ if(chunkIds.some((id) => (installedChunks[id] !== 0))) { +/******/ for(moduleId in moreModules) { +/******/ if(__webpack_require__.o(moreModules, moduleId)) { +/******/ __webpack_require__.m[moduleId] = moreModules[moduleId]; +/******/ } +/******/ } +/******/ if(runtime) var result = runtime(__webpack_require__); +/******/ } +/******/ if(parentChunkLoadingFunction) parentChunkLoadingFunction(data); +/******/ for(;i < chunkIds.length; i++) { +/******/ chunkId = chunkIds[i]; +/******/ if(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) { +/******/ installedChunks[chunkId][0](); +/******/ } +/******/ installedChunks[chunkId] = 0; +/******/ } +/******/ return __webpack_require__.O(result); +/******/ } +/******/ +/******/ var chunkLoadingGlobal = self["webpackChunkwporg_plugins_2024"] = self["webpackChunkwporg_plugins_2024"] || []; +/******/ chunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0)); +/******/ chunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal)); +/******/ })(); +/******/ +/************************************************************************/ +/******/ +/******/ // startup +/******/ // Load entry module and return exports +/******/ // This entry module depends on other loaded chunks and execution need to be delayed +/******/ var __webpack_exports__ = __webpack_require__.O(undefined, ["blocks/release-result-item copy/style-index"], () => (__webpack_require__("./src/blocks/release-result-item copy/index.js"))) +/******/ __webpack_exports__ = __webpack_require__.O(__webpack_exports__); +/******/ +/******/ })() +; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-check-item/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-item copy/render.php similarity index 100% rename from wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-check-item/render.php rename to wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-item copy/render.php diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-item copy/style-index.css b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-item copy/style-index.css new file mode 100644 index 0000000000..479186db5d --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-item copy/style-index.css @@ -0,0 +1,17 @@ +/*!***********************************************************************************************************************************************************************************************************************************************************************!*\ + !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/blocks/release-result-item copy/style.scss ***! + \***********************************************************************************************************************************************************************************************************************************************************************/ +.wp-block-wporg-release-result-item { + display: flex; + margin: 0 !important; + position: relative; + gap: 8px; + list-style: none; +} +.wp-block-wporg-release-result-item > div:first-child { + height: 25px; + display: flex; + align-items: center; +} + +/*# sourceMappingURL=style-index.css.map*/ \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-item/block.json b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-item/block.json new file mode 100644 index 0000000000..a9626174ed --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-item/block.json @@ -0,0 +1,27 @@ +{ + "$schema": "https://schemas.wp.org/trunk/block.json", + "apiVersion": 2, + "name": "wporg/release-result-item", + "version": "0.1.0", + "title": "Release Result Item", + "category": "design", + "icon": "", + "description": "A block to display release draft result item.", + "textdomain": "wporg", + "attributes": { + "status": { + "type": "string", + "enum": [ + "error", + "warning", + "success" + ] + } + }, + "supports": { + "html": false + }, + "editorScript": "file:./index.js", + "render": "file:./render.php", + "style": "file:./style-index.css" +} \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-item/index.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-item/index.asset.php new file mode 100644 index 0000000000..aea35ae04e --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-item/index.asset.php @@ -0,0 +1 @@ + array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => '79bdfcb4f66a47121c4b'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-item/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-item/index.js new file mode 100644 index 0000000000..7f896da73f --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-item/index.js @@ -0,0 +1 @@ +(()=>{"use strict";var e,r={659:(e,r,t)=>{const n=window.React,o=window.wp.components,i=window.wp.blocks,a=window.wp.serverSideRender;var l=t.n(a);const s=window.wp.blockEditor,u=JSON.parse('{"u2":"wporg/release-result-item"}');(0,i.registerBlockType)(u.u2,{edit:function({attributes:e,name:r}){return(0,n.createElement)("div",{...(0,s.useBlockProps)()},(0,n.createElement)(o.Disabled,null,(0,n.createElement)(l(),{block:r,attributes:e})))},save:()=>null})}},t={};function n(e){var o=t[e];if(void 0!==o)return o.exports;var i=t[e]={exports:{}};return r[e](i,i.exports,n),i.exports}n.m=r,e=[],n.O=(r,t,o,i)=>{if(!t){var a=1/0;for(p=0;p=i)&&Object.keys(n.O).every((e=>n.O[e](t[s])))?t.splice(s--,1):(l=!1,i0&&e[p-1][2]>i;p--)e[p]=e[p-1];e[p]=[t,o,i]},n.n=e=>{var r=e&&e.__esModule?()=>e.default:()=>e;return n.d(r,{a:r}),r},n.d=(e,r)=>{for(var t in r)n.o(r,t)&&!n.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:r[t]})},n.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),(()=>{var e={471:0,574:0};n.O.j=r=>0===e[r];var r=(r,t)=>{var o,i,a=t[0],l=t[1],s=t[2],u=0;if(a.some((r=>0!==e[r]))){for(o in l)n.o(l,o)&&(n.m[o]=l[o]);if(s)var p=s(n)}for(r&&r(t);un(659)));o=n.O(o)})(); \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-item/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-item/render.php new file mode 100644 index 0000000000..d2a7346ba1 --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-item/render.php @@ -0,0 +1,24 @@ +
  • > +
    + attributes['status'] ) : ?> + + + + + + attributes['status'] ) : ?> + + + + attributes['status'] ) : ?> + + + + + + + +
    + + inner_html ); ?> +
  • diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-item/style-index.css b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-item/style-index.css new file mode 100644 index 0000000000..99903c7203 --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-item/style-index.css @@ -0,0 +1 @@ +.wp-block-wporg-release-result-item{display:flex;gap:8px;list-style:none;margin:0 0 12px!important;position:relative}.wp-block-wporg-release-result-item>div:first-child{align-items:center;display:flex;height:25px}ul .wp-block-wporg-release-result-item:last-child{margin-bottom:0} diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-list/block.json b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-list/block.json new file mode 100644 index 0000000000..47eae44f8d --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-list/block.json @@ -0,0 +1,18 @@ +{ + "$schema": "https://schemas.wp.org/trunk/block.json", + "apiVersion": 2, + "name": "wporg/release-result-list", + "version": "0.1.0", + "title": "Release Result List", + "category": "design", + "icon": "", + "description": "A block to display release draft result list.", + "textdomain": "wporg", + "attributes": {}, + "supports": { + "html": false + }, + "editorScript": "file:./index.js", + "render": "file:./render.php", + "style": "file:./style-index.css" +} \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-list/index.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-list/index.asset.php new file mode 100644 index 0000000000..7849bcf938 --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-list/index.asset.php @@ -0,0 +1 @@ + array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => '10d58671b04ac2c5d511'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-list/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-list/index.js new file mode 100644 index 0000000000..d66594a40b --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-list/index.js @@ -0,0 +1,298 @@ +/******/ (() => { // webpackBootstrap +/******/ "use strict"; +/******/ var __webpack_modules__ = ({ + +/***/ "./src/blocks/release-result-list/index.js": +/*!*************************************************!*\ + !*** ./src/blocks/release-result-list/index.js ***! + \*************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); +/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/blocks */ "@wordpress/blocks"); +/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/server-side-render */ "@wordpress/server-side-render"); +/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/block-editor */ "@wordpress/block-editor"); +/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__); +/* harmony import */ var _block_json__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./block.json */ "./src/blocks/release-result-list/block.json"); +/* harmony import */ var _style_scss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./style.scss */ "./src/blocks/release-result-list/style.scss"); + +/** + * WordPress dependencies + */ + + + + + +/** + * Internal dependencies + */ + + +function Edit({ + attributes, + name +}) { + return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", { + ...(0,_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__.useBlockProps)() + }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Disabled, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)((_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default()), { + block: name, + attributes: attributes + }))); +} +(0,_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__.registerBlockType)(_block_json__WEBPACK_IMPORTED_MODULE_5__.name, { + edit: Edit, + save: () => null +}); + +/***/ }), + +/***/ "./src/blocks/release-result-list/style.scss": +/*!***************************************************!*\ + !*** ./src/blocks/release-result-list/style.scss ***! + \***************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +// extracted by mini-css-extract-plugin + + +/***/ }), + +/***/ "react": +/*!************************!*\ + !*** external "React" ***! + \************************/ +/***/ ((module) => { + +module.exports = window["React"]; + +/***/ }), + +/***/ "@wordpress/block-editor": +/*!*************************************!*\ + !*** external ["wp","blockEditor"] ***! + \*************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["blockEditor"]; + +/***/ }), + +/***/ "@wordpress/blocks": +/*!********************************!*\ + !*** external ["wp","blocks"] ***! + \********************************/ +/***/ ((module) => { + +module.exports = window["wp"]["blocks"]; + +/***/ }), + +/***/ "@wordpress/components": +/*!************************************!*\ + !*** external ["wp","components"] ***! + \************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["components"]; + +/***/ }), + +/***/ "@wordpress/server-side-render": +/*!******************************************!*\ + !*** external ["wp","serverSideRender"] ***! + \******************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["serverSideRender"]; + +/***/ }), + +/***/ "./src/blocks/release-result-list/block.json": +/*!***************************************************!*\ + !*** ./src/blocks/release-result-list/block.json ***! + \***************************************************/ +/***/ ((module) => { + +module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"wporg/release-result-list","version":"0.1.0","title":"Release Result List","category":"design","icon":"","description":"A block to display release draft result list.","textdomain":"wporg","attributes":{},"supports":{"html":false},"editorScript":"file:./index.js","render":"file:./render.php","style":"file:./style-index.css"}'); + +/***/ }) + +/******/ }); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ // no module.id needed +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = __webpack_modules__; +/******/ +/************************************************************************/ +/******/ /* webpack/runtime/chunk loaded */ +/******/ (() => { +/******/ var deferred = []; +/******/ __webpack_require__.O = (result, chunkIds, fn, priority) => { +/******/ if(chunkIds) { +/******/ priority = priority || 0; +/******/ for(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1]; +/******/ deferred[i] = [chunkIds, fn, priority]; +/******/ return; +/******/ } +/******/ var notFulfilled = Infinity; +/******/ for (var i = 0; i < deferred.length; i++) { +/******/ var chunkIds = deferred[i][0]; +/******/ var fn = deferred[i][1]; +/******/ var priority = deferred[i][2]; +/******/ var fulfilled = true; +/******/ for (var j = 0; j < chunkIds.length; j++) { +/******/ if ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) { +/******/ chunkIds.splice(j--, 1); +/******/ } else { +/******/ fulfilled = false; +/******/ if(priority < notFulfilled) notFulfilled = priority; +/******/ } +/******/ } +/******/ if(fulfilled) { +/******/ deferred.splice(i--, 1) +/******/ var r = fn(); +/******/ if (r !== undefined) result = r; +/******/ } +/******/ } +/******/ return result; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/compat get default export */ +/******/ (() => { +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = (module) => { +/******/ var getter = module && module.__esModule ? +/******/ () => (module['default']) : +/******/ () => (module); +/******/ __webpack_require__.d(getter, { a: getter }); +/******/ return getter; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/define property getters */ +/******/ (() => { +/******/ // define getter functions for harmony exports +/******/ __webpack_require__.d = (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 */ +/******/ (() => { +/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) +/******/ })(); +/******/ +/******/ /* webpack/runtime/make namespace object */ +/******/ (() => { +/******/ // define __esModule on exports +/******/ __webpack_require__.r = (exports) => { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/jsonp chunk loading */ +/******/ (() => { +/******/ // no baseURI +/******/ +/******/ // object to store loaded and loading chunks +/******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched +/******/ // [resolve, reject, Promise] = chunk loading, 0 = chunk loaded +/******/ var installedChunks = { +/******/ "blocks/release-result-list/index": 0, +/******/ "blocks/release-result-list/style-index": 0 +/******/ }; +/******/ +/******/ // no chunk on demand loading +/******/ +/******/ // no prefetching +/******/ +/******/ // no preloaded +/******/ +/******/ // no HMR +/******/ +/******/ // no HMR manifest +/******/ +/******/ __webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0); +/******/ +/******/ // install a JSONP callback for chunk loading +/******/ var webpackJsonpCallback = (parentChunkLoadingFunction, data) => { +/******/ var chunkIds = data[0]; +/******/ var moreModules = data[1]; +/******/ var runtime = data[2]; +/******/ // add "moreModules" to the modules object, +/******/ // then flag all "chunkIds" as loaded and fire callback +/******/ var moduleId, chunkId, i = 0; +/******/ if(chunkIds.some((id) => (installedChunks[id] !== 0))) { +/******/ for(moduleId in moreModules) { +/******/ if(__webpack_require__.o(moreModules, moduleId)) { +/******/ __webpack_require__.m[moduleId] = moreModules[moduleId]; +/******/ } +/******/ } +/******/ if(runtime) var result = runtime(__webpack_require__); +/******/ } +/******/ if(parentChunkLoadingFunction) parentChunkLoadingFunction(data); +/******/ for(;i < chunkIds.length; i++) { +/******/ chunkId = chunkIds[i]; +/******/ if(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) { +/******/ installedChunks[chunkId][0](); +/******/ } +/******/ installedChunks[chunkId] = 0; +/******/ } +/******/ return __webpack_require__.O(result); +/******/ } +/******/ +/******/ var chunkLoadingGlobal = self["webpackChunkwporg_plugins_2024"] = self["webpackChunkwporg_plugins_2024"] || []; +/******/ chunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0)); +/******/ chunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal)); +/******/ })(); +/******/ +/************************************************************************/ +/******/ +/******/ // startup +/******/ // Load entry module and return exports +/******/ // This entry module depends on other loaded chunks and execution need to be delayed +/******/ var __webpack_exports__ = __webpack_require__.O(undefined, ["blocks/release-result-list/style-index"], () => (__webpack_require__("./src/blocks/release-result-list/index.js"))) +/******/ __webpack_exports__ = __webpack_require__.O(__webpack_exports__); +/******/ +/******/ })() +; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-list/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-list/render.php new file mode 100644 index 0000000000..1df49ea1ef --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-list/render.php @@ -0,0 +1,22 @@ +
  • > +
    + attributes['status'] ) : ?> + + + + + + attributes['status'] ) : ?> + + + + attributes['status'] ) : ?> + + + + + +
    + + inner_html ); ?> +
  • diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-list/style-index.css b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-list/style-index.css new file mode 100644 index 0000000000..1ef3e67a05 --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-list/style-index.css @@ -0,0 +1,17 @@ +/*!******************************************************************************************************************************************************************************************************************************************************************!*\ + !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/blocks/release-result-list/style.scss ***! + \******************************************************************************************************************************************************************************************************************************************************************/ +.wp-block-wporg-release-result-item { + display: flex; + margin: 0 !important; + position: relative; + gap: 8px; + list-style: none; +} +.wp-block-wporg-release-result-item > div:first-child { + height: 25px; + display: flex; + align-items: center; +} + +/*# sourceMappingURL=style-index.css.map*/ \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status/render.php index 0517e2e2f2..a4012c0db0 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status/render.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status/render.php @@ -4,12 +4,12 @@ return; } -$post = get_post( $block->context['postId'] ); -if ( ! $post ) { +$release_post = get_post( $block->context['postId'] ); +if ( ! $release_post ) { return; } -if('draft' != $post->post_s) { +if ( 'draft' != $release_post->post_status ) { return; } ?> diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/search-page/index.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/search-page/index.asset.php index 324a1e825f..3874c78df8 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/search-page/index.asset.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/search-page/index.asset.php @@ -1 +1 @@ - array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => '2932d78d72daed3eaacc'); + array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => '6b2f02802534bd210435'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/search-page/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/search-page/index.js index 7e3f159885..66e06627aa 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/search-page/index.js +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/search-page/index.js @@ -1,183 +1 @@ -/******/ (() => { // webpackBootstrap -/******/ "use strict"; -/******/ var __webpack_modules__ = ({ - -/***/ "react": -/*!************************!*\ - !*** external "React" ***! - \************************/ -/***/ ((module) => { - -module.exports = window["React"]; - -/***/ }), - -/***/ "@wordpress/block-editor": -/*!*************************************!*\ - !*** external ["wp","blockEditor"] ***! - \*************************************/ -/***/ ((module) => { - -module.exports = window["wp"]["blockEditor"]; - -/***/ }), - -/***/ "@wordpress/blocks": -/*!********************************!*\ - !*** external ["wp","blocks"] ***! - \********************************/ -/***/ ((module) => { - -module.exports = window["wp"]["blocks"]; - -/***/ }), - -/***/ "@wordpress/components": -/*!************************************!*\ - !*** external ["wp","components"] ***! - \************************************/ -/***/ ((module) => { - -module.exports = window["wp"]["components"]; - -/***/ }), - -/***/ "@wordpress/server-side-render": -/*!******************************************!*\ - !*** external ["wp","serverSideRender"] ***! - \******************************************/ -/***/ ((module) => { - -module.exports = window["wp"]["serverSideRender"]; - -/***/ }), - -/***/ "./src/blocks/search-page/block.json": -/*!*******************************************!*\ - !*** ./src/blocks/search-page/block.json ***! - \*******************************************/ -/***/ ((module) => { - -module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"wporg/search-page","version":"0.1.0","title":"Search Page Content","category":"design","icon":"","description":"A block that displays the search page content","textdomain":"wporg","attributes":{},"supports":{"html":false},"editorScript":"file:./index.js","render":"file:./render.php"}'); - -/***/ }) - -/******/ }); -/************************************************************************/ -/******/ // The module cache -/******/ var __webpack_module_cache__ = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ // Check if module is in cache -/******/ var cachedModule = __webpack_module_cache__[moduleId]; -/******/ if (cachedModule !== undefined) { -/******/ return cachedModule.exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = __webpack_module_cache__[moduleId] = { -/******/ // no module.id needed -/******/ // no module.loaded needed -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/************************************************************************/ -/******/ /* webpack/runtime/compat get default export */ -/******/ (() => { -/******/ // getDefaultExport function for compatibility with non-harmony modules -/******/ __webpack_require__.n = (module) => { -/******/ var getter = module && module.__esModule ? -/******/ () => (module['default']) : -/******/ () => (module); -/******/ __webpack_require__.d(getter, { a: getter }); -/******/ return getter; -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/define property getters */ -/******/ (() => { -/******/ // define getter functions for harmony exports -/******/ __webpack_require__.d = (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 */ -/******/ (() => { -/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) -/******/ })(); -/******/ -/******/ /* webpack/runtime/make namespace object */ -/******/ (() => { -/******/ // define __esModule on exports -/******/ __webpack_require__.r = (exports) => { -/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { -/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); -/******/ } -/******/ Object.defineProperty(exports, '__esModule', { value: true }); -/******/ }; -/******/ })(); -/******/ -/************************************************************************/ -var __webpack_exports__ = {}; -// This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk. -(() => { -/*!*****************************************!*\ - !*** ./src/blocks/search-page/index.js ***! - \*****************************************/ -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); -/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/blocks */ "@wordpress/blocks"); -/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/server-side-render */ "@wordpress/server-side-render"); -/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/block-editor */ "@wordpress/block-editor"); -/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__); -/* harmony import */ var _block_json__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./block.json */ "./src/blocks/search-page/block.json"); - -/** - * WordPress dependencies - */ - - - - - -/** - * Internal dependencies - */ - -function Edit({ - attributes, - name -}) { - return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", { - ...(0,_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__.useBlockProps)() - }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Disabled, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)((_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default()), { - block: name, - attributes: attributes - }))); -} -(0,_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__.registerBlockType)(_block_json__WEBPACK_IMPORTED_MODULE_5__.name, { - edit: Edit, - save: () => null -}); -})(); - -/******/ })() -; -//# sourceMappingURL=index.js.map \ No newline at end of file +(()=>{"use strict";var e={n:t=>{var r=t&&t.__esModule?()=>t.default:()=>t;return e.d(r,{a:r}),r},d:(t,r)=>{for(var o in r)e.o(r,o)&&!e.o(t,o)&&Object.defineProperty(t,o,{enumerable:!0,get:r[o]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t)};const t=window.React,r=window.wp.components,o=window.wp.blocks,n=window.wp.serverSideRender;var a=e.n(n);const c=window.wp.blockEditor,l=JSON.parse('{"u2":"wporg/search-page"}');(0,o.registerBlockType)(l.u2,{edit:function({attributes:e,name:o}){return(0,t.createElement)("div",{...(0,c.useBlockProps)()},(0,t.createElement)(r.Disabled,null,(0,t.createElement)(a(),{block:o,attributes:e})))},save:()=>null})})(); \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/single-plugin/index.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/single-plugin/index.asset.php index d35f709556..cb40720c88 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/single-plugin/index.asset.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/single-plugin/index.asset.php @@ -1 +1 @@ - array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => '1bb248b43dcc36e48747'); + array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => '553d7b70458e5cb3fa39'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/single-plugin/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/single-plugin/index.js index 8c8d7df376..4d9a19fd2b 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/single-plugin/index.js +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/single-plugin/index.js @@ -1,183 +1 @@ -/******/ (() => { // webpackBootstrap -/******/ "use strict"; -/******/ var __webpack_modules__ = ({ - -/***/ "react": -/*!************************!*\ - !*** external "React" ***! - \************************/ -/***/ ((module) => { - -module.exports = window["React"]; - -/***/ }), - -/***/ "@wordpress/block-editor": -/*!*************************************!*\ - !*** external ["wp","blockEditor"] ***! - \*************************************/ -/***/ ((module) => { - -module.exports = window["wp"]["blockEditor"]; - -/***/ }), - -/***/ "@wordpress/blocks": -/*!********************************!*\ - !*** external ["wp","blocks"] ***! - \********************************/ -/***/ ((module) => { - -module.exports = window["wp"]["blocks"]; - -/***/ }), - -/***/ "@wordpress/components": -/*!************************************!*\ - !*** external ["wp","components"] ***! - \************************************/ -/***/ ((module) => { - -module.exports = window["wp"]["components"]; - -/***/ }), - -/***/ "@wordpress/server-side-render": -/*!******************************************!*\ - !*** external ["wp","serverSideRender"] ***! - \******************************************/ -/***/ ((module) => { - -module.exports = window["wp"]["serverSideRender"]; - -/***/ }), - -/***/ "./src/blocks/single-plugin/block.json": -/*!*********************************************!*\ - !*** ./src/blocks/single-plugin/block.json ***! - \*********************************************/ -/***/ ((module) => { - -module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"wporg/single-plugin","version":"0.1.0","title":"Single Plugin Content","category":"design","icon":"","description":"A block that displays the single plugin content","textdomain":"wporg","attributes":{},"supports":{"html":false},"usesContext":["postId"],"editorScript":"file:./index.js","render":"file:./render.php"}'); - -/***/ }) - -/******/ }); -/************************************************************************/ -/******/ // The module cache -/******/ var __webpack_module_cache__ = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ // Check if module is in cache -/******/ var cachedModule = __webpack_module_cache__[moduleId]; -/******/ if (cachedModule !== undefined) { -/******/ return cachedModule.exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = __webpack_module_cache__[moduleId] = { -/******/ // no module.id needed -/******/ // no module.loaded needed -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/************************************************************************/ -/******/ /* webpack/runtime/compat get default export */ -/******/ (() => { -/******/ // getDefaultExport function for compatibility with non-harmony modules -/******/ __webpack_require__.n = (module) => { -/******/ var getter = module && module.__esModule ? -/******/ () => (module['default']) : -/******/ () => (module); -/******/ __webpack_require__.d(getter, { a: getter }); -/******/ return getter; -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/define property getters */ -/******/ (() => { -/******/ // define getter functions for harmony exports -/******/ __webpack_require__.d = (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 */ -/******/ (() => { -/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) -/******/ })(); -/******/ -/******/ /* webpack/runtime/make namespace object */ -/******/ (() => { -/******/ // define __esModule on exports -/******/ __webpack_require__.r = (exports) => { -/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { -/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); -/******/ } -/******/ Object.defineProperty(exports, '__esModule', { value: true }); -/******/ }; -/******/ })(); -/******/ -/************************************************************************/ -var __webpack_exports__ = {}; -// This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk. -(() => { -/*!*******************************************!*\ - !*** ./src/blocks/single-plugin/index.js ***! - \*******************************************/ -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); -/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/blocks */ "@wordpress/blocks"); -/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/server-side-render */ "@wordpress/server-side-render"); -/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/block-editor */ "@wordpress/block-editor"); -/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__); -/* harmony import */ var _block_json__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./block.json */ "./src/blocks/single-plugin/block.json"); - -/** - * WordPress dependencies - */ - - - - - -/** - * Internal dependencies - */ - -function Edit({ - attributes, - name -}) { - return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", { - ...(0,_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__.useBlockProps)() - }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Disabled, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)((_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default()), { - block: name, - attributes: attributes - }))); -} -(0,_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__.registerBlockType)(_block_json__WEBPACK_IMPORTED_MODULE_5__.name, { - edit: Edit, - save: () => null -}); -})(); - -/******/ })() -; -//# sourceMappingURL=index.js.map \ No newline at end of file +(()=>{"use strict";var e={n:t=>{var r=t&&t.__esModule?()=>t.default:()=>t;return e.d(r,{a:r}),r},d:(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:(e,t)=>Object.prototype.hasOwnProperty.call(e,t)};const t=window.React,r=window.wp.components,n=window.wp.blocks,o=window.wp.serverSideRender;var l=e.n(o);const a=window.wp.blockEditor,i=JSON.parse('{"u2":"wporg/single-plugin"}');(0,n.registerBlockType)(i.u2,{edit:function({attributes:e,name:n}){return(0,t.createElement)("div",{...(0,a.useBlockProps)()},(0,t.createElement)(r.Disabled,null,(0,t.createElement)(l(),{block:n,attributes:e})))},save:()=>null})})(); \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/client/components/plugin/_spinner.scss b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/client/components/plugin/_spinner.scss new file mode 100644 index 0000000000..0ac9a79e9b --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/client/components/plugin/_spinner.scss @@ -0,0 +1,49 @@ +.wporg-spinner { + --local-size: 16px; + --spinner-color: var(--wp--custom--spinner--color, var(--wp--preset--color--blueberry-1, currentColor)); + --background-stroke-color: rgb(221, 221, 221); + + width: var(--local-size); + height: var(--local-size); + display: inline-block; + background-color: transparent; + position: relative; +} + +/* Static outer circle */ +.wporg-spinner::before { + content: ''; + width: 100%; + height: 100%; + border-radius: 50%; + border: 1.5px solid var(--background-stroke-color); + display: block; + box-sizing: border-box; +} + +/* Rotating semicircle (arc) */ +.wporg-spinner::after { + content: ''; + width: 100%; + height: 100%; + border-radius: 50%; + border: 1.5px solid transparent; + border-top-color: var(--spinner-color); + border-right-color: var(--spinner-color); + display: block; + box-sizing: border-box; + animation: wporg-spinner-rotate 1.4s linear infinite; + transform-origin: center; + position: absolute; + top: 0; + left: 0; +} + +@keyframes wporg-spinner-rotate { + from { + transform: rotate(0deg); + } + to { + transform: rotate(360deg); + } +} diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/client/styles/components/_components.scss b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/client/styles/components/_components.scss index 66e63d0b08..77be260a4f 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/client/styles/components/_components.scss +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/client/styles/components/_components.scss @@ -22,6 +22,7 @@ @import "../../components/plugin/sections-screenshots"; @import "../../components/plugin/sections-stats"; @import "../../components/plugin/sections"; +@import "../../components/plugin/spinner"; @import "../../components/plugin/style"; @import "../../components/widget-area/widgets-adopt-me"; @import "../../components/widget-area/widgets-categorization"; diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/css/style-rtl.css b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/css/style-rtl.css index 06d154b748..01016b968f 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/css/style-rtl.css +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/css/style-rtl.css @@ -1 +1 @@ -@charset "UTF-8";.avatar{border-radius:50%;vertical-align:middle}.wp-block-wporg-language-suggest>p{margin:0}.block-validator>details summary{padding:var(--wp--style--block-gap) 0}.block-validator .block-validator__plugin-form label{display:block;margin-bottom:.8em}.block-validator .block-validator__plugin-input-container{display:flex;max-width:34rem}.block-validator .block-validator__plugin-input{flex:1}.block-validator .block-validator__plugin-submit{flex:0;margin-right:4px}@media (max-width:36rem){.block-validator .block-validator__plugin-submit{width:100%}.block-validator .block-validator__plugin-input-container{display:block}.block-validator .block-validator__plugin-input{width:100%}.block-validator .block-validator__plugin-submit{margin-right:0;margin-top:var(--wp--style--block-gap)}}.block-validator .notice details,.block-validator .notice p{font-size:var(--wp--preset--font-size--normal);margin:var(--wp--style--block-gap) 0}.block-validator .notice details p{font-size:var(--wp--preset--font-size--small);margin-right:1rem}.block-validator .notice summary{display:list-item}.block-validator figure{border:1px solid #aaa;display:inline-block;padding:1em}.block-validator .test-screenshot{text-align:center}.block-validator .plugin-upload-form-controls{align-items:center;display:flex;gap:4px}.block-validator .plugin-upload-form-controls>label{border:1px solid var(--wp--custom--form--border--color);border-radius:var(--wp--custom--form--border--radius);cursor:pointer;min-width:200px;padding:4px 8px}.notice{background:#fff;border-right:4px solid #fff;box-shadow:0 1px 1px 0 #0000001a;font-size:var(--wp--preset--font-size--small);margin:var(--wp--style--block-gap) 0;padding:1px 12px}.notice p,.notice ul{margin:.5em 0;padding:2px}.notice pre{white-space:pre-wrap}.notice ul{list-style:none;margin:.5em}.notice.notice-alt{box-shadow:none}.notice.notice-large{padding:10px 20px}.notice.notice-success{border-right-color:#46b450}.notice.notice-success.notice-alt{background-color:#ecf7ed}.notice.notice-warning{border-right-color:#ffb900}.notice.notice-warning.notice-alt{background-color:#fff8e5}.notice.notice-error{border-right-color:#dc3232}.notice.notice-error.notice-alt{background-color:#fbeaea}.notice.notice-info{border-right-color:#00a0d2}.notice.notice-info.notice-alt{background-color:#e5f5fa}.notice.hidden{display:none}.plugin-upload-form.hidden{display:none}.plugin-upload-form fieldset{border:none;margin:0;padding:0}.plugin-upload-form legend{margin:1rem 0}.plugin-upload-form .category-checklist{list-style-type:none;margin:0 0 2rem}.plugin-upload-form .category-checklist li{float:right;padding:.5rem 0;width:50%}@media screen and (min-width:48em){.plugin-upload-form .category-checklist li{padding:0}.plugin-upload-form .category-checklist label{font-size:var(--wp--preset--font-size--small)}.plugin-upload-form label.button{line-height:1.8}}.plugin-upload-form .plugin-file{height:.1px;opacity:0;overflow:hidden;position:absolute;width:.1px;z-index:-1}.plugin-queue-message code{font-size:1em}.plugin-queue-message dialog.slug-change input[type=text]{font-family:monospace;font-size:1.2em;width:20em}:where(main) a:where(:not(.wp-element-button,.wp-block-wporg-link-wrapper)):focus,:where(main) button:where(:not([class*=wp-block-button])):focus{border-radius:2px;box-shadow:0 0 0 1.5px currentColor;outline:none}.wporg-filter-bar{--wporg--filter-bar--gap:20px;--wporg--filter-bar--color:#40464d;--wporg--filter-bar--active--background-color:var(--wp--custom--button--color--background);--wporg--filter-bar--focus--border-color:var(--wp--custom--button--focus--border--color);margin:var(--wp--style--block-gap) 0}.wporg-filter-bar .wporg-query-filter__toggle.is-active,.wporg-filter-bar .wporg-query-filter__toggle:active,.wporg-filter-bar .wporg-query-filter__toggle:focus{background-color:var(--wporg--filter-bar--active--background-color);color:var(--wp--custom--button--color--text)}.wporg-filter-bar .wporg-filter-bar__navigation{flex-grow:1;margin-bottom:var(--wporg--filter-bar--gap)}.wporg-filter-bar .wporg-filter-bar__navigation ul{display:inline-block;font-size:13px;line-height:1.538;list-style:none;margin:0;padding-right:0}.wporg-filter-bar .wporg-filter-bar__navigation ul li{display:inline-block}.wporg-filter-bar .wporg-filter-bar__navigation ul li+li{margin-right:8px}.wporg-filter-bar .wporg-filter-bar__navigation ul a{border-radius:2px;color:var(--wporg--filter-bar--color);display:block;padding:8px 12px;text-decoration:none}.wporg-filter-bar .wporg-filter-bar__navigation ul a:focus,.wporg-filter-bar .wporg-filter-bar__navigation ul a:hover{text-decoration:underline}.wporg-filter-bar .wporg-filter-bar__navigation ul a:focus-visible{box-shadow:none;outline:1.5px solid var(--wporg--filter-bar--focus--border-color);outline-offset:-.5px}.wporg-filter-bar .wporg-filter-bar__navigation ul a.is-active{background-color:var(--wporg--filter-bar--active--background-color);color:#fff}.wporg-filter-bar .wporg-filter-bar__navigation ul a.is-active:focus,.wporg-filter-bar .wporg-filter-bar__navigation ul a.is-active:hover{color:#fff}.wporg-filter-bar .wporg-filter-bar__navigation ul a.is-active:focus-visible{box-shadow:inset 0 0 0 1.5px #fff;outline:1.5px solid var(--wporg--filter-bar--focus--border-color);outline-offset:-.5px}@media screen and (min-width:737px){.wporg-filter-bar{align-items:center;display:flex;flex-wrap:wrap;gap:var(--wporg--filter-bar--gap);justify-content:space-between;width:100%}.wporg-filter-bar .wporg-filter-bar__navigation{margin-bottom:0}}.wp-block-search__inside-wrapper{background:var(--wp--preset--color--light-grey-2);border:none}.button-link{background:none;border:0;border-radius:0;box-shadow:none;cursor:pointer;margin:0;outline:none;padding:0}.button{background-color:var(--wp--custom--button--color--background);border:0;border-radius:var(--wp--custom--button--border--radius);color:var(--wp--custom--button--color--text);cursor:pointer;opacity:1;padding:calc(var(--wp--custom--button--small--spacing--padding--top) + var(--wp--custom--button--border--width)) calc(var(--wp--custom--button--small--spacing--padding--left) + var(--wp--custom--button--border--width)) calc(var(--wp--custom--button--small--spacing--padding--bottom) + var(--wp--custom--button--border--width)) calc(var(--wp--custom--button--small--spacing--padding--right) + var(--wp--custom--button--border--width));vertical-align:middle}.button.button-large{padding:calc(var(--wp--custom--button--spacing--padding--top) + var(--wp--custom--button--border--width)) calc(var(--wp--custom--button--spacing--padding--left) + var(--wp--custom--button--border--width)) calc(var(--wp--custom--button--spacing--padding--bottom) + var(--wp--custom--button--border--width)) calc(var(--wp--custom--button--spacing--padding--right) + var(--wp--custom--button--border--width))}input+button.button,select+button.button{margin-top:-3px}.button.disabled{cursor:not-allowed;opacity:.6}.wp-block-post-content a.button{text-decoration:none}.wp-block-button__link{width:auto}pre{background-color:#f7f7f7;border:1px solid var(--wp--preset--color--light-grey-1);overflow:scroll;padding:20px}code,pre{border-radius:2px}code{background:var(--wp--preset--color--light-grey-2);display:inline-block;line-height:var(--wp--custom--body--extra-small--typography--line-height);max-width:100%;padding-inline-end:3px;padding-inline-start:3px}dialog{border:0;box-shadow:-6px 6px 6px #0003;min-height:50%;min-width:30%}@media (min-width:1280px){dialog{max-width:55%}}dialog::backdrop{background:#000;opacity:.5}dialog .close{color:inherit;cursor:pointer;position:absolute;left:1em;text-decoration:none!important;top:1em}.plugin-card{display:flex;flex-direction:column;height:100%;justify-content:space-between}.plugin-card .entry{display:inline-block;vertical-align:top}.plugin-card .entry-title{display:block;display:-webkit-box;font-size:var(--wp--preset--font-size--heading-5);font-weight:500;line-height:1.3;margin-bottom:2px!important;max-height:2.6em;overflow:hidden;-webkit-line-clamp:2;-webkit-box-orient:vertical}.plugin-card .entry-title a{display:block;text-decoration:none}.plugin-card .entry-title a:focus{box-shadow:none}.plugin-card .entry-excerpt{clear:both;font-size:var(--wp--preset--font-size--small)}.plugin-card .entry-excerpt p{margin:0}.plugin-card footer{font-size:var(--wp--preset--font-size--small);margin-top:var(--wp--style--block-gap)}.plugin-card footer span{color:var(--wp--preset--color--charcoal-4);display:inline-block;line-height:var(--wp--preset--font-size--normal);overflow:hidden}.plugin-card footer span.plugin-author{width:100%}.plugin-card footer span.plugin-author span{color:var(--wp--preset--color--charcoal-1)}.plugin-card footer span.plugin-author path{fill:var(--wp--preset--color--charcoal-1)}.plugin-card footer span svg{height:24px;vertical-align:bottom;width:24px}.plugin-card footer span svg path{fill:var(--wp--preset--color--charcoal-4)}.plugin-card footer span.active-installs{min-width:48%}.plugin-cards{cursor:pointer}.plugin-cards .is-style-cards-grid li:hover{background-color:#fff!important;border:1px solid var(--wp--preset--color--charcoal-1)!important}.plugin-cards .is-style-cards-grid li:focus-within{border-color:#0000;border-radius:2px;box-shadow:0 0 0 1.5px var(--wp--custom--link--color--text)}@media screen and (max-width:737px){.plugin-cards .is-style-cards-grid{grid-template-columns:100%}}.entry-thumbnail{display:none;margin-bottom:var(--wp--style--block-gap);margin-left:var(--wp--style--block-gap);max-width:80px}.entry-thumbnail .plugin-icon{background-size:cover;border-radius:var(--wp--custom--button--border--radius);display:block;height:80px;width:80px}@media screen and (min-width:21em){.entry-thumbnail{display:inline-block;float:right;vertical-align:top}}.single .entry-thumbnail{display:none;float:right;height:96px;margin-bottom:0;max-width:96px}@media screen and (min-width:26em){.single .entry-thumbnail{display:block}}.single .entry-thumbnail .plugin-icon{background-size:contain!important;height:96px!important;width:96px!important}.plugin-rating{line-height:1;margin:0 0 8px 10px}.plugin-rating .wporg-ratings{display:inline-block;margin-left:5px}.plugin-rating .rating-count{color:var(--wp--preset--color--charcoal-4);font-size:var(--wp--preset--font-size--extra-small);vertical-align:text-bottom}.plugin-rating .rating-count a{color:inherit;cursor:hand;text-decoration:none}[class*=dashicons-star-]{color:var(--wp--preset--color--pomegrade-1)}.rtl .dashicons-star-half{transform:rotateY(-180deg)}#main .plugin-section{margin:0 auto var(--wp--preset--spacing--60)}#main .plugin-section:last-of-type{margin-bottom:0}#main .plugin-section .section-header{align-items:center;column-gap:10px;display:flex;justify-content:space-between;margin-bottom:var(--wp--style--block-gap)}#main .plugin-section .section-header>h2{margin-bottom:0}#main .plugin-section .section-link{align-self:center;flex:0 0 auto;text-decoration:underline}.pagination .nav-links{margin-top:var(--wp--style--block-gap);padding-top:var(--wp--style--block-gap);text-align:center}.pagination .nav-links a{text-decoration:none}.pagination .nav-links .page-numbers{cursor:pointer;display:inline-block;min-width:2em;padding:8px;text-align:center}.pagination .nav-links .page-numbers.dots,.pagination .nav-links .page-numbers.next,.pagination .nav-links .page-numbers.prev{background:none;font-size:.9em;width:auto}.pagination .nav-links .page-numbers.dots{cursor:inherit}@media screen and (max-width:737px){.pagination .nav-links .page-numbers.next,.pagination .nav-links .page-numbers.prev{font-size:0;min-width:auto;padding:0}.pagination .nav-links .page-numbers.next:after,.pagination .nav-links .page-numbers.prev:before{display:inline-block;font-size:medium;line-height:1.5;min-width:2em;padding:8px}.pagination .nav-links .page-numbers.prev:before{content:"‹"}.pagination .nav-links .page-numbers.next:after{content:"›"}}.pagination .nav-links span.page-numbers{font-weight:700}.pagination .nav-links span.page-numbers.current{text-decoration:underline}@keyframes favme-anime{0%{font-size:var(--wp--preset--font-size--large);opacity:1;-webkit-text-stroke-color:#0000}25%{color:#fff;font-size:var(--wp--preset--font-size--small);opacity:.6;-webkit-text-stroke-width:1px;-webkit-text-stroke-color:#dc3232}75%{color:#fff;font-size:var(--wp--preset--font-size--large);opacity:.6;-webkit-text-stroke-width:1px;-webkit-text-stroke-color:#dc3232}to{font-size:var(--wp--preset--font-size--normal);opacity:1;-webkit-text-stroke-color:#0000}}.plugin-favorite{height:calc(var(--wp--custom--button--spacing--padding--top)*2 + var(--wp--preset--font-size--normal)*2);text-align:center;vertical-align:top;width:36px}.plugin-favorite .plugin-favorite-heart{align-items:center;background:none;border:0;border-radius:0;box-shadow:none;color:#cbcdce;cursor:pointer;display:flex;font-size:var(--wp--preset--font-size--large);height:100%;justify-content:center;line-height:1;margin:0;outline:none;padding:0;text-decoration:none}.plugin-favorite .plugin-favorite-heart.favorited{color:#dc3232}.plugin-favorite .plugin-favorite-heart:focus,.plugin-favorite .plugin-favorite-heart:hover{color:var(----wp--preset--color--charcoal-2);text-decoration:none}.plugin-favorite .plugin-favorite-heart:after{content:"\f487";font-family:dashicons;vertical-align:top}.plugin-banner img{aspect-ratio:3.089;border-radius:var(--wp--custom--button--border--radius);display:block;margin:0 auto var(--wp--preset--spacing--30);width:100%}.plugin-releases{list-style-type:none;padding:0}.plugin-releases-item{border:1px solid var(--wp--preset--color--light-grey-1);border-radius:4px;margin-bottom:var(--wp--preset--spacing--30);padding:var(--wp--style--block-gap)}.plugin-releases-item-header{display:flex;justify-content:space-between}.plugin-releases-item-header h3{margin:0!important}@keyframes hideAnimation{to{visibility:hidden}}.categorization .help{color:var(--wp--preset--color--charcoal-4);display:inline-block;font-size:.8rem;margin-top:0}.categorization label{display:block;font-weight:700}.categorization input{width:100%}.categorization .success-msg{background:#eff7ed;border:solid #64b450;border-width:0 5px 0 0;font-size:.8rem;margin-right:1rem;opacity:0;overflow:auto;padding:.1rem .6rem .2rem;position:relative;transition:visibility 0s,opacity .5s linear;-webkit-user-select:none;user-select:none;visibility:hidden}.categorization .success-msg.saved{animation:hideAnimation 0s ease-in 5s;animation-fill-mode:forwards;opacity:1;visibility:visible}.plugin-changelog code{font-size:var(--wp--preset--font-size--small)}.plugin-developers .contributors-list li{align-items:center;display:flex;padding-bottom:var(--wp--style--block-gap)}@media screen and (min-width:500px){.plugin-developers .contributors-list{display:flex;flex-wrap:wrap}.plugin-developers .contributors-list li{padding-bottom:unset;width:50%}}.plugin-faq dl{border-bottom:1px solid var(--wp--preset--color--light-grey-1)}.plugin-faq dt{border-top:1px solid var(--wp--preset--color--light-grey-1);cursor:pointer;padding:1rem 0}.plugin-faq dt:before{content:"\f347";float:left;font-family:dashicons;margin:0 1rem}.plugin-faq dt.open:before{content:"\f343"}.plugin-faq dt .button-link{display:inherit;text-align:inherit}.plugin-faq dt .button-link.no-focus{box-shadow:none;outline:none}.plugin-faq dt h3{color:var(--wp--custom--link--color--text);display:inline;font-size:var(--wp--preset--font-size--normal);font-weight:400;margin-bottom:0;margin-top:0!important;text-decoration:underline}.plugin-faq dt h3 button{all:inherit;max-width:calc(100% - 60px)}.plugin-faq dt h3 button:focus,.plugin-faq dt h3 button:hover{text-decoration:underline}.plugin-faq dd{display:none;margin:0 0 1rem}.no-js .plugin-faq dd{display:block}.plugin-faq dd p{margin:0}.plugin-faq dd p+p{margin-top:1rem}.image-gallery{-webkit-user-select:none;user-select:none}.image-gallery-content{position:relative}.image-gallery-content .image-gallery-left-nav,.image-gallery-content .image-gallery-right-nav{border-color:var(--wp--preset--color--light-grey-1);display:none;font-size:48px;height:100%;position:absolute;top:0;transition:background .1s ease,border .1s ease;z-index:4}@media (max-width:768px){.image-gallery-content .image-gallery-left-nav,.image-gallery-content .image-gallery-right-nav{font-size:3.4em}}@media (min-width:768px){.image-gallery-content .image-gallery-left-nav:hover,.image-gallery-content .image-gallery-right-nav:hover{background:#fff;border:1px solid var(--wp--preset--color--light-grey-1);opacity:.8}}.image-gallery-content .image-gallery-left-nav:before,.image-gallery-content .image-gallery-right-nav:before{font-family:dashicons;position:relative}.image-gallery-content .image-gallery-left-nav{right:0}.image-gallery-content .image-gallery-left-nav:before{content:"\f345"}.image-gallery-content .image-gallery-left-nav:hover{margin-right:-1px}.image-gallery-content .image-gallery-right-nav{left:0}.image-gallery-content .image-gallery-right-nav:before{content:"\f341"}.image-gallery-content .image-gallery-right-nav:hover{margin-left:-1px}.image-gallery-content:hover .image-gallery-left-nav,.image-gallery-content:hover .image-gallery-right-nav{display:block}.image-gallery-slides{border:1px solid #eee;line-height:0;overflow:hidden;position:relative;white-space:nowrap}.image-gallery-slide{right:0;position:absolute;top:0;width:100%}.image-gallery-slide.center{position:relative}.image-gallery-slide .image-gallery-image{margin:0}.image-gallery-slide img{display:block;margin:0 auto}.image-gallery-slide .image-gallery-description{background:var(--wp--preset--color--light-grey-2);color:var(--wp--preset--color--charcoal-1);font-size:var(--wp--preset--font-size--small);line-height:1.5;padding:10px 20px;white-space:normal}@media (max-width:768px){.image-gallery-slide .image-gallery-description{padding:8px 15px}}.image-gallery-thumbnails{background:#fff;margin-top:5px}.image-gallery-thumbnails .image-gallery-thumbnails-container{cursor:pointer;text-align:center;white-space:nowrap}.image-gallery-thumbnail{border:1px solid #eee;display:table-cell;margin-left:5px;max-height:100px;overflow:hidden}.image-gallery-thumbnail .image-gallery-image{margin:0}.image-gallery-thumbnail img{vertical-align:middle;width:100px}@media (max-width:768px){.image-gallery-thumbnail img{width:75px}}.image-gallery-thumbnail:hover{box-shadow:0 1px 8px #0000004d}.image-gallery-thumbnail.active{border:1px solid #337ab7}.image-gallery-thumbnail-label{color:#222;font-size:1em}@media (max-width:768px){.image-gallery-thumbnail-label{font-size:.8em}}.image-gallery-index{background:#0006;bottom:0;color:#fff;line-height:1;padding:10px 20px;position:absolute;left:0;z-index:4}.plugin-reviews{list-style-type:none;margin:0;padding:0}.plugin-reviews .plugin-review{border-bottom:1px solid var(--wp--preset--color--light-grey-1);margin:2rem 0 1rem;padding-bottom:1rem}.plugin-reviews .plugin-review a{text-decoration:none}.plugin-reviews .plugin-review:first-child{margin-top:0}.plugin-reviews .plugin-review .header-top{display:flex}.plugin-reviews .plugin-review .header-top .wporg-ratings{flex-shrink:0}.plugin-reviews .plugin-review .header-bottom{display:flex;margin-top:4px}.plugin-reviews .review-avatar{display:none}.plugin-reviews .review,.plugin-reviews .review-author,.plugin-reviews .wporg-ratings{display:inline-block;vertical-align:top}.plugin-reviews .review-header{margin:0 0 .5rem}.plugin-reviews .review-title{font-size:var(--wp--preset--font-size--normal);font-weight:500;margin:2px 12px 0 0!important;text-transform:inherit}.plugin-reviews .review-author,.plugin-reviews .review-date,.plugin-reviews .review-replies{font-size:var(--wp--preset--font-size--extra-small);line-height:1.25}.plugin-reviews .review-date,.plugin-reviews .review-replies{color:var(--wp--preset--color--charcoal-4);font-size:var(--wp--preset--font-size--extra-small);margin-right:12px}.plugin-reviews .review-replies:before{content:"•";margin-left:12px}.plugin-reviews .review-content{margin:1em 0}@media screen and (min-width:737px){.plugin-reviews .review-avatar{display:inline-block;vertical-align:top}.plugin-reviews .review-avatar .avatar{margin-left:1rem}.plugin-reviews .review{width:calc(100% - 60px - 1rem)}.plugin-reviews .review-header{margin:0}.plugin-reviews .review-author,.plugin-reviews .review-date,.plugin-reviews .review-replies{line-height:1}}.plugin-reviews .reviews-link{display:inline-block;font-size:var(--wp--preset--font-size--small);text-decoration:none}.plugin-reviews .reviews-link:after{content:"\f341";float:left;font-family:dashicons;padding-right:5px;position:relative;top:1px;vertical-align:text-top}.plugin-screenshots{list-style-type:none;margin:0;padding:0}.plugin-screenshots .image-gallery-content{display:table;width:100%}.plugin-screenshots .image-gallery-slides{display:table-cell;max-height:600px}.plugin-screenshots .image-gallery-image img{max-height:550px;max-width:100%}.plugin-screenshots .image-gallery-thumbnail{vertical-align:top}.plugin-screenshots .image-gallery-thumbnail img{max-height:100px}.plugin-screenshots .image-gallery-thumbnails{overflow:hidden}.download-history-stats td{text-align:left}.previous-versions{max-width:60%}@media screen and (min-width:737px){.previous-versions{height:32px;vertical-align:middle}}hr{margin:2.5rem auto}.section h1:nth-child(2),.section h2:nth-child(2),.section h3:nth-child(2),.section h4:nth-child(2),.section h5:nth-child(2),.section h6:nth-child(2){margin-top:0}.section-heading{font-family:var(--wp--preset--font-family--inter)!important;font-size:var(--wp--preset--font-size--heading-5)!important;font-style:normal;font-weight:600;line-height:var(--wp--custom--heading--level-5--typography--line-height)}.section-intro{color:var(--wp--preset--color--charcoal-4);font-size:var(--wp--preset--font-size--small);margin-bottom:var(--wp--preset--spacing--20);margin-top:var(--wp--preset--spacing--10)}.type-plugin .plugin-notice{margin-top:0}.type-plugin .plugin-header{border-bottom:0;padding-top:var(--wp--preset--spacing--40)}.type-plugin .plugin-header:after,.type-plugin .plugin-header:before{content:"";display:table;table-layout:fixed}.type-plugin .plugin-header:after{clear:both}.type-plugin .plugin-header .entry-heading-container{display:flex;flex-direction:column;justify-content:space-between}@media screen and (max-width:599px){.type-plugin .plugin-header .entry-heading-container{--wp--custom--button--spacing--padding--top:12px;--wp--custom--button--spacing--padding--bottom:12px;--wp--custom--button--spacing--padding--left:16px;--wp--custom--button--spacing--padding--right:16px}}@media screen and (min-width:700px){.type-plugin .plugin-header .entry-heading-container{flex-direction:row}}.type-plugin .plugin-header .entry-heading-container>:first-child{align-items:center;display:flex;flex:1}.type-plugin .plugin-header .plugin-actions{align-items:center;display:flex;gap:16px;margin-top:var(--wp--style--block-gap)}@media screen and (min-width:700px){.type-plugin .plugin-header .plugin-actions{margin-top:0;margin-inline-start:1rem}}.type-plugin .plugin-header .plugin-actions>.button,.type-plugin .plugin-header .plugin-actions>div{display:inline-block;text-align:center}@media screen and (max-width:34em){.type-plugin .plugin-header .plugin-actions>.button.download-button{display:none}}.type-plugin .plugin-header .plugin-title{clear:none;font-size:var(--wp--preset--font-size--heading-3);font-weight:400;line-height:var(--wp--custom--heading--level-3--typography--line-height);margin:0}.type-plugin .plugin-header .plugin-title a{color:inherit;text-decoration:none}.type-plugin .plugin-header .plugin-title a:hover{text-decoration:underline}.type-plugin .plugin-header .byline{color:var(--wp--preset--color--charcoal-4);display:block;margin-top:4px}.type-plugin .plugin-banner+.plugin-header{padding-top:0}.type-plugin .plugin-banner+.plugin-header>.notice:first-of-type{margin-top:0}.type-plugin .tabs{border-bottom:1px solid var(--wp--preset--color--light-grey-1);list-style:none;margin:0}.type-plugin .tabs li{border:1px solid #0000;display:inline-block;font-size:.9rem;margin-bottom:-1px;transition:background .2s ease}.type-plugin .tabs li a{background:#fff;border:0;color:var(--wp--preset--color--charcoal-1);display:block;font-size:var(--wp--preset--font-size--normal);padding:.64rem 1.25rem;text-decoration:none}.type-plugin .tabs li a.active,.type-plugin .tabs li a:hover{background:var(--wp--preset--color--light-grey-2)!important}.type-plugin .tabs li.active,.type-plugin .tabs li:hover{border:1px solid var(--wp--preset--color--light-grey-1)}@media screen and (max-width:38em){.type-plugin .tabs{border-top:1px solid var(--wp--preset--color--light-grey-1)}.type-plugin .tabs li{display:block;margin-bottom:1px}.type-plugin .tabs li,.type-plugin .tabs li.active,.type-plugin .tabs li:hover{border:none;border-bottom:1px solid var(--wp--preset--color--light-grey-1)}}@media screen and (min-width:737px){.type-plugin .entry-content{float:right;padding:0;width:65%}}.type-plugin .entry-content>div,.type-plugin .entry-content>div~button{border:0;display:none}.type-plugin .entry-content ol>li>p,.type-plugin .entry-content ul>li>p{margin:0}.type-plugin .entry-content #admin{display:block!important}.type-plugin .plugin-blocks-list{list-style:none;margin-right:0;padding-right:0}.type-plugin .plugin-blocks-list .plugin-blocks-list-item{display:grid;grid-template-columns:auto 1fr;margin-bottom:var(--wp--style--block-gap)}.type-plugin .plugin-blocks-list .block-icon{border:1px solid var(--wp--preset--color--light-grey-1);border-radius:2px;display:inline-block;height:3.5rem;line-height:16px;margin-left:var(--wp--style--block-gap);padding:var(--wp--style--block-gap);width:3.5rem}.type-plugin .plugin-blocks-list .block-icon.dashicons{color:inherit}.type-plugin .plugin-blocks-list .block-icon.dashicons:before{margin-right:-3px}.type-plugin .plugin-blocks-list .block-icon svg{height:16px;width:16px;fill:currentColor;margin-right:-1px}.type-plugin .plugin-blocks-list .block-title{align-self:center;font-weight:700}.type-plugin .plugin-blocks-list .has-description .block-icon{grid-row:1/span 2}.type-plugin .plugin-blocks-list .has-description .block-title{margin-bottom:.4em}.type-plugin span#description,.type-plugin span#developers,.type-plugin span#installation,.type-plugin span#releases,.type-plugin span#reviews{position:fixed}.type-plugin span#advanced.displayed~#section-links .tabs li#tablink-advanced,.type-plugin span#developers:target~#section-links .tabs li#tablink-developers,.type-plugin span#installation:target~#section-links .tabs li#tablink-installation,.type-plugin span#releases:target~#section-links .tabs li#tablink-releases,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~span#advanced:not(.displayed)~#section-links .tabs li#tablink-description,.type-plugin span#reviews:target~#section-links .tabs li#tablink-reviews{background:#fff;border:1px solid var(--wp--preset--color--light-grey-1);border-bottom:0;padding-bottom:1px}@media screen and (max-width:38em){.type-plugin span#advanced.displayed~#section-links .tabs li#tablink-advanced.active,.type-plugin span#advanced.displayed~#section-links .tabs li#tablink-advanced:hover,.type-plugin span#developers:target~#section-links .tabs li#tablink-developers.active,.type-plugin span#developers:target~#section-links .tabs li#tablink-developers:hover,.type-plugin span#installation:target~#section-links .tabs li#tablink-installation.active,.type-plugin span#installation:target~#section-links .tabs li#tablink-installation:hover,.type-plugin span#releases:target~#section-links .tabs li#tablink-releases.active,.type-plugin span#releases:target~#section-links .tabs li#tablink-releases:hover,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~span#advanced:not(.displayed)~#section-links .tabs li#tablink-description.active,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~span#advanced:not(.displayed)~#section-links .tabs li#tablink-description:hover,.type-plugin span#reviews:target~#section-links .tabs li#tablink-reviews.active,.type-plugin span#reviews:target~#section-links .tabs li#tablink-reviews:hover{padding-bottom:1px!important}}.type-plugin span#section-links{display:flex;flex-flow:row wrap;margin-top:var(--wp--preset--spacing--30)}.type-plugin span#section-links .tabs{flex:1 1 auto;padding-right:0}@media screen and (max-width:38em){.type-plugin span#section-links .tabs{border:1px solid var(--wp--preset--color--light-grey-1)!important}.type-plugin span#section-links .tabs li{border:none!important}.type-plugin span#section-links{display:block}}.type-plugin #link-support{align-self:flex-end;border-bottom:1px solid var(--wp--preset--color--light-grey-1);flex:0 0 auto;font-size:.9rem}.type-plugin #link-support a{display:inline-block;font-size:var(--wp--preset--font-size--normal);padding:.64rem 1.25rem .64rem 0}@media screen and (max-width:38em){.type-plugin #link-support{border-bottom:0;display:block;width:100%}.type-plugin #link-support a{padding-left:1.25rem}}.type-plugin span#developers:target~.entry-content #tab-changelog,.type-plugin span#developers:target~.entry-content #tab-developers,.type-plugin span#developers:target~.entry-content #tab-developers .plugin-development,.type-plugin span#developers:target~.entry-content #tab-developers~button,.type-plugin span#installation:target~.entry-content #tab-installation,.type-plugin span#releases:target~.entry-content #tab-releases,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~.entry-content #blocks,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~.entry-content #faq,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~.entry-content #screenshots,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~.entry-content #tab-description,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~.entry-content #tab-developers,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~.entry-content #tab-developers~button,.type-plugin span#reviews:target~.entry-content #tab-reviews{display:block}.type-plugin span#developers:target~.entry-content #tab-developers .plugin-contributors,.type-plugin span#installation:target~.entry-meta .plugin-contributors,.type-plugin span#releases:target~.entry-meta,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~.entry-content #tab-developers .plugin-development,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~.entry-meta .plugin-contributors,.type-plugin span#reviews:target~.entry-meta .plugin-contributors,.type-plugin span#reviews:target~.entry-meta .plugin-donate,.type-plugin span#reviews:target~.entry-meta .plugin-meta,.type-plugin span#reviews:target~.entry-meta .plugin-support{display:none}.type-plugin span#releases:target~.entry-content{width:100%}@media screen and (min-width:737px){.type-plugin .entry-content,.type-plugin .entry-meta{padding-right:0;padding-left:0}.type-plugin .entry-meta{float:left;width:30%}}.type-plugin .plugin-danger-zone h4{margin-top:var(--wp--preset--spacing--60)}.plugin-releases-listing{border-collapse:collapse;width:100%}.plugin-releases-listing tbody td:nth-child(4) div{font-size:14px}.plugin-releases-listing-actions{display:flex;flex-direction:column;gap:8px}@media screen and (min-width:34em){.plugin-releases-listing-actions{flex-direction:row}}.plugin-adopt-me{background:#e6f4fa;margin-top:36px;padding:12px}.plugin-adopt-me .widget-title{margin-top:0}.plugin-adopt-me p{margin-bottom:0}.widget.plugin-categorization{margin-top:var(--wp--style--block-gap)}.widget.plugin-categorization .widget-head h2{font-size:var(--wp--preset--font-size--heading-4);margin-bottom:.2rem;margin-top:0}.widget.plugin-categorization .widget-head a{font-size:var(--wp--preset--font-size--small)}.widget.plugin-categorization .widget-head a[href=""]{display:none}.widget.plugin-categorization p{font-size:var(--wp--preset--font-size--small);margin-top:.5rem}.widget.plugin-categorization~.plugin-meta li:first-child{border-top:1px solid var(--wp--preset--color--light-grey-1)}.committer-list,.support-rep-list{list-style:none;margin:0;padding:0}.committer-list li,.support-rep-list li{padding-bottom:.5rem}.committer-list li .remove,.support-rep-list li .remove{color:red;visibility:hidden}.committer-list li:hover .remove,.support-rep-list li:hover .remove{visibility:visible}.committer-list .avatar,.support-rep-list .avatar{float:right;margin-left:10px}.committer-list .spinner,.support-rep-list .spinner{position:relative}.committer-list .spinner:after,.support-rep-list .spinner:after{background:url(/wp-admin/images/spinner.gif) no-repeat 50%;background-size:20px 20px;content:"";display:block;height:20px;margin:-10px 0 0 -10px;position:absolute;left:-50%;top:50%;transform:translateZ(0);width:20px}@media (min-resolution:120dpi),print{.committer-list .spinner:after,.support-rep-list .spinner:after{background-image:url(/wp-admin/images/spinner-2x.gif)}}.committer-list .new,.support-rep-list .new{margin-top:var(--wp--style--block-gap)}.plugin-contributors.read-more{border-bottom:1px solid var(--wp--preset--color--light-grey-1);max-height:200px;overflow:hidden;padding-bottom:1px}.plugin-contributors.read-more.toggled{max-height:none}.no-js .plugin-contributors.read-more{max-height:none;overflow:auto}.contributors-list{list-style-type:none;margin:0;padding:0}.contributors-list li{align-items:center;display:flex;margin-bottom:1rem}.contributors-list .avatar{float:right;margin-left:10px}.plugin-meta{font-size:var(--wp--preset--font-size--small);margin-top:var(--wp--style--block-gap)}.plugin-meta ul{list-style-type:none;margin:0;padding:0}.plugin-meta li{border-top:1px solid var(--wp--preset--color--light-grey-1);display:inline-block;padding:.5rem 0;position:relative;width:100%}.plugin-meta li strong{float:left;font-weight:500}.plugin-meta li .plugin-admin{font-size:var(--wp--preset--font-size--normal);font-weight:400}.plugin-meta li:first-child{border-top:0}.plugin-meta .languages,.plugin-meta .tags{float:left;text-align:left}.plugin-meta .tags{width:60%}.plugin-meta .languages button{font-size:var(--wp--preset--font-size--small);outline:revert}.plugin-meta .languages .popover{margin-top:8px}.plugin-meta .languages .popover-trigger{color:var(--wp--custom--link--color--text);text-decoration:underline}.plugin-meta .languages .popover-trigger:hover{text-decoration:underline}.plugin-meta [rel=tag]{background:var(--wp--preset--color--blueberry-4);border-radius:2px;color:var(--wp--preset--color--charcoal-1);display:inline-block;font-size:var(--wp--preset--font-size--extra-small);margin:2px;max-width:95%;overflow:hidden;padding:3px 6px;position:relative;text-decoration:none;text-overflow:ellipsis;white-space:nowrap;width:auto}.plugin-meta [rel=tag]:hover{text-decoration:underline}.popover{background-color:#fff;border:1px solid var(--wp--preset--color--light-grey-1);border-radius:2px;box-shadow:0 2px 10px #0000001a;display:none;right:0;margin-top:10px;max-width:300px;padding:1em 1em 2em;position:absolute;width:100%;z-index:100}.popover.is-top-right{right:auto;left:0}.popover.is-visible{display:block}.popover .popover-close{bottom:.5em;color:var(--wp--custom--link--color--text);font-size:small;position:absolute;left:.6em}.popover .popover-close:active,.popover .popover-close:focus,.popover .popover-close:hover{text-decoration:underline}.popover .popover-arrow{border:10px solid #0000;border-bottom:10px solid #ccc;border-top:none;height:0;position:absolute;left:20px;top:-10px;width:0;z-index:-1}.popover .popover-arrow:after{border:10px solid #0000;border-bottom:10px solid #fff;border-top:none;content:"";right:-10px;position:absolute;top:2px}.popover .popover-inner{text-align:right}.popover .popover-inner p:first-child{margin-top:0}.popover .popover-inner p:last-child{margin-bottom:0}.plugin-support .counter-container{margin-bottom:1rem;position:relative}.plugin-support .counter-back,.plugin-support .counter-bar{display:inline-block;height:30px;vertical-align:middle}.plugin-support .counter-back{background-color:var(--wp--preset--color--light-grey-2);width:100%}.plugin-support .counter-bar{background-color:var(--wp--preset--color--acid-green-2);display:block}.plugin-support .counter-count{font-size:var(--wp--preset--font-size--extra-small);right:8px;position:absolute;top:8px;width:100%;width:calc(100% - 8px)}@media screen and (min-width:737px){.plugin-support .counter-count{top:5px}}.home .widget,.widget-area.home .widget{display:inline-block;font-size:var(--wp--preset--font-size--small);margin:0;margin:var(--wp--style--block-gap);vertical-align:top;width:auto}@media screen and (min-width:737px){.home .widget,.widget-area.home .widget{margin:0;width:30%}.home .widget:first-child,.widget-area.home .widget:first-child{margin-left:5%}.home .widget:last-child,.widget-area.home .widget:last-child{margin-right:5%}}.home .widget select,.widget-area.home .widget select{max-width:100%}.entry-meta .widget-title{font-size:var(--wp--preset--font-size--heading-4)}body.single.single-plugin .entry-meta{font-size:var(--wp--preset--font-size--normal)}.widget-area{margin:0 auto;padding:var(--wp--preset--spacing--40) 0}.widget-area .widget-title{font-size:var(--wp--preset--font-size--heading-1);font-weight:var(--wp--custom--heading--typography--font-weight);margin-top:var(--wp--preset--spacing--50)}.widget-area .textwidget{text-wrap:pretty} \ No newline at end of file +@charset "UTF-8";.avatar{border-radius:50%;vertical-align:middle}.wp-block-wporg-language-suggest>p{margin:0}.block-validator>details summary{padding:var(--wp--style--block-gap) 0}.block-validator .block-validator__plugin-form label{display:block;margin-bottom:.8em}.block-validator .block-validator__plugin-input-container{display:flex;max-width:34rem}.block-validator .block-validator__plugin-input{flex:1}.block-validator .block-validator__plugin-submit{flex:0;margin-right:4px}@media (max-width:36rem){.block-validator .block-validator__plugin-submit{width:100%}.block-validator .block-validator__plugin-input-container{display:block}.block-validator .block-validator__plugin-input{width:100%}.block-validator .block-validator__plugin-submit{margin-right:0;margin-top:var(--wp--style--block-gap)}}.block-validator .notice details,.block-validator .notice p{font-size:var(--wp--preset--font-size--normal);margin:var(--wp--style--block-gap) 0}.block-validator .notice details p{font-size:var(--wp--preset--font-size--small);margin-right:1rem}.block-validator .notice summary{display:list-item}.block-validator figure{border:1px solid #aaa;display:inline-block;padding:1em}.block-validator .test-screenshot{text-align:center}.block-validator .plugin-upload-form-controls{align-items:center;display:flex;gap:4px}.block-validator .plugin-upload-form-controls>label{border:1px solid var(--wp--custom--form--border--color);border-radius:var(--wp--custom--form--border--radius);cursor:pointer;min-width:200px;padding:4px 8px}.notice{background:#fff;border-right:4px solid #fff;box-shadow:0 1px 1px 0 #0000001a;font-size:var(--wp--preset--font-size--small);margin:var(--wp--style--block-gap) 0;padding:1px 12px}.notice p,.notice ul{margin:.5em 0;padding:2px}.notice pre{white-space:pre-wrap}.notice ul{list-style:none;margin:.5em}.notice.notice-alt{box-shadow:none}.notice.notice-large{padding:10px 20px}.notice.notice-success{border-right-color:#46b450}.notice.notice-success.notice-alt{background-color:#ecf7ed}.notice.notice-warning{border-right-color:#ffb900}.notice.notice-warning.notice-alt{background-color:#fff8e5}.notice.notice-error{border-right-color:#dc3232}.notice.notice-error.notice-alt{background-color:#fbeaea}.notice.notice-info{border-right-color:#00a0d2}.notice.notice-info.notice-alt{background-color:#e5f5fa}.notice.hidden{display:none}.plugin-upload-form.hidden{display:none}.plugin-upload-form fieldset{border:none;margin:0;padding:0}.plugin-upload-form legend{margin:1rem 0}.plugin-upload-form .category-checklist{list-style-type:none;margin:0 0 2rem}.plugin-upload-form .category-checklist li{float:right;padding:.5rem 0;width:50%}@media screen and (min-width:48em){.plugin-upload-form .category-checklist li{padding:0}.plugin-upload-form .category-checklist label{font-size:var(--wp--preset--font-size--small)}.plugin-upload-form label.button{line-height:1.8}}.plugin-upload-form .plugin-file{height:.1px;opacity:0;overflow:hidden;position:absolute;width:.1px;z-index:-1}.plugin-queue-message code{font-size:1em}.plugin-queue-message dialog.slug-change input[type=text]{font-family:monospace;font-size:1.2em;width:20em}:where(main) a:where(:not(.wp-element-button,.wp-block-wporg-link-wrapper)):focus,:where(main) button:where(:not([class*=wp-block-button])):focus{border-radius:2px;box-shadow:0 0 0 1.5px currentColor;outline:none}.wporg-filter-bar{--wporg--filter-bar--gap:20px;--wporg--filter-bar--color:#40464d;--wporg--filter-bar--active--background-color:var(--wp--custom--button--color--background);--wporg--filter-bar--focus--border-color:var(--wp--custom--button--focus--border--color);margin:var(--wp--style--block-gap) 0}.wporg-filter-bar .wporg-query-filter__toggle.is-active,.wporg-filter-bar .wporg-query-filter__toggle:active,.wporg-filter-bar .wporg-query-filter__toggle:focus{background-color:var(--wporg--filter-bar--active--background-color);color:var(--wp--custom--button--color--text)}.wporg-filter-bar .wporg-filter-bar__navigation{flex-grow:1;margin-bottom:var(--wporg--filter-bar--gap)}.wporg-filter-bar .wporg-filter-bar__navigation ul{display:inline-block;font-size:13px;line-height:1.538;list-style:none;margin:0;padding-right:0}.wporg-filter-bar .wporg-filter-bar__navigation ul li{display:inline-block}.wporg-filter-bar .wporg-filter-bar__navigation ul li+li{margin-right:8px}.wporg-filter-bar .wporg-filter-bar__navigation ul a{border-radius:2px;color:var(--wporg--filter-bar--color);display:block;padding:8px 12px;text-decoration:none}.wporg-filter-bar .wporg-filter-bar__navigation ul a:focus,.wporg-filter-bar .wporg-filter-bar__navigation ul a:hover{text-decoration:underline}.wporg-filter-bar .wporg-filter-bar__navigation ul a:focus-visible{box-shadow:none;outline:1.5px solid var(--wporg--filter-bar--focus--border-color);outline-offset:-.5px}.wporg-filter-bar .wporg-filter-bar__navigation ul a.is-active{background-color:var(--wporg--filter-bar--active--background-color);color:#fff}.wporg-filter-bar .wporg-filter-bar__navigation ul a.is-active:focus,.wporg-filter-bar .wporg-filter-bar__navigation ul a.is-active:hover{color:#fff}.wporg-filter-bar .wporg-filter-bar__navigation ul a.is-active:focus-visible{box-shadow:inset 0 0 0 1.5px #fff;outline:1.5px solid var(--wporg--filter-bar--focus--border-color);outline-offset:-.5px}@media screen and (min-width:737px){.wporg-filter-bar{align-items:center;display:flex;flex-wrap:wrap;gap:var(--wporg--filter-bar--gap);justify-content:space-between;width:100%}.wporg-filter-bar .wporg-filter-bar__navigation{margin-bottom:0}}.wp-block-search__inside-wrapper{background:var(--wp--preset--color--light-grey-2);border:none}.button-link{background:none;border:0;border-radius:0;box-shadow:none;cursor:pointer;margin:0;outline:none;padding:0}.button{background-color:var(--wp--custom--button--color--background);border:0;border-radius:var(--wp--custom--button--border--radius);color:var(--wp--custom--button--color--text);cursor:pointer;opacity:1;padding:calc(var(--wp--custom--button--small--spacing--padding--top) + var(--wp--custom--button--border--width)) calc(var(--wp--custom--button--small--spacing--padding--left) + var(--wp--custom--button--border--width)) calc(var(--wp--custom--button--small--spacing--padding--bottom) + var(--wp--custom--button--border--width)) calc(var(--wp--custom--button--small--spacing--padding--right) + var(--wp--custom--button--border--width));vertical-align:middle}.button.button-large{padding:calc(var(--wp--custom--button--spacing--padding--top) + var(--wp--custom--button--border--width)) calc(var(--wp--custom--button--spacing--padding--left) + var(--wp--custom--button--border--width)) calc(var(--wp--custom--button--spacing--padding--bottom) + var(--wp--custom--button--border--width)) calc(var(--wp--custom--button--spacing--padding--right) + var(--wp--custom--button--border--width))}input+button.button,select+button.button{margin-top:-3px}.button.disabled{cursor:not-allowed;opacity:.6}.wp-block-post-content a.button{text-decoration:none}.wp-block-button__link{width:auto}pre{background-color:#f7f7f7;border:1px solid var(--wp--preset--color--light-grey-1);overflow:scroll;padding:20px}code,pre{border-radius:2px}code{background:var(--wp--preset--color--light-grey-2);display:inline-block;line-height:var(--wp--custom--body--extra-small--typography--line-height);max-width:100%;padding-inline-end:3px;padding-inline-start:3px}dialog{border:0;box-shadow:-6px 6px 6px #0003;min-height:50%;min-width:30%}@media (min-width:1280px){dialog{max-width:55%}}dialog::backdrop{background:#000;opacity:.5}dialog .close{color:inherit;cursor:pointer;position:absolute;left:1em;text-decoration:none!important;top:1em}.plugin-card{display:flex;flex-direction:column;height:100%;justify-content:space-between}.plugin-card .entry{display:inline-block;vertical-align:top}.plugin-card .entry-title{display:block;display:-webkit-box;font-size:var(--wp--preset--font-size--heading-5);font-weight:500;line-height:1.3;margin-bottom:2px!important;max-height:2.6em;overflow:hidden;-webkit-line-clamp:2;-webkit-box-orient:vertical}.plugin-card .entry-title a{display:block;text-decoration:none}.plugin-card .entry-title a:focus{box-shadow:none}.plugin-card .entry-excerpt{clear:both;font-size:var(--wp--preset--font-size--small)}.plugin-card .entry-excerpt p{margin:0}.plugin-card footer{font-size:var(--wp--preset--font-size--small);margin-top:var(--wp--style--block-gap)}.plugin-card footer span{color:var(--wp--preset--color--charcoal-4);display:inline-block;line-height:var(--wp--preset--font-size--normal);overflow:hidden}.plugin-card footer span.plugin-author{width:100%}.plugin-card footer span.plugin-author span{color:var(--wp--preset--color--charcoal-1)}.plugin-card footer span.plugin-author path{fill:var(--wp--preset--color--charcoal-1)}.plugin-card footer span svg{height:24px;vertical-align:bottom;width:24px}.plugin-card footer span svg path{fill:var(--wp--preset--color--charcoal-4)}.plugin-card footer span.active-installs{min-width:48%}.plugin-cards{cursor:pointer}.plugin-cards .is-style-cards-grid li:hover{background-color:#fff!important;border:1px solid var(--wp--preset--color--charcoal-1)!important}.plugin-cards .is-style-cards-grid li:focus-within{border-color:#0000;border-radius:2px;box-shadow:0 0 0 1.5px var(--wp--custom--link--color--text)}@media screen and (max-width:737px){.plugin-cards .is-style-cards-grid{grid-template-columns:100%}}.entry-thumbnail{display:none;margin-bottom:var(--wp--style--block-gap);margin-left:var(--wp--style--block-gap);max-width:80px}.entry-thumbnail .plugin-icon{background-size:cover;border-radius:var(--wp--custom--button--border--radius);display:block;height:80px;width:80px}@media screen and (min-width:21em){.entry-thumbnail{display:inline-block;float:right;vertical-align:top}}.single .entry-thumbnail{display:none;float:right;height:96px;margin-bottom:0;max-width:96px}@media screen and (min-width:26em){.single .entry-thumbnail{display:block}}.single .entry-thumbnail .plugin-icon{background-size:contain!important;height:96px!important;width:96px!important}.plugin-rating{line-height:1;margin:0 0 8px 10px}.plugin-rating .wporg-ratings{display:inline-block;margin-left:5px}.plugin-rating .rating-count{color:var(--wp--preset--color--charcoal-4);font-size:var(--wp--preset--font-size--extra-small);vertical-align:text-bottom}.plugin-rating .rating-count a{color:inherit;cursor:hand;text-decoration:none}[class*=dashicons-star-]{color:var(--wp--preset--color--pomegrade-1)}.rtl .dashicons-star-half{transform:rotateY(-180deg)}#main .plugin-section{margin:0 auto var(--wp--preset--spacing--60)}#main .plugin-section:last-of-type{margin-bottom:0}#main .plugin-section .section-header{align-items:center;column-gap:10px;display:flex;justify-content:space-between;margin-bottom:var(--wp--style--block-gap)}#main .plugin-section .section-header>h2{margin-bottom:0}#main .plugin-section .section-link{align-self:center;flex:0 0 auto;text-decoration:underline}.pagination .nav-links{margin-top:var(--wp--style--block-gap);padding-top:var(--wp--style--block-gap);text-align:center}.pagination .nav-links a{text-decoration:none}.pagination .nav-links .page-numbers{cursor:pointer;display:inline-block;min-width:2em;padding:8px;text-align:center}.pagination .nav-links .page-numbers.dots,.pagination .nav-links .page-numbers.next,.pagination .nav-links .page-numbers.prev{background:none;font-size:.9em;width:auto}.pagination .nav-links .page-numbers.dots{cursor:inherit}@media screen and (max-width:737px){.pagination .nav-links .page-numbers.next,.pagination .nav-links .page-numbers.prev{font-size:0;min-width:auto;padding:0}.pagination .nav-links .page-numbers.next:after,.pagination .nav-links .page-numbers.prev:before{display:inline-block;font-size:medium;line-height:1.5;min-width:2em;padding:8px}.pagination .nav-links .page-numbers.prev:before{content:"‹"}.pagination .nav-links .page-numbers.next:after{content:"›"}}.pagination .nav-links span.page-numbers{font-weight:700}.pagination .nav-links span.page-numbers.current{text-decoration:underline}@keyframes favme-anime{0%{font-size:var(--wp--preset--font-size--large);opacity:1;-webkit-text-stroke-color:#0000}25%{color:#fff;font-size:var(--wp--preset--font-size--small);opacity:.6;-webkit-text-stroke-width:1px;-webkit-text-stroke-color:#dc3232}75%{color:#fff;font-size:var(--wp--preset--font-size--large);opacity:.6;-webkit-text-stroke-width:1px;-webkit-text-stroke-color:#dc3232}to{font-size:var(--wp--preset--font-size--normal);opacity:1;-webkit-text-stroke-color:#0000}}.plugin-favorite{height:calc(var(--wp--custom--button--spacing--padding--top)*2 + var(--wp--preset--font-size--normal)*2);text-align:center;vertical-align:top;width:36px}.plugin-favorite .plugin-favorite-heart{align-items:center;background:none;border:0;border-radius:0;box-shadow:none;color:#cbcdce;cursor:pointer;display:flex;font-size:var(--wp--preset--font-size--large);height:100%;justify-content:center;line-height:1;margin:0;outline:none;padding:0;text-decoration:none}.plugin-favorite .plugin-favorite-heart.favorited{color:#dc3232}.plugin-favorite .plugin-favorite-heart:focus,.plugin-favorite .plugin-favorite-heart:hover{color:var(----wp--preset--color--charcoal-2);text-decoration:none}.plugin-favorite .plugin-favorite-heart:after{content:"\f487";font-family:dashicons;vertical-align:top}.plugin-banner img{aspect-ratio:3.089;border-radius:var(--wp--custom--button--border--radius);display:block;margin:0 auto var(--wp--preset--spacing--30);width:100%}.plugin-releases{list-style-type:none;padding:0}.plugin-releases-item{border:1px solid var(--wp--preset--color--light-grey-1);border-radius:4px;margin-bottom:var(--wp--preset--spacing--30);padding:var(--wp--style--block-gap)}.plugin-releases-item-header{display:flex;justify-content:space-between}.plugin-releases-item-header h3{margin:0!important}@keyframes hideAnimation{to{visibility:hidden}}.categorization .help{color:var(--wp--preset--color--charcoal-4);display:inline-block;font-size:.8rem;margin-top:0}.categorization label{display:block;font-weight:700}.categorization input{width:100%}.categorization .success-msg{background:#eff7ed;border:solid #64b450;border-width:0 5px 0 0;font-size:.8rem;margin-right:1rem;opacity:0;overflow:auto;padding:.1rem .6rem .2rem;position:relative;transition:visibility 0s,opacity .5s linear;-webkit-user-select:none;user-select:none;visibility:hidden}.categorization .success-msg.saved{animation:hideAnimation 0s ease-in 5s;animation-fill-mode:forwards;opacity:1;visibility:visible}.plugin-changelog code{font-size:var(--wp--preset--font-size--small)}.plugin-developers .contributors-list li{align-items:center;display:flex;padding-bottom:var(--wp--style--block-gap)}@media screen and (min-width:500px){.plugin-developers .contributors-list{display:flex;flex-wrap:wrap}.plugin-developers .contributors-list li{padding-bottom:unset;width:50%}}.plugin-faq dl{border-bottom:1px solid var(--wp--preset--color--light-grey-1)}.plugin-faq dt{border-top:1px solid var(--wp--preset--color--light-grey-1);cursor:pointer;padding:1rem 0}.plugin-faq dt:before{content:"\f347";float:left;font-family:dashicons;margin:0 1rem}.plugin-faq dt.open:before{content:"\f343"}.plugin-faq dt .button-link{display:inherit;text-align:inherit}.plugin-faq dt .button-link.no-focus{box-shadow:none;outline:none}.plugin-faq dt h3{color:var(--wp--custom--link--color--text);display:inline;font-size:var(--wp--preset--font-size--normal);font-weight:400;margin-bottom:0;margin-top:0!important;text-decoration:underline}.plugin-faq dt h3 button{all:inherit;max-width:calc(100% - 60px)}.plugin-faq dt h3 button:focus,.plugin-faq dt h3 button:hover{text-decoration:underline}.plugin-faq dd{display:none;margin:0 0 1rem}.no-js .plugin-faq dd{display:block}.plugin-faq dd p{margin:0}.plugin-faq dd p+p{margin-top:1rem}.image-gallery{-webkit-user-select:none;user-select:none}.image-gallery-content{position:relative}.image-gallery-content .image-gallery-left-nav,.image-gallery-content .image-gallery-right-nav{border-color:var(--wp--preset--color--light-grey-1);display:none;font-size:48px;height:100%;position:absolute;top:0;transition:background .1s ease,border .1s ease;z-index:4}@media (max-width:768px){.image-gallery-content .image-gallery-left-nav,.image-gallery-content .image-gallery-right-nav{font-size:3.4em}}@media (min-width:768px){.image-gallery-content .image-gallery-left-nav:hover,.image-gallery-content .image-gallery-right-nav:hover{background:#fff;border:1px solid var(--wp--preset--color--light-grey-1);opacity:.8}}.image-gallery-content .image-gallery-left-nav:before,.image-gallery-content .image-gallery-right-nav:before{font-family:dashicons;position:relative}.image-gallery-content .image-gallery-left-nav{right:0}.image-gallery-content .image-gallery-left-nav:before{content:"\f345"}.image-gallery-content .image-gallery-left-nav:hover{margin-right:-1px}.image-gallery-content .image-gallery-right-nav{left:0}.image-gallery-content .image-gallery-right-nav:before{content:"\f341"}.image-gallery-content .image-gallery-right-nav:hover{margin-left:-1px}.image-gallery-content:hover .image-gallery-left-nav,.image-gallery-content:hover .image-gallery-right-nav{display:block}.image-gallery-slides{border:1px solid #eee;line-height:0;overflow:hidden;position:relative;white-space:nowrap}.image-gallery-slide{right:0;position:absolute;top:0;width:100%}.image-gallery-slide.center{position:relative}.image-gallery-slide .image-gallery-image{margin:0}.image-gallery-slide img{display:block;margin:0 auto}.image-gallery-slide .image-gallery-description{background:var(--wp--preset--color--light-grey-2);color:var(--wp--preset--color--charcoal-1);font-size:var(--wp--preset--font-size--small);line-height:1.5;padding:10px 20px;white-space:normal}@media (max-width:768px){.image-gallery-slide .image-gallery-description{padding:8px 15px}}.image-gallery-thumbnails{background:#fff;margin-top:5px}.image-gallery-thumbnails .image-gallery-thumbnails-container{cursor:pointer;text-align:center;white-space:nowrap}.image-gallery-thumbnail{border:1px solid #eee;display:table-cell;margin-left:5px;max-height:100px;overflow:hidden}.image-gallery-thumbnail .image-gallery-image{margin:0}.image-gallery-thumbnail img{vertical-align:middle;width:100px}@media (max-width:768px){.image-gallery-thumbnail img{width:75px}}.image-gallery-thumbnail:hover{box-shadow:0 1px 8px #0000004d}.image-gallery-thumbnail.active{border:1px solid #337ab7}.image-gallery-thumbnail-label{color:#222;font-size:1em}@media (max-width:768px){.image-gallery-thumbnail-label{font-size:.8em}}.image-gallery-index{background:#0006;bottom:0;color:#fff;line-height:1;padding:10px 20px;position:absolute;left:0;z-index:4}.plugin-reviews{list-style-type:none;margin:0;padding:0}.plugin-reviews .plugin-review{border-bottom:1px solid var(--wp--preset--color--light-grey-1);margin:2rem 0 1rem;padding-bottom:1rem}.plugin-reviews .plugin-review a{text-decoration:none}.plugin-reviews .plugin-review:first-child{margin-top:0}.plugin-reviews .plugin-review .header-top{display:flex}.plugin-reviews .plugin-review .header-top .wporg-ratings{flex-shrink:0}.plugin-reviews .plugin-review .header-bottom{display:flex;margin-top:4px}.plugin-reviews .review-avatar{display:none}.plugin-reviews .review,.plugin-reviews .review-author,.plugin-reviews .wporg-ratings{display:inline-block;vertical-align:top}.plugin-reviews .review-header{margin:0 0 .5rem}.plugin-reviews .review-title{font-size:var(--wp--preset--font-size--normal);font-weight:500;margin:2px 12px 0 0!important;text-transform:inherit}.plugin-reviews .review-author,.plugin-reviews .review-date,.plugin-reviews .review-replies{font-size:var(--wp--preset--font-size--extra-small);line-height:1.25}.plugin-reviews .review-date,.plugin-reviews .review-replies{color:var(--wp--preset--color--charcoal-4);font-size:var(--wp--preset--font-size--extra-small);margin-right:12px}.plugin-reviews .review-replies:before{content:"•";margin-left:12px}.plugin-reviews .review-content{margin:1em 0}@media screen and (min-width:737px){.plugin-reviews .review-avatar{display:inline-block;vertical-align:top}.plugin-reviews .review-avatar .avatar{margin-left:1rem}.plugin-reviews .review{width:calc(100% - 60px - 1rem)}.plugin-reviews .review-header{margin:0}.plugin-reviews .review-author,.plugin-reviews .review-date,.plugin-reviews .review-replies{line-height:1}}.plugin-reviews .reviews-link{display:inline-block;font-size:var(--wp--preset--font-size--small);text-decoration:none}.plugin-reviews .reviews-link:after{content:"\f341";float:left;font-family:dashicons;padding-right:5px;position:relative;top:1px;vertical-align:text-top}.plugin-screenshots{list-style-type:none;margin:0;padding:0}.plugin-screenshots .image-gallery-content{display:table;width:100%}.plugin-screenshots .image-gallery-slides{display:table-cell;max-height:600px}.plugin-screenshots .image-gallery-image img{max-height:550px;max-width:100%}.plugin-screenshots .image-gallery-thumbnail{vertical-align:top}.plugin-screenshots .image-gallery-thumbnail img{max-height:100px}.plugin-screenshots .image-gallery-thumbnails{overflow:hidden}.download-history-stats td{text-align:left}.previous-versions{max-width:60%}@media screen and (min-width:737px){.previous-versions{height:32px;vertical-align:middle}}hr{margin:2.5rem auto}.section h1:nth-child(2),.section h2:nth-child(2),.section h3:nth-child(2),.section h4:nth-child(2),.section h5:nth-child(2),.section h6:nth-child(2){margin-top:0}.section-heading{font-family:var(--wp--preset--font-family--inter)!important;font-size:var(--wp--preset--font-size--heading-5)!important;font-style:normal;font-weight:600;line-height:var(--wp--custom--heading--level-5--typography--line-height)}.section-intro{color:var(--wp--preset--color--charcoal-4);font-size:var(--wp--preset--font-size--small);margin-bottom:var(--wp--preset--spacing--20);margin-top:var(--wp--preset--spacing--10)}.wporg-spinner{--local-size:16px;--spinner-color:var(--wp--custom--spinner--color,var(--wp--preset--color--blueberry-1,currentColor));--background-stroke-color:#ddd;background-color:initial;display:inline-block;height:var(--local-size);position:relative;width:var(--local-size)}.wporg-spinner:before{border:1.5px solid var(--background-stroke-color);border-radius:50%}.wporg-spinner:after,.wporg-spinner:before{box-sizing:border-box;content:"";display:block;height:100%;width:100%}.wporg-spinner:after{animation:wporg-spinner-rotate 1.4s linear infinite;border-bottom:1.5px solid #0000;border-right:1.5px solid #0000;border-radius:50%;border-left:1.5px solid #0000;border-left-color:var(--spinner-color);border-top:1.5px solid #0000;border-top-color:var(--spinner-color);right:0;position:absolute;top:0;transform-origin:center}@keyframes wporg-spinner-rotate{0%{transform:rotate(0deg)}to{transform:rotate(-1turn)}}.type-plugin .plugin-notice{margin-top:0}.type-plugin .plugin-header{border-bottom:0;padding-top:var(--wp--preset--spacing--40)}.type-plugin .plugin-header:after,.type-plugin .plugin-header:before{content:"";display:table;table-layout:fixed}.type-plugin .plugin-header:after{clear:both}.type-plugin .plugin-header .entry-heading-container{display:flex;flex-direction:column;justify-content:space-between}@media screen and (max-width:599px){.type-plugin .plugin-header .entry-heading-container{--wp--custom--button--spacing--padding--top:12px;--wp--custom--button--spacing--padding--bottom:12px;--wp--custom--button--spacing--padding--left:16px;--wp--custom--button--spacing--padding--right:16px}}@media screen and (min-width:700px){.type-plugin .plugin-header .entry-heading-container{flex-direction:row}}.type-plugin .plugin-header .entry-heading-container>:first-child{align-items:center;display:flex;flex:1}.type-plugin .plugin-header .plugin-actions{align-items:center;display:flex;gap:16px;margin-top:var(--wp--style--block-gap)}@media screen and (min-width:700px){.type-plugin .plugin-header .plugin-actions{margin-top:0;margin-inline-start:1rem}}.type-plugin .plugin-header .plugin-actions>.button,.type-plugin .plugin-header .plugin-actions>div{display:inline-block;text-align:center}@media screen and (max-width:34em){.type-plugin .plugin-header .plugin-actions>.button.download-button{display:none}}.type-plugin .plugin-header .plugin-title{clear:none;font-size:var(--wp--preset--font-size--heading-3);font-weight:400;line-height:var(--wp--custom--heading--level-3--typography--line-height);margin:0}.type-plugin .plugin-header .plugin-title a{color:inherit;text-decoration:none}.type-plugin .plugin-header .plugin-title a:hover{text-decoration:underline}.type-plugin .plugin-header .byline{color:var(--wp--preset--color--charcoal-4);display:block;margin-top:4px}.type-plugin .plugin-banner+.plugin-header{padding-top:0}.type-plugin .plugin-banner+.plugin-header>.notice:first-of-type{margin-top:0}.type-plugin .tabs{border-bottom:1px solid var(--wp--preset--color--light-grey-1);list-style:none;margin:0}.type-plugin .tabs li{border:1px solid #0000;display:inline-block;font-size:.9rem;margin-bottom:-1px;transition:background .2s ease}.type-plugin .tabs li a{background:#fff;border:0;color:var(--wp--preset--color--charcoal-1);display:block;font-size:var(--wp--preset--font-size--normal);padding:.64rem 1.25rem;text-decoration:none}.type-plugin .tabs li a.active,.type-plugin .tabs li a:hover{background:var(--wp--preset--color--light-grey-2)!important}.type-plugin .tabs li.active,.type-plugin .tabs li:hover{border:1px solid var(--wp--preset--color--light-grey-1)}@media screen and (max-width:38em){.type-plugin .tabs{border-top:1px solid var(--wp--preset--color--light-grey-1)}.type-plugin .tabs li{display:block;margin-bottom:1px}.type-plugin .tabs li,.type-plugin .tabs li.active,.type-plugin .tabs li:hover{border:none;border-bottom:1px solid var(--wp--preset--color--light-grey-1)}}@media screen and (min-width:737px){.type-plugin .entry-content{float:right;padding:0;width:65%}}.type-plugin .entry-content>div,.type-plugin .entry-content>div~button{border:0;display:none}.type-plugin .entry-content ol>li>p,.type-plugin .entry-content ul>li>p{margin:0}.type-plugin .entry-content #admin{display:block!important}.type-plugin .plugin-blocks-list{list-style:none;margin-right:0;padding-right:0}.type-plugin .plugin-blocks-list .plugin-blocks-list-item{display:grid;grid-template-columns:auto 1fr;margin-bottom:var(--wp--style--block-gap)}.type-plugin .plugin-blocks-list .block-icon{border:1px solid var(--wp--preset--color--light-grey-1);border-radius:2px;display:inline-block;height:3.5rem;line-height:16px;margin-left:var(--wp--style--block-gap);padding:var(--wp--style--block-gap);width:3.5rem}.type-plugin .plugin-blocks-list .block-icon.dashicons{color:inherit}.type-plugin .plugin-blocks-list .block-icon.dashicons:before{margin-right:-3px}.type-plugin .plugin-blocks-list .block-icon svg{height:16px;width:16px;fill:currentColor;margin-right:-1px}.type-plugin .plugin-blocks-list .block-title{align-self:center;font-weight:700}.type-plugin .plugin-blocks-list .has-description .block-icon{grid-row:1/span 2}.type-plugin .plugin-blocks-list .has-description .block-title{margin-bottom:.4em}.type-plugin span#description,.type-plugin span#developers,.type-plugin span#installation,.type-plugin span#releases,.type-plugin span#reviews{position:fixed}.type-plugin span#advanced.displayed~#section-links .tabs li#tablink-advanced,.type-plugin span#developers:target~#section-links .tabs li#tablink-developers,.type-plugin span#installation:target~#section-links .tabs li#tablink-installation,.type-plugin span#releases:target~#section-links .tabs li#tablink-releases,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~span#advanced:not(.displayed)~#section-links .tabs li#tablink-description,.type-plugin span#reviews:target~#section-links .tabs li#tablink-reviews{background:#fff;border:1px solid var(--wp--preset--color--light-grey-1);border-bottom:0;padding-bottom:1px}@media screen and (max-width:38em){.type-plugin span#advanced.displayed~#section-links .tabs li#tablink-advanced.active,.type-plugin span#advanced.displayed~#section-links .tabs li#tablink-advanced:hover,.type-plugin span#developers:target~#section-links .tabs li#tablink-developers.active,.type-plugin span#developers:target~#section-links .tabs li#tablink-developers:hover,.type-plugin span#installation:target~#section-links .tabs li#tablink-installation.active,.type-plugin span#installation:target~#section-links .tabs li#tablink-installation:hover,.type-plugin span#releases:target~#section-links .tabs li#tablink-releases.active,.type-plugin span#releases:target~#section-links .tabs li#tablink-releases:hover,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~span#advanced:not(.displayed)~#section-links .tabs li#tablink-description.active,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~span#advanced:not(.displayed)~#section-links .tabs li#tablink-description:hover,.type-plugin span#reviews:target~#section-links .tabs li#tablink-reviews.active,.type-plugin span#reviews:target~#section-links .tabs li#tablink-reviews:hover{padding-bottom:1px!important}}.type-plugin span#section-links{display:flex;flex-flow:row wrap;margin-top:var(--wp--preset--spacing--30)}.type-plugin span#section-links .tabs{flex:1 1 auto;padding-right:0}@media screen and (max-width:38em){.type-plugin span#section-links .tabs{border:1px solid var(--wp--preset--color--light-grey-1)!important}.type-plugin span#section-links .tabs li{border:none!important}.type-plugin span#section-links{display:block}}.type-plugin #link-support{align-self:flex-end;border-bottom:1px solid var(--wp--preset--color--light-grey-1);flex:0 0 auto;font-size:.9rem}.type-plugin #link-support a{display:inline-block;font-size:var(--wp--preset--font-size--normal);padding:.64rem 1.25rem .64rem 0}@media screen and (max-width:38em){.type-plugin #link-support{border-bottom:0;display:block;width:100%}.type-plugin #link-support a{padding-left:1.25rem}}.type-plugin span#developers:target~.entry-content #tab-changelog,.type-plugin span#developers:target~.entry-content #tab-developers,.type-plugin span#developers:target~.entry-content #tab-developers .plugin-development,.type-plugin span#developers:target~.entry-content #tab-developers~button,.type-plugin span#installation:target~.entry-content #tab-installation,.type-plugin span#releases:target~.entry-content #tab-releases,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~.entry-content #blocks,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~.entry-content #faq,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~.entry-content #screenshots,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~.entry-content #tab-description,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~.entry-content #tab-developers,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~.entry-content #tab-developers~button,.type-plugin span#reviews:target~.entry-content #tab-reviews{display:block}.type-plugin span#developers:target~.entry-content #tab-developers .plugin-contributors,.type-plugin span#installation:target~.entry-meta .plugin-contributors,.type-plugin span#releases:target~.entry-meta,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~.entry-content #tab-developers .plugin-development,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~.entry-meta .plugin-contributors,.type-plugin span#reviews:target~.entry-meta .plugin-contributors,.type-plugin span#reviews:target~.entry-meta .plugin-donate,.type-plugin span#reviews:target~.entry-meta .plugin-meta,.type-plugin span#reviews:target~.entry-meta .plugin-support{display:none}.type-plugin span#releases:target~.entry-content{width:100%}@media screen and (min-width:737px){.type-plugin .entry-content,.type-plugin .entry-meta{padding-right:0;padding-left:0}.type-plugin .entry-meta{float:left;width:30%}}.type-plugin .plugin-danger-zone h4{margin-top:var(--wp--preset--spacing--60)}.plugin-releases-listing{border-collapse:collapse;width:100%}.plugin-releases-listing tbody td:nth-child(4) div{font-size:14px}.plugin-releases-listing-actions{display:flex;flex-direction:column;gap:8px}@media screen and (min-width:34em){.plugin-releases-listing-actions{flex-direction:row}}.plugin-adopt-me{background:#e6f4fa;margin-top:36px;padding:12px}.plugin-adopt-me .widget-title{margin-top:0}.plugin-adopt-me p{margin-bottom:0}.widget.plugin-categorization{margin-top:var(--wp--style--block-gap)}.widget.plugin-categorization .widget-head h2{font-size:var(--wp--preset--font-size--heading-4);margin-bottom:.2rem;margin-top:0}.widget.plugin-categorization .widget-head a{font-size:var(--wp--preset--font-size--small)}.widget.plugin-categorization .widget-head a[href=""]{display:none}.widget.plugin-categorization p{font-size:var(--wp--preset--font-size--small);margin-top:.5rem}.widget.plugin-categorization~.plugin-meta li:first-child{border-top:1px solid var(--wp--preset--color--light-grey-1)}.committer-list,.support-rep-list{list-style:none;margin:0;padding:0}.committer-list li,.support-rep-list li{padding-bottom:.5rem}.committer-list li .remove,.support-rep-list li .remove{color:red;visibility:hidden}.committer-list li:hover .remove,.support-rep-list li:hover .remove{visibility:visible}.committer-list .avatar,.support-rep-list .avatar{float:right;margin-left:10px}.committer-list .spinner,.support-rep-list .spinner{position:relative}.committer-list .spinner:after,.support-rep-list .spinner:after{background:url(/wp-admin/images/spinner.gif) no-repeat 50%;background-size:20px 20px;content:"";display:block;height:20px;margin:-10px 0 0 -10px;position:absolute;left:-50%;top:50%;transform:translateZ(0);width:20px}@media (min-resolution:120dpi),print{.committer-list .spinner:after,.support-rep-list .spinner:after{background-image:url(/wp-admin/images/spinner-2x.gif)}}.committer-list .new,.support-rep-list .new{margin-top:var(--wp--style--block-gap)}.plugin-contributors.read-more{border-bottom:1px solid var(--wp--preset--color--light-grey-1);max-height:200px;overflow:hidden;padding-bottom:1px}.plugin-contributors.read-more.toggled{max-height:none}.no-js .plugin-contributors.read-more{max-height:none;overflow:auto}.contributors-list{list-style-type:none;margin:0;padding:0}.contributors-list li{align-items:center;display:flex;margin-bottom:1rem}.contributors-list .avatar{float:right;margin-left:10px}.plugin-meta{font-size:var(--wp--preset--font-size--small);margin-top:var(--wp--style--block-gap)}.plugin-meta ul{list-style-type:none;margin:0;padding:0}.plugin-meta li{border-top:1px solid var(--wp--preset--color--light-grey-1);display:inline-block;padding:.5rem 0;position:relative;width:100%}.plugin-meta li strong{float:left;font-weight:500}.plugin-meta li .plugin-admin{font-size:var(--wp--preset--font-size--normal);font-weight:400}.plugin-meta li:first-child{border-top:0}.plugin-meta .languages,.plugin-meta .tags{float:left;text-align:left}.plugin-meta .tags{width:60%}.plugin-meta .languages button{font-size:var(--wp--preset--font-size--small);outline:revert}.plugin-meta .languages .popover{margin-top:8px}.plugin-meta .languages .popover-trigger{color:var(--wp--custom--link--color--text);text-decoration:underline}.plugin-meta .languages .popover-trigger:hover{text-decoration:underline}.plugin-meta [rel=tag]{background:var(--wp--preset--color--blueberry-4);border-radius:2px;color:var(--wp--preset--color--charcoal-1);display:inline-block;font-size:var(--wp--preset--font-size--extra-small);margin:2px;max-width:95%;overflow:hidden;padding:3px 6px;position:relative;text-decoration:none;text-overflow:ellipsis;white-space:nowrap;width:auto}.plugin-meta [rel=tag]:hover{text-decoration:underline}.popover{background-color:#fff;border:1px solid var(--wp--preset--color--light-grey-1);border-radius:2px;box-shadow:0 2px 10px #0000001a;display:none;right:0;margin-top:10px;max-width:300px;padding:1em 1em 2em;position:absolute;width:100%;z-index:100}.popover.is-top-right{right:auto;left:0}.popover.is-visible{display:block}.popover .popover-close{bottom:.5em;color:var(--wp--custom--link--color--text);font-size:small;position:absolute;left:.6em}.popover .popover-close:active,.popover .popover-close:focus,.popover .popover-close:hover{text-decoration:underline}.popover .popover-arrow{border:10px solid #0000;border-bottom:10px solid #ccc;border-top:none;height:0;position:absolute;left:20px;top:-10px;width:0;z-index:-1}.popover .popover-arrow:after{border:10px solid #0000;border-bottom:10px solid #fff;border-top:none;content:"";right:-10px;position:absolute;top:2px}.popover .popover-inner{text-align:right}.popover .popover-inner p:first-child{margin-top:0}.popover .popover-inner p:last-child{margin-bottom:0}.plugin-support .counter-container{margin-bottom:1rem;position:relative}.plugin-support .counter-back,.plugin-support .counter-bar{display:inline-block;height:30px;vertical-align:middle}.plugin-support .counter-back{background-color:var(--wp--preset--color--light-grey-2);width:100%}.plugin-support .counter-bar{background-color:var(--wp--preset--color--acid-green-2);display:block}.plugin-support .counter-count{font-size:var(--wp--preset--font-size--extra-small);right:8px;position:absolute;top:8px;width:100%;width:calc(100% - 8px)}@media screen and (min-width:737px){.plugin-support .counter-count{top:5px}}.home .widget,.widget-area.home .widget{display:inline-block;font-size:var(--wp--preset--font-size--small);margin:0;margin:var(--wp--style--block-gap);vertical-align:top;width:auto}@media screen and (min-width:737px){.home .widget,.widget-area.home .widget{margin:0;width:30%}.home .widget:first-child,.widget-area.home .widget:first-child{margin-left:5%}.home .widget:last-child,.widget-area.home .widget:last-child{margin-right:5%}}.home .widget select,.widget-area.home .widget select{max-width:100%}.entry-meta .widget-title{font-size:var(--wp--preset--font-size--heading-4)}body.single.single-plugin .entry-meta{font-size:var(--wp--preset--font-size--normal)}.widget-area{margin:0 auto;padding:var(--wp--preset--spacing--40) 0}.widget-area .widget-title{font-size:var(--wp--preset--font-size--heading-1);font-weight:var(--wp--custom--heading--typography--font-weight);margin-top:var(--wp--preset--spacing--50)}.widget-area .textwidget{text-wrap:pretty} \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/css/style.css b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/css/style.css index aa1a3e38af..e64b07ef20 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/css/style.css +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/css/style.css @@ -1 +1 @@ -@charset "UTF-8";.avatar{border-radius:50%;vertical-align:middle}.wp-block-wporg-language-suggest>p{margin:0}.block-validator>details summary{padding:var(--wp--style--block-gap) 0}.block-validator .block-validator__plugin-form label{display:block;margin-bottom:.8em}.block-validator .block-validator__plugin-input-container{display:flex;max-width:34rem}.block-validator .block-validator__plugin-input{flex:1}.block-validator .block-validator__plugin-submit{flex:0;margin-left:4px}@media (max-width:36rem){.block-validator .block-validator__plugin-submit{width:100%}.block-validator .block-validator__plugin-input-container{display:block}.block-validator .block-validator__plugin-input{width:100%}.block-validator .block-validator__plugin-submit{margin-left:0;margin-top:var(--wp--style--block-gap)}}.block-validator .notice details,.block-validator .notice p{font-size:var(--wp--preset--font-size--normal);margin:var(--wp--style--block-gap) 0}.block-validator .notice details p{font-size:var(--wp--preset--font-size--small);margin-left:1rem}.block-validator .notice summary{display:list-item}.block-validator figure{border:1px solid #aaa;display:inline-block;padding:1em}.block-validator .test-screenshot{text-align:center}.block-validator .plugin-upload-form-controls{align-items:center;display:flex;gap:4px}.block-validator .plugin-upload-form-controls>label{border:1px solid var(--wp--custom--form--border--color);border-radius:var(--wp--custom--form--border--radius);cursor:pointer;min-width:200px;padding:4px 8px}.notice{background:#fff;border-left:4px solid #fff;box-shadow:0 1px 1px 0 #0000001a;font-size:var(--wp--preset--font-size--small);margin:var(--wp--style--block-gap) 0;padding:1px 12px}.notice p,.notice ul{margin:.5em 0;padding:2px}.notice pre{white-space:pre-wrap}.notice ul{list-style:none;margin:.5em}.notice.notice-alt{box-shadow:none}.notice.notice-large{padding:10px 20px}.notice.notice-success{border-left-color:#46b450}.notice.notice-success.notice-alt{background-color:#ecf7ed}.notice.notice-warning{border-left-color:#ffb900}.notice.notice-warning.notice-alt{background-color:#fff8e5}.notice.notice-error{border-left-color:#dc3232}.notice.notice-error.notice-alt{background-color:#fbeaea}.notice.notice-info{border-left-color:#00a0d2}.notice.notice-info.notice-alt{background-color:#e5f5fa}.notice.hidden{display:none}.plugin-upload-form.hidden{display:none}.plugin-upload-form fieldset{border:none;margin:0;padding:0}.plugin-upload-form legend{margin:1rem 0}.plugin-upload-form .category-checklist{list-style-type:none;margin:0 0 2rem}.plugin-upload-form .category-checklist li{float:left;padding:.5rem 0;width:50%}@media screen and (min-width:48em){.plugin-upload-form .category-checklist li{padding:0}.plugin-upload-form .category-checklist label{font-size:var(--wp--preset--font-size--small)}.plugin-upload-form label.button{line-height:1.8}}.plugin-upload-form .plugin-file{height:.1px;opacity:0;overflow:hidden;position:absolute;width:.1px;z-index:-1}.plugin-queue-message code{font-size:1em}.plugin-queue-message dialog.slug-change input[type=text]{font-family:monospace;font-size:1.2em;width:20em}:where(main) a:where(:not(.wp-element-button,.wp-block-wporg-link-wrapper)):focus,:where(main) button:where(:not([class*=wp-block-button])):focus{border-radius:2px;box-shadow:0 0 0 1.5px currentColor;outline:none}.wporg-filter-bar{--wporg--filter-bar--gap:20px;--wporg--filter-bar--color:#40464d;--wporg--filter-bar--active--background-color:var(--wp--custom--button--color--background);--wporg--filter-bar--focus--border-color:var(--wp--custom--button--focus--border--color);margin:var(--wp--style--block-gap) 0}.wporg-filter-bar .wporg-query-filter__toggle.is-active,.wporg-filter-bar .wporg-query-filter__toggle:active,.wporg-filter-bar .wporg-query-filter__toggle:focus{background-color:var(--wporg--filter-bar--active--background-color);color:var(--wp--custom--button--color--text)}.wporg-filter-bar .wporg-filter-bar__navigation{flex-grow:1;margin-bottom:var(--wporg--filter-bar--gap)}.wporg-filter-bar .wporg-filter-bar__navigation ul{display:inline-block;font-size:13px;line-height:1.538;list-style:none;margin:0;padding-left:0}.wporg-filter-bar .wporg-filter-bar__navigation ul li{display:inline-block}.wporg-filter-bar .wporg-filter-bar__navigation ul li+li{margin-left:8px}.wporg-filter-bar .wporg-filter-bar__navigation ul a{border-radius:2px;color:var(--wporg--filter-bar--color);display:block;padding:8px 12px;text-decoration:none}.wporg-filter-bar .wporg-filter-bar__navigation ul a:focus,.wporg-filter-bar .wporg-filter-bar__navigation ul a:hover{text-decoration:underline}.wporg-filter-bar .wporg-filter-bar__navigation ul a:focus-visible{box-shadow:none;outline:1.5px solid var(--wporg--filter-bar--focus--border-color);outline-offset:-.5px}.wporg-filter-bar .wporg-filter-bar__navigation ul a.is-active{background-color:var(--wporg--filter-bar--active--background-color);color:#fff}.wporg-filter-bar .wporg-filter-bar__navigation ul a.is-active:focus,.wporg-filter-bar .wporg-filter-bar__navigation ul a.is-active:hover{color:#fff}.wporg-filter-bar .wporg-filter-bar__navigation ul a.is-active:focus-visible{box-shadow:inset 0 0 0 1.5px #fff;outline:1.5px solid var(--wporg--filter-bar--focus--border-color);outline-offset:-.5px}@media screen and (min-width:737px){.wporg-filter-bar{align-items:center;display:flex;flex-wrap:wrap;gap:var(--wporg--filter-bar--gap);justify-content:space-between;width:100%}.wporg-filter-bar .wporg-filter-bar__navigation{margin-bottom:0}}.wp-block-search__inside-wrapper{background:var(--wp--preset--color--light-grey-2);border:none}.button-link{background:none;border:0;border-radius:0;box-shadow:none;cursor:pointer;margin:0;outline:none;padding:0}.button{background-color:var(--wp--custom--button--color--background);border:0;border-radius:var(--wp--custom--button--border--radius);color:var(--wp--custom--button--color--text);cursor:pointer;opacity:1;padding:calc(var(--wp--custom--button--small--spacing--padding--top) + var(--wp--custom--button--border--width)) calc(var(--wp--custom--button--small--spacing--padding--right) + var(--wp--custom--button--border--width)) calc(var(--wp--custom--button--small--spacing--padding--bottom) + var(--wp--custom--button--border--width)) calc(var(--wp--custom--button--small--spacing--padding--left) + var(--wp--custom--button--border--width));vertical-align:middle}.button.button-large{padding:calc(var(--wp--custom--button--spacing--padding--top) + var(--wp--custom--button--border--width)) calc(var(--wp--custom--button--spacing--padding--right) + var(--wp--custom--button--border--width)) calc(var(--wp--custom--button--spacing--padding--bottom) + var(--wp--custom--button--border--width)) calc(var(--wp--custom--button--spacing--padding--left) + var(--wp--custom--button--border--width))}input+button.button,select+button.button{margin-top:-3px}.button.disabled{cursor:not-allowed;opacity:.6}.wp-block-post-content a.button{text-decoration:none}.wp-block-button__link{width:auto}pre{background-color:#f7f7f7;border:1px solid var(--wp--preset--color--light-grey-1);overflow:scroll;padding:20px}code,pre{border-radius:2px}code{background:var(--wp--preset--color--light-grey-2);display:inline-block;line-height:var(--wp--custom--body--extra-small--typography--line-height);max-width:100%;padding-inline-end:3px;padding-inline-start:3px}dialog{border:0;box-shadow:6px 6px 6px #0003;min-height:50%;min-width:30%}@media (min-width:1280px){dialog{max-width:55%}}dialog::backdrop{background:#000;opacity:.5}dialog .close{color:inherit;cursor:pointer;position:absolute;right:1em;text-decoration:none!important;top:1em}.plugin-card{display:flex;flex-direction:column;height:100%;justify-content:space-between}.plugin-card .entry{display:inline-block;vertical-align:top}.plugin-card .entry-title{display:block;display:-webkit-box;font-size:var(--wp--preset--font-size--heading-5);font-weight:500;line-height:1.3;margin-bottom:2px!important;max-height:2.6em;overflow:hidden;-webkit-line-clamp:2;-webkit-box-orient:vertical}.plugin-card .entry-title a{display:block;text-decoration:none}.plugin-card .entry-title a:focus{box-shadow:none}.plugin-card .entry-excerpt{clear:both;font-size:var(--wp--preset--font-size--small)}.plugin-card .entry-excerpt p{margin:0}.plugin-card footer{font-size:var(--wp--preset--font-size--small);margin-top:var(--wp--style--block-gap)}.plugin-card footer span{color:var(--wp--preset--color--charcoal-4);display:inline-block;line-height:var(--wp--preset--font-size--normal);overflow:hidden}.plugin-card footer span.plugin-author{width:100%}.plugin-card footer span.plugin-author span{color:var(--wp--preset--color--charcoal-1)}.plugin-card footer span.plugin-author path{fill:var(--wp--preset--color--charcoal-1)}.plugin-card footer span svg{height:24px;vertical-align:bottom;width:24px}.plugin-card footer span svg path{fill:var(--wp--preset--color--charcoal-4)}.plugin-card footer span.active-installs{min-width:48%}.plugin-cards{cursor:pointer}.plugin-cards .is-style-cards-grid li:hover{background-color:#fff!important;border:1px solid var(--wp--preset--color--charcoal-1)!important}.plugin-cards .is-style-cards-grid li:focus-within{border-color:#0000;border-radius:2px;box-shadow:0 0 0 1.5px var(--wp--custom--link--color--text)}@media screen and (max-width:737px){.plugin-cards .is-style-cards-grid{grid-template-columns:100%}}.entry-thumbnail{display:none;margin-bottom:var(--wp--style--block-gap);margin-right:var(--wp--style--block-gap);max-width:80px}.entry-thumbnail .plugin-icon{background-size:cover;border-radius:var(--wp--custom--button--border--radius);display:block;height:80px;width:80px}@media screen and (min-width:21em){.entry-thumbnail{display:inline-block;float:left;vertical-align:top}}.single .entry-thumbnail{display:none;float:left;height:96px;margin-bottom:0;max-width:96px}@media screen and (min-width:26em){.single .entry-thumbnail{display:block}}.single .entry-thumbnail .plugin-icon{background-size:contain!important;height:96px!important;width:96px!important}.plugin-rating{line-height:1;margin:0 10px 8px 0}.plugin-rating .wporg-ratings{display:inline-block;margin-right:5px}.plugin-rating .rating-count{color:var(--wp--preset--color--charcoal-4);font-size:var(--wp--preset--font-size--extra-small);vertical-align:text-bottom}.plugin-rating .rating-count a{color:inherit;cursor:hand;text-decoration:none}[class*=dashicons-star-]{color:var(--wp--preset--color--pomegrade-1)}.rtl .dashicons-star-half{transform:rotateY(180deg)}#main .plugin-section{margin:0 auto var(--wp--preset--spacing--60)}#main .plugin-section:last-of-type{margin-bottom:0}#main .plugin-section .section-header{align-items:center;column-gap:10px;display:flex;justify-content:space-between;margin-bottom:var(--wp--style--block-gap)}#main .plugin-section .section-header>h2{margin-bottom:0}#main .plugin-section .section-link{align-self:center;flex:0 0 auto;text-decoration:underline}.pagination .nav-links{margin-top:var(--wp--style--block-gap);padding-top:var(--wp--style--block-gap);text-align:center}.pagination .nav-links a{text-decoration:none}.pagination .nav-links .page-numbers{cursor:pointer;display:inline-block;min-width:2em;padding:8px;text-align:center}.pagination .nav-links .page-numbers.dots,.pagination .nav-links .page-numbers.next,.pagination .nav-links .page-numbers.prev{background:none;font-size:.9em;width:auto}.pagination .nav-links .page-numbers.dots{cursor:inherit}@media screen and (max-width:737px){.pagination .nav-links .page-numbers.next,.pagination .nav-links .page-numbers.prev{font-size:0;min-width:auto;padding:0}.pagination .nav-links .page-numbers.next:after,.pagination .nav-links .page-numbers.prev:before{display:inline-block;font-size:medium;line-height:1.5;min-width:2em;padding:8px}.pagination .nav-links .page-numbers.prev:before{content:"‹"}.pagination .nav-links .page-numbers.next:after{content:"›"}}.pagination .nav-links span.page-numbers{font-weight:700}.pagination .nav-links span.page-numbers.current{text-decoration:underline}@keyframes favme-anime{0%{font-size:var(--wp--preset--font-size--large);opacity:1;-webkit-text-stroke-color:#0000}25%{color:#fff;font-size:var(--wp--preset--font-size--small);opacity:.6;-webkit-text-stroke-width:1px;-webkit-text-stroke-color:#dc3232}75%{color:#fff;font-size:var(--wp--preset--font-size--large);opacity:.6;-webkit-text-stroke-width:1px;-webkit-text-stroke-color:#dc3232}to{font-size:var(--wp--preset--font-size--normal);opacity:1;-webkit-text-stroke-color:#0000}}.plugin-favorite{height:calc(var(--wp--custom--button--spacing--padding--top)*2 + var(--wp--preset--font-size--normal)*2);text-align:center;vertical-align:top;width:36px}.plugin-favorite .plugin-favorite-heart{align-items:center;background:none;border:0;border-radius:0;box-shadow:none;color:#cbcdce;cursor:pointer;display:flex;font-size:var(--wp--preset--font-size--large);height:100%;justify-content:center;line-height:1;margin:0;outline:none;padding:0;text-decoration:none}.plugin-favorite .plugin-favorite-heart.favorited{color:#dc3232}.plugin-favorite .plugin-favorite-heart:focus,.plugin-favorite .plugin-favorite-heart:hover{color:var(----wp--preset--color--charcoal-2);text-decoration:none}.plugin-favorite .plugin-favorite-heart:after{content:"\f487";font-family:dashicons;vertical-align:top}.plugin-banner img{aspect-ratio:3.089;border-radius:var(--wp--custom--button--border--radius);display:block;margin:0 auto var(--wp--preset--spacing--30);width:100%}.plugin-releases{list-style-type:none;padding:0}.plugin-releases-item{border:1px solid var(--wp--preset--color--light-grey-1);border-radius:4px;margin-bottom:var(--wp--preset--spacing--30);padding:var(--wp--style--block-gap)}.plugin-releases-item-header{display:flex;justify-content:space-between}.plugin-releases-item-header h3{margin:0!important}@keyframes hideAnimation{to{visibility:hidden}}.categorization .help{color:var(--wp--preset--color--charcoal-4);display:inline-block;font-size:.8rem;margin-top:0}.categorization label{display:block;font-weight:700}.categorization input{width:100%}.categorization .success-msg{background:#eff7ed;border:solid #64b450;border-width:0 0 0 5px;font-size:.8rem;margin-left:1rem;opacity:0;overflow:auto;padding:.1rem .6rem .2rem;position:relative;transition:visibility 0s,opacity .5s linear;-webkit-user-select:none;user-select:none;visibility:hidden}.categorization .success-msg.saved{animation:hideAnimation 0s ease-in 5s;animation-fill-mode:forwards;opacity:1;visibility:visible}.plugin-changelog code{font-size:var(--wp--preset--font-size--small)}.plugin-developers .contributors-list li{align-items:center;display:flex;padding-bottom:var(--wp--style--block-gap)}@media screen and (min-width:500px){.plugin-developers .contributors-list{display:flex;flex-wrap:wrap}.plugin-developers .contributors-list li{padding-bottom:unset;width:50%}}.plugin-faq dl{border-bottom:1px solid var(--wp--preset--color--light-grey-1)}.plugin-faq dt{border-top:1px solid var(--wp--preset--color--light-grey-1);cursor:pointer;padding:1rem 0}.plugin-faq dt:before{content:"\f347";float:right;font-family:dashicons;margin:0 1rem}.plugin-faq dt.open:before{content:"\f343"}.plugin-faq dt .button-link{display:inherit;text-align:inherit}.plugin-faq dt .button-link.no-focus{box-shadow:none;outline:none}.plugin-faq dt h3{color:var(--wp--custom--link--color--text);display:inline;font-size:var(--wp--preset--font-size--normal);font-weight:400;margin-bottom:0;margin-top:0!important;text-decoration:underline}.plugin-faq dt h3 button{all:inherit;max-width:calc(100% - 60px)}.plugin-faq dt h3 button:focus,.plugin-faq dt h3 button:hover{text-decoration:underline}.plugin-faq dd{display:none;margin:0 0 1rem}.no-js .plugin-faq dd{display:block}.plugin-faq dd p{margin:0}.plugin-faq dd p+p{margin-top:1rem}.image-gallery{-webkit-user-select:none;user-select:none}.image-gallery-content{position:relative}.image-gallery-content .image-gallery-left-nav,.image-gallery-content .image-gallery-right-nav{border-color:var(--wp--preset--color--light-grey-1);display:none;font-size:48px;height:100%;position:absolute;top:0;transition:background .1s ease,border .1s ease;z-index:4}@media (max-width:768px){.image-gallery-content .image-gallery-left-nav,.image-gallery-content .image-gallery-right-nav{font-size:3.4em}}@media (min-width:768px){.image-gallery-content .image-gallery-left-nav:hover,.image-gallery-content .image-gallery-right-nav:hover{background:#fff;border:1px solid var(--wp--preset--color--light-grey-1);opacity:.8}}.image-gallery-content .image-gallery-left-nav:before,.image-gallery-content .image-gallery-right-nav:before{font-family:dashicons;position:relative}.image-gallery-content .image-gallery-left-nav{left:0}.image-gallery-content .image-gallery-left-nav:before{content:"\f341"}.image-gallery-content .image-gallery-left-nav:hover{margin-left:-1px}.image-gallery-content .image-gallery-right-nav{right:0}.image-gallery-content .image-gallery-right-nav:before{content:"\f345"}.image-gallery-content .image-gallery-right-nav:hover{margin-right:-1px}.image-gallery-content:hover .image-gallery-left-nav,.image-gallery-content:hover .image-gallery-right-nav{display:block}.image-gallery-slides{border:1px solid #eee;line-height:0;overflow:hidden;position:relative;white-space:nowrap}.image-gallery-slide{left:0;position:absolute;top:0;width:100%}.image-gallery-slide.center{position:relative}.image-gallery-slide .image-gallery-image{margin:0}.image-gallery-slide img{display:block;margin:0 auto}.image-gallery-slide .image-gallery-description{background:var(--wp--preset--color--light-grey-2);color:var(--wp--preset--color--charcoal-1);font-size:var(--wp--preset--font-size--small);line-height:1.5;padding:10px 20px;white-space:normal}@media (max-width:768px){.image-gallery-slide .image-gallery-description{padding:8px 15px}}.image-gallery-thumbnails{background:#fff;margin-top:5px}.image-gallery-thumbnails .image-gallery-thumbnails-container{cursor:pointer;text-align:center;white-space:nowrap}.image-gallery-thumbnail{border:1px solid #eee;display:table-cell;margin-right:5px;max-height:100px;overflow:hidden}.image-gallery-thumbnail .image-gallery-image{margin:0}.image-gallery-thumbnail img{vertical-align:middle;width:100px}@media (max-width:768px){.image-gallery-thumbnail img{width:75px}}.image-gallery-thumbnail:hover{box-shadow:0 1px 8px #0000004d}.image-gallery-thumbnail.active{border:1px solid #337ab7}.image-gallery-thumbnail-label{color:#222;font-size:1em}@media (max-width:768px){.image-gallery-thumbnail-label{font-size:.8em}}.image-gallery-index{background:#0006;bottom:0;color:#fff;line-height:1;padding:10px 20px;position:absolute;right:0;z-index:4}.plugin-reviews{list-style-type:none;margin:0;padding:0}.plugin-reviews .plugin-review{border-bottom:1px solid var(--wp--preset--color--light-grey-1);margin:2rem 0 1rem;padding-bottom:1rem}.plugin-reviews .plugin-review a{text-decoration:none}.plugin-reviews .plugin-review:first-child{margin-top:0}.plugin-reviews .plugin-review .header-top{display:flex}.plugin-reviews .plugin-review .header-top .wporg-ratings{flex-shrink:0}.plugin-reviews .plugin-review .header-bottom{display:flex;margin-top:4px}.plugin-reviews .review-avatar{display:none}.plugin-reviews .review,.plugin-reviews .review-author,.plugin-reviews .wporg-ratings{display:inline-block;vertical-align:top}.plugin-reviews .review-header{margin:0 0 .5rem}.plugin-reviews .review-title{font-size:var(--wp--preset--font-size--normal);font-weight:500;margin:2px 0 0 12px!important;text-transform:inherit}.plugin-reviews .review-author,.plugin-reviews .review-date,.plugin-reviews .review-replies{font-size:var(--wp--preset--font-size--extra-small);line-height:1.25}.plugin-reviews .review-date,.plugin-reviews .review-replies{color:var(--wp--preset--color--charcoal-4);font-size:var(--wp--preset--font-size--extra-small);margin-left:12px}.plugin-reviews .review-replies:before{content:"•";margin-right:12px}.plugin-reviews .review-content{margin:1em 0}@media screen and (min-width:737px){.plugin-reviews .review-avatar{display:inline-block;vertical-align:top}.plugin-reviews .review-avatar .avatar{margin-right:1rem}.plugin-reviews .review{width:calc(100% - 60px - 1rem)}.plugin-reviews .review-header{margin:0}.plugin-reviews .review-author,.plugin-reviews .review-date,.plugin-reviews .review-replies{line-height:1}}.plugin-reviews .reviews-link{display:inline-block;font-size:var(--wp--preset--font-size--small);text-decoration:none}.plugin-reviews .reviews-link:after{content:"\f345";float:right;font-family:dashicons;padding-left:5px;position:relative;top:1px;vertical-align:text-top}.plugin-screenshots{list-style-type:none;margin:0;padding:0}.plugin-screenshots .image-gallery-content{display:table;width:100%}.plugin-screenshots .image-gallery-slides{display:table-cell;max-height:600px}.plugin-screenshots .image-gallery-image img{max-height:550px;max-width:100%}.plugin-screenshots .image-gallery-thumbnail{vertical-align:top}.plugin-screenshots .image-gallery-thumbnail img{max-height:100px}.plugin-screenshots .image-gallery-thumbnails{overflow:hidden}.download-history-stats td{text-align:right}.previous-versions{max-width:60%}@media screen and (min-width:737px){.previous-versions{height:32px;vertical-align:middle}}hr{margin:2.5rem auto}.section h1:nth-child(2),.section h2:nth-child(2),.section h3:nth-child(2),.section h4:nth-child(2),.section h5:nth-child(2),.section h6:nth-child(2){margin-top:0}.section-heading{font-family:var(--wp--preset--font-family--inter)!important;font-size:var(--wp--preset--font-size--heading-5)!important;font-style:normal;font-weight:600;line-height:var(--wp--custom--heading--level-5--typography--line-height)}.section-intro{color:var(--wp--preset--color--charcoal-4);font-size:var(--wp--preset--font-size--small);margin-bottom:var(--wp--preset--spacing--20);margin-top:var(--wp--preset--spacing--10)}.type-plugin .plugin-notice{margin-top:0}.type-plugin .plugin-header{border-bottom:0;padding-top:var(--wp--preset--spacing--40)}.type-plugin .plugin-header:after,.type-plugin .plugin-header:before{content:"";display:table;table-layout:fixed}.type-plugin .plugin-header:after{clear:both}.type-plugin .plugin-header .entry-heading-container{display:flex;flex-direction:column;justify-content:space-between}@media screen and (max-width:599px){.type-plugin .plugin-header .entry-heading-container{--wp--custom--button--spacing--padding--top:12px;--wp--custom--button--spacing--padding--bottom:12px;--wp--custom--button--spacing--padding--left:16px;--wp--custom--button--spacing--padding--right:16px}}@media screen and (min-width:700px){.type-plugin .plugin-header .entry-heading-container{flex-direction:row}}.type-plugin .plugin-header .entry-heading-container>:first-child{align-items:center;display:flex;flex:1}.type-plugin .plugin-header .plugin-actions{align-items:center;display:flex;gap:16px;margin-top:var(--wp--style--block-gap)}@media screen and (min-width:700px){.type-plugin .plugin-header .plugin-actions{margin-top:0;margin-inline-start:1rem}}.type-plugin .plugin-header .plugin-actions>.button,.type-plugin .plugin-header .plugin-actions>div{display:inline-block;text-align:center}@media screen and (max-width:34em){.type-plugin .plugin-header .plugin-actions>.button.download-button{display:none}}.type-plugin .plugin-header .plugin-title{clear:none;font-size:var(--wp--preset--font-size--heading-3);font-weight:400;line-height:var(--wp--custom--heading--level-3--typography--line-height);margin:0}.type-plugin .plugin-header .plugin-title a{color:inherit;text-decoration:none}.type-plugin .plugin-header .plugin-title a:hover{text-decoration:underline}.type-plugin .plugin-header .byline{color:var(--wp--preset--color--charcoal-4);display:block;margin-top:4px}.type-plugin .plugin-banner+.plugin-header{padding-top:0}.type-plugin .plugin-banner+.plugin-header>.notice:first-of-type{margin-top:0}.type-plugin .tabs{border-bottom:1px solid var(--wp--preset--color--light-grey-1);list-style:none;margin:0}.type-plugin .tabs li{border:1px solid #0000;display:inline-block;font-size:.9rem;margin-bottom:-1px;transition:background .2s ease}.type-plugin .tabs li a{background:#fff;border:0;color:var(--wp--preset--color--charcoal-1);display:block;font-size:var(--wp--preset--font-size--normal);padding:.64rem 1.25rem;text-decoration:none}.type-plugin .tabs li a.active,.type-plugin .tabs li a:hover{background:var(--wp--preset--color--light-grey-2)!important}.type-plugin .tabs li.active,.type-plugin .tabs li:hover{border:1px solid var(--wp--preset--color--light-grey-1)}@media screen and (max-width:38em){.type-plugin .tabs{border-top:1px solid var(--wp--preset--color--light-grey-1)}.type-plugin .tabs li{display:block;margin-bottom:1px}.type-plugin .tabs li,.type-plugin .tabs li.active,.type-plugin .tabs li:hover{border:none;border-bottom:1px solid var(--wp--preset--color--light-grey-1)}}@media screen and (min-width:737px){.type-plugin .entry-content{float:left;padding:0;width:65%}}.type-plugin .entry-content>div,.type-plugin .entry-content>div~button{border:0;display:none}.type-plugin .entry-content ol>li>p,.type-plugin .entry-content ul>li>p{margin:0}.type-plugin .entry-content #admin{display:block!important}.type-plugin .plugin-blocks-list{list-style:none;margin-left:0;padding-left:0}.type-plugin .plugin-blocks-list .plugin-blocks-list-item{display:grid;grid-template-columns:auto 1fr;margin-bottom:var(--wp--style--block-gap)}.type-plugin .plugin-blocks-list .block-icon{border:1px solid var(--wp--preset--color--light-grey-1);border-radius:2px;display:inline-block;height:3.5rem;line-height:16px;margin-right:var(--wp--style--block-gap);padding:var(--wp--style--block-gap);width:3.5rem}.type-plugin .plugin-blocks-list .block-icon.dashicons{color:inherit}.type-plugin .plugin-blocks-list .block-icon.dashicons:before{margin-left:-3px}.type-plugin .plugin-blocks-list .block-icon svg{height:16px;width:16px;fill:currentColor;margin-left:-1px}.type-plugin .plugin-blocks-list .block-title{align-self:center;font-weight:700}.type-plugin .plugin-blocks-list .has-description .block-icon{grid-row:1/span 2}.type-plugin .plugin-blocks-list .has-description .block-title{margin-bottom:.4em}.type-plugin span#description,.type-plugin span#developers,.type-plugin span#installation,.type-plugin span#releases,.type-plugin span#reviews{position:fixed}.type-plugin span#advanced.displayed~#section-links .tabs li#tablink-advanced,.type-plugin span#developers:target~#section-links .tabs li#tablink-developers,.type-plugin span#installation:target~#section-links .tabs li#tablink-installation,.type-plugin span#releases:target~#section-links .tabs li#tablink-releases,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~span#advanced:not(.displayed)~#section-links .tabs li#tablink-description,.type-plugin span#reviews:target~#section-links .tabs li#tablink-reviews{background:#fff;border:1px solid var(--wp--preset--color--light-grey-1);border-bottom:0;padding-bottom:1px}@media screen and (max-width:38em){.type-plugin span#advanced.displayed~#section-links .tabs li#tablink-advanced.active,.type-plugin span#advanced.displayed~#section-links .tabs li#tablink-advanced:hover,.type-plugin span#developers:target~#section-links .tabs li#tablink-developers.active,.type-plugin span#developers:target~#section-links .tabs li#tablink-developers:hover,.type-plugin span#installation:target~#section-links .tabs li#tablink-installation.active,.type-plugin span#installation:target~#section-links .tabs li#tablink-installation:hover,.type-plugin span#releases:target~#section-links .tabs li#tablink-releases.active,.type-plugin span#releases:target~#section-links .tabs li#tablink-releases:hover,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~span#advanced:not(.displayed)~#section-links .tabs li#tablink-description.active,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~span#advanced:not(.displayed)~#section-links .tabs li#tablink-description:hover,.type-plugin span#reviews:target~#section-links .tabs li#tablink-reviews.active,.type-plugin span#reviews:target~#section-links .tabs li#tablink-reviews:hover{padding-bottom:1px!important}}.type-plugin span#section-links{display:flex;flex-flow:row wrap;margin-top:var(--wp--preset--spacing--30)}.type-plugin span#section-links .tabs{flex:1 1 auto;padding-left:0}@media screen and (max-width:38em){.type-plugin span#section-links .tabs{border:1px solid var(--wp--preset--color--light-grey-1)!important}.type-plugin span#section-links .tabs li{border:none!important}.type-plugin span#section-links{display:block}}.type-plugin #link-support{align-self:flex-end;border-bottom:1px solid var(--wp--preset--color--light-grey-1);flex:0 0 auto;font-size:.9rem}.type-plugin #link-support a{display:inline-block;font-size:var(--wp--preset--font-size--normal);padding:.64rem 0 .64rem 1.25rem}@media screen and (max-width:38em){.type-plugin #link-support{border-bottom:0;display:block;width:100%}.type-plugin #link-support a{padding-right:1.25rem}}.type-plugin span#developers:target~.entry-content #tab-changelog,.type-plugin span#developers:target~.entry-content #tab-developers,.type-plugin span#developers:target~.entry-content #tab-developers .plugin-development,.type-plugin span#developers:target~.entry-content #tab-developers~button,.type-plugin span#installation:target~.entry-content #tab-installation,.type-plugin span#releases:target~.entry-content #tab-releases,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~.entry-content #blocks,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~.entry-content #faq,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~.entry-content #screenshots,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~.entry-content #tab-description,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~.entry-content #tab-developers,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~.entry-content #tab-developers~button,.type-plugin span#reviews:target~.entry-content #tab-reviews{display:block}.type-plugin span#developers:target~.entry-content #tab-developers .plugin-contributors,.type-plugin span#installation:target~.entry-meta .plugin-contributors,.type-plugin span#releases:target~.entry-meta,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~.entry-content #tab-developers .plugin-development,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~.entry-meta .plugin-contributors,.type-plugin span#reviews:target~.entry-meta .plugin-contributors,.type-plugin span#reviews:target~.entry-meta .plugin-donate,.type-plugin span#reviews:target~.entry-meta .plugin-meta,.type-plugin span#reviews:target~.entry-meta .plugin-support{display:none}.type-plugin span#releases:target~.entry-content{width:100%}@media screen and (min-width:737px){.type-plugin .entry-content,.type-plugin .entry-meta{padding-left:0;padding-right:0}.type-plugin .entry-meta{float:right;width:30%}}.type-plugin .plugin-danger-zone h4{margin-top:var(--wp--preset--spacing--60)}.plugin-releases-listing{border-collapse:collapse;width:100%}.plugin-releases-listing tbody td:nth-child(4) div{font-size:14px}.plugin-releases-listing-actions{display:flex;flex-direction:column;gap:8px}@media screen and (min-width:34em){.plugin-releases-listing-actions{flex-direction:row}}.plugin-adopt-me{background:#e6f4fa;margin-top:36px;padding:12px}.plugin-adopt-me .widget-title{margin-top:0}.plugin-adopt-me p{margin-bottom:0}.widget.plugin-categorization{margin-top:var(--wp--style--block-gap)}.widget.plugin-categorization .widget-head h2{font-size:var(--wp--preset--font-size--heading-4);margin-bottom:.2rem;margin-top:0}.widget.plugin-categorization .widget-head a{font-size:var(--wp--preset--font-size--small)}.widget.plugin-categorization .widget-head a[href=""]{display:none}.widget.plugin-categorization p{font-size:var(--wp--preset--font-size--small);margin-top:.5rem}.widget.plugin-categorization~.plugin-meta li:first-child{border-top:1px solid var(--wp--preset--color--light-grey-1)}.committer-list,.support-rep-list{list-style:none;margin:0;padding:0}.committer-list li,.support-rep-list li{padding-bottom:.5rem}.committer-list li .remove,.support-rep-list li .remove{color:red;visibility:hidden}.committer-list li:hover .remove,.support-rep-list li:hover .remove{visibility:visible}.committer-list .avatar,.support-rep-list .avatar{float:left;margin-right:10px}.committer-list .spinner,.support-rep-list .spinner{position:relative}.committer-list .spinner:after,.support-rep-list .spinner:after{background:url(/wp-admin/images/spinner.gif) no-repeat 50%;background-size:20px 20px;content:"";display:block;height:20px;margin:-10px -10px 0 0;position:absolute;right:-50%;top:50%;transform:translateZ(0);width:20px}@media (min-resolution:120dpi),print{.committer-list .spinner:after,.support-rep-list .spinner:after{background-image:url(/wp-admin/images/spinner-2x.gif)}}.committer-list .new,.support-rep-list .new{margin-top:var(--wp--style--block-gap)}.plugin-contributors.read-more{border-bottom:1px solid var(--wp--preset--color--light-grey-1);max-height:200px;overflow:hidden;padding-bottom:1px}.plugin-contributors.read-more.toggled{max-height:none}.no-js .plugin-contributors.read-more{max-height:none;overflow:auto}.contributors-list{list-style-type:none;margin:0;padding:0}.contributors-list li{align-items:center;display:flex;margin-bottom:1rem}.contributors-list .avatar{float:left;margin-right:10px}.plugin-meta{font-size:var(--wp--preset--font-size--small);margin-top:var(--wp--style--block-gap)}.plugin-meta ul{list-style-type:none;margin:0;padding:0}.plugin-meta li{border-top:1px solid var(--wp--preset--color--light-grey-1);display:inline-block;padding:.5rem 0;position:relative;width:100%}.plugin-meta li strong{float:right;font-weight:500}.plugin-meta li .plugin-admin{font-size:var(--wp--preset--font-size--normal);font-weight:400}.plugin-meta li:first-child{border-top:0}.plugin-meta .languages,.plugin-meta .tags{float:right;text-align:right}.plugin-meta .tags{width:60%}.plugin-meta .languages button{font-size:var(--wp--preset--font-size--small);outline:revert}.plugin-meta .languages .popover{margin-top:8px}.plugin-meta .languages .popover-trigger{color:var(--wp--custom--link--color--text);text-decoration:underline}.plugin-meta .languages .popover-trigger:hover{text-decoration:underline}.plugin-meta [rel=tag]{background:var(--wp--preset--color--blueberry-4);border-radius:2px;color:var(--wp--preset--color--charcoal-1);display:inline-block;font-size:var(--wp--preset--font-size--extra-small);margin:2px;max-width:95%;overflow:hidden;padding:3px 6px;position:relative;text-decoration:none;text-overflow:ellipsis;white-space:nowrap;width:auto}.plugin-meta [rel=tag]:hover{text-decoration:underline}.popover{background-color:#fff;border:1px solid var(--wp--preset--color--light-grey-1);border-radius:2px;box-shadow:0 2px 10px #0000001a;display:none;left:0;margin-top:10px;max-width:300px;padding:1em 1em 2em;position:absolute;width:100%;z-index:100}.popover.is-top-right{left:auto;right:0}.popover.is-visible{display:block}.popover .popover-close{bottom:.5em;color:var(--wp--custom--link--color--text);font-size:small;position:absolute;right:.6em}.popover .popover-close:active,.popover .popover-close:focus,.popover .popover-close:hover{text-decoration:underline}.popover .popover-arrow{border:10px solid #0000;border-bottom:10px solid #ccc;border-top:none;height:0;position:absolute;right:20px;top:-10px;width:0;z-index:-1}.popover .popover-arrow:after{border:10px solid #0000;border-bottom:10px solid #fff;border-top:none;content:"";left:-10px;position:absolute;top:2px}.popover .popover-inner{text-align:left}.popover .popover-inner p:first-child{margin-top:0}.popover .popover-inner p:last-child{margin-bottom:0}.plugin-support .counter-container{margin-bottom:1rem;position:relative}.plugin-support .counter-back,.plugin-support .counter-bar{display:inline-block;height:30px;vertical-align:middle}.plugin-support .counter-back{background-color:var(--wp--preset--color--light-grey-2);width:100%}.plugin-support .counter-bar{background-color:var(--wp--preset--color--acid-green-2);display:block}.plugin-support .counter-count{font-size:var(--wp--preset--font-size--extra-small);left:8px;position:absolute;top:8px;width:100%;width:calc(100% - 8px)}@media screen and (min-width:737px){.plugin-support .counter-count{top:5px}}.home .widget,.widget-area.home .widget{display:inline-block;font-size:var(--wp--preset--font-size--small);margin:0;margin:var(--wp--style--block-gap);vertical-align:top;width:auto}@media screen and (min-width:737px){.home .widget,.widget-area.home .widget{margin:0;width:30%}.home .widget:first-child,.widget-area.home .widget:first-child{margin-right:5%}.home .widget:last-child,.widget-area.home .widget:last-child{margin-left:5%}}.home .widget select,.widget-area.home .widget select{max-width:100%}.entry-meta .widget-title{font-size:var(--wp--preset--font-size--heading-4)}body.single.single-plugin .entry-meta{font-size:var(--wp--preset--font-size--normal)}.widget-area{margin:0 auto;padding:var(--wp--preset--spacing--40) 0}.widget-area .widget-title{font-size:var(--wp--preset--font-size--heading-1);font-weight:var(--wp--custom--heading--typography--font-weight);margin-top:var(--wp--preset--spacing--50)}.widget-area .textwidget{text-wrap:pretty} \ No newline at end of file +@charset "UTF-8";.avatar{border-radius:50%;vertical-align:middle}.wp-block-wporg-language-suggest>p{margin:0}.block-validator>details summary{padding:var(--wp--style--block-gap) 0}.block-validator .block-validator__plugin-form label{display:block;margin-bottom:.8em}.block-validator .block-validator__plugin-input-container{display:flex;max-width:34rem}.block-validator .block-validator__plugin-input{flex:1}.block-validator .block-validator__plugin-submit{flex:0;margin-left:4px}@media (max-width:36rem){.block-validator .block-validator__plugin-submit{width:100%}.block-validator .block-validator__plugin-input-container{display:block}.block-validator .block-validator__plugin-input{width:100%}.block-validator .block-validator__plugin-submit{margin-left:0;margin-top:var(--wp--style--block-gap)}}.block-validator .notice details,.block-validator .notice p{font-size:var(--wp--preset--font-size--normal);margin:var(--wp--style--block-gap) 0}.block-validator .notice details p{font-size:var(--wp--preset--font-size--small);margin-left:1rem}.block-validator .notice summary{display:list-item}.block-validator figure{border:1px solid #aaa;display:inline-block;padding:1em}.block-validator .test-screenshot{text-align:center}.block-validator .plugin-upload-form-controls{align-items:center;display:flex;gap:4px}.block-validator .plugin-upload-form-controls>label{border:1px solid var(--wp--custom--form--border--color);border-radius:var(--wp--custom--form--border--radius);cursor:pointer;min-width:200px;padding:4px 8px}.notice{background:#fff;border-left:4px solid #fff;box-shadow:0 1px 1px 0 #0000001a;font-size:var(--wp--preset--font-size--small);margin:var(--wp--style--block-gap) 0;padding:1px 12px}.notice p,.notice ul{margin:.5em 0;padding:2px}.notice pre{white-space:pre-wrap}.notice ul{list-style:none;margin:.5em}.notice.notice-alt{box-shadow:none}.notice.notice-large{padding:10px 20px}.notice.notice-success{border-left-color:#46b450}.notice.notice-success.notice-alt{background-color:#ecf7ed}.notice.notice-warning{border-left-color:#ffb900}.notice.notice-warning.notice-alt{background-color:#fff8e5}.notice.notice-error{border-left-color:#dc3232}.notice.notice-error.notice-alt{background-color:#fbeaea}.notice.notice-info{border-left-color:#00a0d2}.notice.notice-info.notice-alt{background-color:#e5f5fa}.notice.hidden{display:none}.plugin-upload-form.hidden{display:none}.plugin-upload-form fieldset{border:none;margin:0;padding:0}.plugin-upload-form legend{margin:1rem 0}.plugin-upload-form .category-checklist{list-style-type:none;margin:0 0 2rem}.plugin-upload-form .category-checklist li{float:left;padding:.5rem 0;width:50%}@media screen and (min-width:48em){.plugin-upload-form .category-checklist li{padding:0}.plugin-upload-form .category-checklist label{font-size:var(--wp--preset--font-size--small)}.plugin-upload-form label.button{line-height:1.8}}.plugin-upload-form .plugin-file{height:.1px;opacity:0;overflow:hidden;position:absolute;width:.1px;z-index:-1}.plugin-queue-message code{font-size:1em}.plugin-queue-message dialog.slug-change input[type=text]{font-family:monospace;font-size:1.2em;width:20em}:where(main) a:where(:not(.wp-element-button,.wp-block-wporg-link-wrapper)):focus,:where(main) button:where(:not([class*=wp-block-button])):focus{border-radius:2px;box-shadow:0 0 0 1.5px currentColor;outline:none}.wporg-filter-bar{--wporg--filter-bar--gap:20px;--wporg--filter-bar--color:#40464d;--wporg--filter-bar--active--background-color:var(--wp--custom--button--color--background);--wporg--filter-bar--focus--border-color:var(--wp--custom--button--focus--border--color);margin:var(--wp--style--block-gap) 0}.wporg-filter-bar .wporg-query-filter__toggle.is-active,.wporg-filter-bar .wporg-query-filter__toggle:active,.wporg-filter-bar .wporg-query-filter__toggle:focus{background-color:var(--wporg--filter-bar--active--background-color);color:var(--wp--custom--button--color--text)}.wporg-filter-bar .wporg-filter-bar__navigation{flex-grow:1;margin-bottom:var(--wporg--filter-bar--gap)}.wporg-filter-bar .wporg-filter-bar__navigation ul{display:inline-block;font-size:13px;line-height:1.538;list-style:none;margin:0;padding-left:0}.wporg-filter-bar .wporg-filter-bar__navigation ul li{display:inline-block}.wporg-filter-bar .wporg-filter-bar__navigation ul li+li{margin-left:8px}.wporg-filter-bar .wporg-filter-bar__navigation ul a{border-radius:2px;color:var(--wporg--filter-bar--color);display:block;padding:8px 12px;text-decoration:none}.wporg-filter-bar .wporg-filter-bar__navigation ul a:focus,.wporg-filter-bar .wporg-filter-bar__navigation ul a:hover{text-decoration:underline}.wporg-filter-bar .wporg-filter-bar__navigation ul a:focus-visible{box-shadow:none;outline:1.5px solid var(--wporg--filter-bar--focus--border-color);outline-offset:-.5px}.wporg-filter-bar .wporg-filter-bar__navigation ul a.is-active{background-color:var(--wporg--filter-bar--active--background-color);color:#fff}.wporg-filter-bar .wporg-filter-bar__navigation ul a.is-active:focus,.wporg-filter-bar .wporg-filter-bar__navigation ul a.is-active:hover{color:#fff}.wporg-filter-bar .wporg-filter-bar__navigation ul a.is-active:focus-visible{box-shadow:inset 0 0 0 1.5px #fff;outline:1.5px solid var(--wporg--filter-bar--focus--border-color);outline-offset:-.5px}@media screen and (min-width:737px){.wporg-filter-bar{align-items:center;display:flex;flex-wrap:wrap;gap:var(--wporg--filter-bar--gap);justify-content:space-between;width:100%}.wporg-filter-bar .wporg-filter-bar__navigation{margin-bottom:0}}.wp-block-search__inside-wrapper{background:var(--wp--preset--color--light-grey-2);border:none}.button-link{background:none;border:0;border-radius:0;box-shadow:none;cursor:pointer;margin:0;outline:none;padding:0}.button{background-color:var(--wp--custom--button--color--background);border:0;border-radius:var(--wp--custom--button--border--radius);color:var(--wp--custom--button--color--text);cursor:pointer;opacity:1;padding:calc(var(--wp--custom--button--small--spacing--padding--top) + var(--wp--custom--button--border--width)) calc(var(--wp--custom--button--small--spacing--padding--right) + var(--wp--custom--button--border--width)) calc(var(--wp--custom--button--small--spacing--padding--bottom) + var(--wp--custom--button--border--width)) calc(var(--wp--custom--button--small--spacing--padding--left) + var(--wp--custom--button--border--width));vertical-align:middle}.button.button-large{padding:calc(var(--wp--custom--button--spacing--padding--top) + var(--wp--custom--button--border--width)) calc(var(--wp--custom--button--spacing--padding--right) + var(--wp--custom--button--border--width)) calc(var(--wp--custom--button--spacing--padding--bottom) + var(--wp--custom--button--border--width)) calc(var(--wp--custom--button--spacing--padding--left) + var(--wp--custom--button--border--width))}input+button.button,select+button.button{margin-top:-3px}.button.disabled{cursor:not-allowed;opacity:.6}.wp-block-post-content a.button{text-decoration:none}.wp-block-button__link{width:auto}pre{background-color:#f7f7f7;border:1px solid var(--wp--preset--color--light-grey-1);overflow:scroll;padding:20px}code,pre{border-radius:2px}code{background:var(--wp--preset--color--light-grey-2);display:inline-block;line-height:var(--wp--custom--body--extra-small--typography--line-height);max-width:100%;padding-inline-end:3px;padding-inline-start:3px}dialog{border:0;box-shadow:6px 6px 6px #0003;min-height:50%;min-width:30%}@media (min-width:1280px){dialog{max-width:55%}}dialog::backdrop{background:#000;opacity:.5}dialog .close{color:inherit;cursor:pointer;position:absolute;right:1em;text-decoration:none!important;top:1em}.plugin-card{display:flex;flex-direction:column;height:100%;justify-content:space-between}.plugin-card .entry{display:inline-block;vertical-align:top}.plugin-card .entry-title{display:block;display:-webkit-box;font-size:var(--wp--preset--font-size--heading-5);font-weight:500;line-height:1.3;margin-bottom:2px!important;max-height:2.6em;overflow:hidden;-webkit-line-clamp:2;-webkit-box-orient:vertical}.plugin-card .entry-title a{display:block;text-decoration:none}.plugin-card .entry-title a:focus{box-shadow:none}.plugin-card .entry-excerpt{clear:both;font-size:var(--wp--preset--font-size--small)}.plugin-card .entry-excerpt p{margin:0}.plugin-card footer{font-size:var(--wp--preset--font-size--small);margin-top:var(--wp--style--block-gap)}.plugin-card footer span{color:var(--wp--preset--color--charcoal-4);display:inline-block;line-height:var(--wp--preset--font-size--normal);overflow:hidden}.plugin-card footer span.plugin-author{width:100%}.plugin-card footer span.plugin-author span{color:var(--wp--preset--color--charcoal-1)}.plugin-card footer span.plugin-author path{fill:var(--wp--preset--color--charcoal-1)}.plugin-card footer span svg{height:24px;vertical-align:bottom;width:24px}.plugin-card footer span svg path{fill:var(--wp--preset--color--charcoal-4)}.plugin-card footer span.active-installs{min-width:48%}.plugin-cards{cursor:pointer}.plugin-cards .is-style-cards-grid li:hover{background-color:#fff!important;border:1px solid var(--wp--preset--color--charcoal-1)!important}.plugin-cards .is-style-cards-grid li:focus-within{border-color:#0000;border-radius:2px;box-shadow:0 0 0 1.5px var(--wp--custom--link--color--text)}@media screen and (max-width:737px){.plugin-cards .is-style-cards-grid{grid-template-columns:100%}}.entry-thumbnail{display:none;margin-bottom:var(--wp--style--block-gap);margin-right:var(--wp--style--block-gap);max-width:80px}.entry-thumbnail .plugin-icon{background-size:cover;border-radius:var(--wp--custom--button--border--radius);display:block;height:80px;width:80px}@media screen and (min-width:21em){.entry-thumbnail{display:inline-block;float:left;vertical-align:top}}.single .entry-thumbnail{display:none;float:left;height:96px;margin-bottom:0;max-width:96px}@media screen and (min-width:26em){.single .entry-thumbnail{display:block}}.single .entry-thumbnail .plugin-icon{background-size:contain!important;height:96px!important;width:96px!important}.plugin-rating{line-height:1;margin:0 10px 8px 0}.plugin-rating .wporg-ratings{display:inline-block;margin-right:5px}.plugin-rating .rating-count{color:var(--wp--preset--color--charcoal-4);font-size:var(--wp--preset--font-size--extra-small);vertical-align:text-bottom}.plugin-rating .rating-count a{color:inherit;cursor:hand;text-decoration:none}[class*=dashicons-star-]{color:var(--wp--preset--color--pomegrade-1)}.rtl .dashicons-star-half{transform:rotateY(180deg)}#main .plugin-section{margin:0 auto var(--wp--preset--spacing--60)}#main .plugin-section:last-of-type{margin-bottom:0}#main .plugin-section .section-header{align-items:center;column-gap:10px;display:flex;justify-content:space-between;margin-bottom:var(--wp--style--block-gap)}#main .plugin-section .section-header>h2{margin-bottom:0}#main .plugin-section .section-link{align-self:center;flex:0 0 auto;text-decoration:underline}.pagination .nav-links{margin-top:var(--wp--style--block-gap);padding-top:var(--wp--style--block-gap);text-align:center}.pagination .nav-links a{text-decoration:none}.pagination .nav-links .page-numbers{cursor:pointer;display:inline-block;min-width:2em;padding:8px;text-align:center}.pagination .nav-links .page-numbers.dots,.pagination .nav-links .page-numbers.next,.pagination .nav-links .page-numbers.prev{background:none;font-size:.9em;width:auto}.pagination .nav-links .page-numbers.dots{cursor:inherit}@media screen and (max-width:737px){.pagination .nav-links .page-numbers.next,.pagination .nav-links .page-numbers.prev{font-size:0;min-width:auto;padding:0}.pagination .nav-links .page-numbers.next:after,.pagination .nav-links .page-numbers.prev:before{display:inline-block;font-size:medium;line-height:1.5;min-width:2em;padding:8px}.pagination .nav-links .page-numbers.prev:before{content:"‹"}.pagination .nav-links .page-numbers.next:after{content:"›"}}.pagination .nav-links span.page-numbers{font-weight:700}.pagination .nav-links span.page-numbers.current{text-decoration:underline}@keyframes favme-anime{0%{font-size:var(--wp--preset--font-size--large);opacity:1;-webkit-text-stroke-color:#0000}25%{color:#fff;font-size:var(--wp--preset--font-size--small);opacity:.6;-webkit-text-stroke-width:1px;-webkit-text-stroke-color:#dc3232}75%{color:#fff;font-size:var(--wp--preset--font-size--large);opacity:.6;-webkit-text-stroke-width:1px;-webkit-text-stroke-color:#dc3232}to{font-size:var(--wp--preset--font-size--normal);opacity:1;-webkit-text-stroke-color:#0000}}.plugin-favorite{height:calc(var(--wp--custom--button--spacing--padding--top)*2 + var(--wp--preset--font-size--normal)*2);text-align:center;vertical-align:top;width:36px}.plugin-favorite .plugin-favorite-heart{align-items:center;background:none;border:0;border-radius:0;box-shadow:none;color:#cbcdce;cursor:pointer;display:flex;font-size:var(--wp--preset--font-size--large);height:100%;justify-content:center;line-height:1;margin:0;outline:none;padding:0;text-decoration:none}.plugin-favorite .plugin-favorite-heart.favorited{color:#dc3232}.plugin-favorite .plugin-favorite-heart:focus,.plugin-favorite .plugin-favorite-heart:hover{color:var(----wp--preset--color--charcoal-2);text-decoration:none}.plugin-favorite .plugin-favorite-heart:after{content:"\f487";font-family:dashicons;vertical-align:top}.plugin-banner img{aspect-ratio:3.089;border-radius:var(--wp--custom--button--border--radius);display:block;margin:0 auto var(--wp--preset--spacing--30);width:100%}.plugin-releases{list-style-type:none;padding:0}.plugin-releases-item{border:1px solid var(--wp--preset--color--light-grey-1);border-radius:4px;margin-bottom:var(--wp--preset--spacing--30);padding:var(--wp--style--block-gap)}.plugin-releases-item-header{display:flex;justify-content:space-between}.plugin-releases-item-header h3{margin:0!important}@keyframes hideAnimation{to{visibility:hidden}}.categorization .help{color:var(--wp--preset--color--charcoal-4);display:inline-block;font-size:.8rem;margin-top:0}.categorization label{display:block;font-weight:700}.categorization input{width:100%}.categorization .success-msg{background:#eff7ed;border:solid #64b450;border-width:0 0 0 5px;font-size:.8rem;margin-left:1rem;opacity:0;overflow:auto;padding:.1rem .6rem .2rem;position:relative;transition:visibility 0s,opacity .5s linear;-webkit-user-select:none;user-select:none;visibility:hidden}.categorization .success-msg.saved{animation:hideAnimation 0s ease-in 5s;animation-fill-mode:forwards;opacity:1;visibility:visible}.plugin-changelog code{font-size:var(--wp--preset--font-size--small)}.plugin-developers .contributors-list li{align-items:center;display:flex;padding-bottom:var(--wp--style--block-gap)}@media screen and (min-width:500px){.plugin-developers .contributors-list{display:flex;flex-wrap:wrap}.plugin-developers .contributors-list li{padding-bottom:unset;width:50%}}.plugin-faq dl{border-bottom:1px solid var(--wp--preset--color--light-grey-1)}.plugin-faq dt{border-top:1px solid var(--wp--preset--color--light-grey-1);cursor:pointer;padding:1rem 0}.plugin-faq dt:before{content:"\f347";float:right;font-family:dashicons;margin:0 1rem}.plugin-faq dt.open:before{content:"\f343"}.plugin-faq dt .button-link{display:inherit;text-align:inherit}.plugin-faq dt .button-link.no-focus{box-shadow:none;outline:none}.plugin-faq dt h3{color:var(--wp--custom--link--color--text);display:inline;font-size:var(--wp--preset--font-size--normal);font-weight:400;margin-bottom:0;margin-top:0!important;text-decoration:underline}.plugin-faq dt h3 button{all:inherit;max-width:calc(100% - 60px)}.plugin-faq dt h3 button:focus,.plugin-faq dt h3 button:hover{text-decoration:underline}.plugin-faq dd{display:none;margin:0 0 1rem}.no-js .plugin-faq dd{display:block}.plugin-faq dd p{margin:0}.plugin-faq dd p+p{margin-top:1rem}.image-gallery{-webkit-user-select:none;user-select:none}.image-gallery-content{position:relative}.image-gallery-content .image-gallery-left-nav,.image-gallery-content .image-gallery-right-nav{border-color:var(--wp--preset--color--light-grey-1);display:none;font-size:48px;height:100%;position:absolute;top:0;transition:background .1s ease,border .1s ease;z-index:4}@media (max-width:768px){.image-gallery-content .image-gallery-left-nav,.image-gallery-content .image-gallery-right-nav{font-size:3.4em}}@media (min-width:768px){.image-gallery-content .image-gallery-left-nav:hover,.image-gallery-content .image-gallery-right-nav:hover{background:#fff;border:1px solid var(--wp--preset--color--light-grey-1);opacity:.8}}.image-gallery-content .image-gallery-left-nav:before,.image-gallery-content .image-gallery-right-nav:before{font-family:dashicons;position:relative}.image-gallery-content .image-gallery-left-nav{left:0}.image-gallery-content .image-gallery-left-nav:before{content:"\f341"}.image-gallery-content .image-gallery-left-nav:hover{margin-left:-1px}.image-gallery-content .image-gallery-right-nav{right:0}.image-gallery-content .image-gallery-right-nav:before{content:"\f345"}.image-gallery-content .image-gallery-right-nav:hover{margin-right:-1px}.image-gallery-content:hover .image-gallery-left-nav,.image-gallery-content:hover .image-gallery-right-nav{display:block}.image-gallery-slides{border:1px solid #eee;line-height:0;overflow:hidden;position:relative;white-space:nowrap}.image-gallery-slide{left:0;position:absolute;top:0;width:100%}.image-gallery-slide.center{position:relative}.image-gallery-slide .image-gallery-image{margin:0}.image-gallery-slide img{display:block;margin:0 auto}.image-gallery-slide .image-gallery-description{background:var(--wp--preset--color--light-grey-2);color:var(--wp--preset--color--charcoal-1);font-size:var(--wp--preset--font-size--small);line-height:1.5;padding:10px 20px;white-space:normal}@media (max-width:768px){.image-gallery-slide .image-gallery-description{padding:8px 15px}}.image-gallery-thumbnails{background:#fff;margin-top:5px}.image-gallery-thumbnails .image-gallery-thumbnails-container{cursor:pointer;text-align:center;white-space:nowrap}.image-gallery-thumbnail{border:1px solid #eee;display:table-cell;margin-right:5px;max-height:100px;overflow:hidden}.image-gallery-thumbnail .image-gallery-image{margin:0}.image-gallery-thumbnail img{vertical-align:middle;width:100px}@media (max-width:768px){.image-gallery-thumbnail img{width:75px}}.image-gallery-thumbnail:hover{box-shadow:0 1px 8px #0000004d}.image-gallery-thumbnail.active{border:1px solid #337ab7}.image-gallery-thumbnail-label{color:#222;font-size:1em}@media (max-width:768px){.image-gallery-thumbnail-label{font-size:.8em}}.image-gallery-index{background:#0006;bottom:0;color:#fff;line-height:1;padding:10px 20px;position:absolute;right:0;z-index:4}.plugin-reviews{list-style-type:none;margin:0;padding:0}.plugin-reviews .plugin-review{border-bottom:1px solid var(--wp--preset--color--light-grey-1);margin:2rem 0 1rem;padding-bottom:1rem}.plugin-reviews .plugin-review a{text-decoration:none}.plugin-reviews .plugin-review:first-child{margin-top:0}.plugin-reviews .plugin-review .header-top{display:flex}.plugin-reviews .plugin-review .header-top .wporg-ratings{flex-shrink:0}.plugin-reviews .plugin-review .header-bottom{display:flex;margin-top:4px}.plugin-reviews .review-avatar{display:none}.plugin-reviews .review,.plugin-reviews .review-author,.plugin-reviews .wporg-ratings{display:inline-block;vertical-align:top}.plugin-reviews .review-header{margin:0 0 .5rem}.plugin-reviews .review-title{font-size:var(--wp--preset--font-size--normal);font-weight:500;margin:2px 0 0 12px!important;text-transform:inherit}.plugin-reviews .review-author,.plugin-reviews .review-date,.plugin-reviews .review-replies{font-size:var(--wp--preset--font-size--extra-small);line-height:1.25}.plugin-reviews .review-date,.plugin-reviews .review-replies{color:var(--wp--preset--color--charcoal-4);font-size:var(--wp--preset--font-size--extra-small);margin-left:12px}.plugin-reviews .review-replies:before{content:"•";margin-right:12px}.plugin-reviews .review-content{margin:1em 0}@media screen and (min-width:737px){.plugin-reviews .review-avatar{display:inline-block;vertical-align:top}.plugin-reviews .review-avatar .avatar{margin-right:1rem}.plugin-reviews .review{width:calc(100% - 60px - 1rem)}.plugin-reviews .review-header{margin:0}.plugin-reviews .review-author,.plugin-reviews .review-date,.plugin-reviews .review-replies{line-height:1}}.plugin-reviews .reviews-link{display:inline-block;font-size:var(--wp--preset--font-size--small);text-decoration:none}.plugin-reviews .reviews-link:after{content:"\f345";float:right;font-family:dashicons;padding-left:5px;position:relative;top:1px;vertical-align:text-top}.plugin-screenshots{list-style-type:none;margin:0;padding:0}.plugin-screenshots .image-gallery-content{display:table;width:100%}.plugin-screenshots .image-gallery-slides{display:table-cell;max-height:600px}.plugin-screenshots .image-gallery-image img{max-height:550px;max-width:100%}.plugin-screenshots .image-gallery-thumbnail{vertical-align:top}.plugin-screenshots .image-gallery-thumbnail img{max-height:100px}.plugin-screenshots .image-gallery-thumbnails{overflow:hidden}.download-history-stats td{text-align:right}.previous-versions{max-width:60%}@media screen and (min-width:737px){.previous-versions{height:32px;vertical-align:middle}}hr{margin:2.5rem auto}.section h1:nth-child(2),.section h2:nth-child(2),.section h3:nth-child(2),.section h4:nth-child(2),.section h5:nth-child(2),.section h6:nth-child(2){margin-top:0}.section-heading{font-family:var(--wp--preset--font-family--inter)!important;font-size:var(--wp--preset--font-size--heading-5)!important;font-style:normal;font-weight:600;line-height:var(--wp--custom--heading--level-5--typography--line-height)}.section-intro{color:var(--wp--preset--color--charcoal-4);font-size:var(--wp--preset--font-size--small);margin-bottom:var(--wp--preset--spacing--20);margin-top:var(--wp--preset--spacing--10)}.wporg-spinner{--local-size:16px;--spinner-color:var(--wp--custom--spinner--color,var(--wp--preset--color--blueberry-1,currentColor));--background-stroke-color:#ddd;background-color:initial;display:inline-block;height:var(--local-size);position:relative;width:var(--local-size)}.wporg-spinner:before{border:1.5px solid var(--background-stroke-color);border-radius:50%}.wporg-spinner:after,.wporg-spinner:before{box-sizing:border-box;content:"";display:block;height:100%;width:100%}.wporg-spinner:after{animation:wporg-spinner-rotate 1.4s linear infinite;border-bottom:1.5px solid #0000;border-left:1.5px solid #0000;border-radius:50%;border-right:1.5px solid #0000;border-right-color:var(--spinner-color);border-top:1.5px solid #0000;border-top-color:var(--spinner-color);left:0;position:absolute;top:0;transform-origin:center}@keyframes wporg-spinner-rotate{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.type-plugin .plugin-notice{margin-top:0}.type-plugin .plugin-header{border-bottom:0;padding-top:var(--wp--preset--spacing--40)}.type-plugin .plugin-header:after,.type-plugin .plugin-header:before{content:"";display:table;table-layout:fixed}.type-plugin .plugin-header:after{clear:both}.type-plugin .plugin-header .entry-heading-container{display:flex;flex-direction:column;justify-content:space-between}@media screen and (max-width:599px){.type-plugin .plugin-header .entry-heading-container{--wp--custom--button--spacing--padding--top:12px;--wp--custom--button--spacing--padding--bottom:12px;--wp--custom--button--spacing--padding--left:16px;--wp--custom--button--spacing--padding--right:16px}}@media screen and (min-width:700px){.type-plugin .plugin-header .entry-heading-container{flex-direction:row}}.type-plugin .plugin-header .entry-heading-container>:first-child{align-items:center;display:flex;flex:1}.type-plugin .plugin-header .plugin-actions{align-items:center;display:flex;gap:16px;margin-top:var(--wp--style--block-gap)}@media screen and (min-width:700px){.type-plugin .plugin-header .plugin-actions{margin-top:0;margin-inline-start:1rem}}.type-plugin .plugin-header .plugin-actions>.button,.type-plugin .plugin-header .plugin-actions>div{display:inline-block;text-align:center}@media screen and (max-width:34em){.type-plugin .plugin-header .plugin-actions>.button.download-button{display:none}}.type-plugin .plugin-header .plugin-title{clear:none;font-size:var(--wp--preset--font-size--heading-3);font-weight:400;line-height:var(--wp--custom--heading--level-3--typography--line-height);margin:0}.type-plugin .plugin-header .plugin-title a{color:inherit;text-decoration:none}.type-plugin .plugin-header .plugin-title a:hover{text-decoration:underline}.type-plugin .plugin-header .byline{color:var(--wp--preset--color--charcoal-4);display:block;margin-top:4px}.type-plugin .plugin-banner+.plugin-header{padding-top:0}.type-plugin .plugin-banner+.plugin-header>.notice:first-of-type{margin-top:0}.type-plugin .tabs{border-bottom:1px solid var(--wp--preset--color--light-grey-1);list-style:none;margin:0}.type-plugin .tabs li{border:1px solid #0000;display:inline-block;font-size:.9rem;margin-bottom:-1px;transition:background .2s ease}.type-plugin .tabs li a{background:#fff;border:0;color:var(--wp--preset--color--charcoal-1);display:block;font-size:var(--wp--preset--font-size--normal);padding:.64rem 1.25rem;text-decoration:none}.type-plugin .tabs li a.active,.type-plugin .tabs li a:hover{background:var(--wp--preset--color--light-grey-2)!important}.type-plugin .tabs li.active,.type-plugin .tabs li:hover{border:1px solid var(--wp--preset--color--light-grey-1)}@media screen and (max-width:38em){.type-plugin .tabs{border-top:1px solid var(--wp--preset--color--light-grey-1)}.type-plugin .tabs li{display:block;margin-bottom:1px}.type-plugin .tabs li,.type-plugin .tabs li.active,.type-plugin .tabs li:hover{border:none;border-bottom:1px solid var(--wp--preset--color--light-grey-1)}}@media screen and (min-width:737px){.type-plugin .entry-content{float:left;padding:0;width:65%}}.type-plugin .entry-content>div,.type-plugin .entry-content>div~button{border:0;display:none}.type-plugin .entry-content ol>li>p,.type-plugin .entry-content ul>li>p{margin:0}.type-plugin .entry-content #admin{display:block!important}.type-plugin .plugin-blocks-list{list-style:none;margin-left:0;padding-left:0}.type-plugin .plugin-blocks-list .plugin-blocks-list-item{display:grid;grid-template-columns:auto 1fr;margin-bottom:var(--wp--style--block-gap)}.type-plugin .plugin-blocks-list .block-icon{border:1px solid var(--wp--preset--color--light-grey-1);border-radius:2px;display:inline-block;height:3.5rem;line-height:16px;margin-right:var(--wp--style--block-gap);padding:var(--wp--style--block-gap);width:3.5rem}.type-plugin .plugin-blocks-list .block-icon.dashicons{color:inherit}.type-plugin .plugin-blocks-list .block-icon.dashicons:before{margin-left:-3px}.type-plugin .plugin-blocks-list .block-icon svg{height:16px;width:16px;fill:currentColor;margin-left:-1px}.type-plugin .plugin-blocks-list .block-title{align-self:center;font-weight:700}.type-plugin .plugin-blocks-list .has-description .block-icon{grid-row:1/span 2}.type-plugin .plugin-blocks-list .has-description .block-title{margin-bottom:.4em}.type-plugin span#description,.type-plugin span#developers,.type-plugin span#installation,.type-plugin span#releases,.type-plugin span#reviews{position:fixed}.type-plugin span#advanced.displayed~#section-links .tabs li#tablink-advanced,.type-plugin span#developers:target~#section-links .tabs li#tablink-developers,.type-plugin span#installation:target~#section-links .tabs li#tablink-installation,.type-plugin span#releases:target~#section-links .tabs li#tablink-releases,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~span#advanced:not(.displayed)~#section-links .tabs li#tablink-description,.type-plugin span#reviews:target~#section-links .tabs li#tablink-reviews{background:#fff;border:1px solid var(--wp--preset--color--light-grey-1);border-bottom:0;padding-bottom:1px}@media screen and (max-width:38em){.type-plugin span#advanced.displayed~#section-links .tabs li#tablink-advanced.active,.type-plugin span#advanced.displayed~#section-links .tabs li#tablink-advanced:hover,.type-plugin span#developers:target~#section-links .tabs li#tablink-developers.active,.type-plugin span#developers:target~#section-links .tabs li#tablink-developers:hover,.type-plugin span#installation:target~#section-links .tabs li#tablink-installation.active,.type-plugin span#installation:target~#section-links .tabs li#tablink-installation:hover,.type-plugin span#releases:target~#section-links .tabs li#tablink-releases.active,.type-plugin span#releases:target~#section-links .tabs li#tablink-releases:hover,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~span#advanced:not(.displayed)~#section-links .tabs li#tablink-description.active,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~span#advanced:not(.displayed)~#section-links .tabs li#tablink-description:hover,.type-plugin span#reviews:target~#section-links .tabs li#tablink-reviews.active,.type-plugin span#reviews:target~#section-links .tabs li#tablink-reviews:hover{padding-bottom:1px!important}}.type-plugin span#section-links{display:flex;flex-flow:row wrap;margin-top:var(--wp--preset--spacing--30)}.type-plugin span#section-links .tabs{flex:1 1 auto;padding-left:0}@media screen and (max-width:38em){.type-plugin span#section-links .tabs{border:1px solid var(--wp--preset--color--light-grey-1)!important}.type-plugin span#section-links .tabs li{border:none!important}.type-plugin span#section-links{display:block}}.type-plugin #link-support{align-self:flex-end;border-bottom:1px solid var(--wp--preset--color--light-grey-1);flex:0 0 auto;font-size:.9rem}.type-plugin #link-support a{display:inline-block;font-size:var(--wp--preset--font-size--normal);padding:.64rem 0 .64rem 1.25rem}@media screen and (max-width:38em){.type-plugin #link-support{border-bottom:0;display:block;width:100%}.type-plugin #link-support a{padding-right:1.25rem}}.type-plugin span#developers:target~.entry-content #tab-changelog,.type-plugin span#developers:target~.entry-content #tab-developers,.type-plugin span#developers:target~.entry-content #tab-developers .plugin-development,.type-plugin span#developers:target~.entry-content #tab-developers~button,.type-plugin span#installation:target~.entry-content #tab-installation,.type-plugin span#releases:target~.entry-content #tab-releases,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~.entry-content #blocks,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~.entry-content #faq,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~.entry-content #screenshots,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~.entry-content #tab-description,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~.entry-content #tab-developers,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~.entry-content #tab-developers~button,.type-plugin span#reviews:target~.entry-content #tab-reviews{display:block}.type-plugin span#developers:target~.entry-content #tab-developers .plugin-contributors,.type-plugin span#installation:target~.entry-meta .plugin-contributors,.type-plugin span#releases:target~.entry-meta,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~.entry-content #tab-developers .plugin-development,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~.entry-meta .plugin-contributors,.type-plugin span#reviews:target~.entry-meta .plugin-contributors,.type-plugin span#reviews:target~.entry-meta .plugin-donate,.type-plugin span#reviews:target~.entry-meta .plugin-meta,.type-plugin span#reviews:target~.entry-meta .plugin-support{display:none}.type-plugin span#releases:target~.entry-content{width:100%}@media screen and (min-width:737px){.type-plugin .entry-content,.type-plugin .entry-meta{padding-left:0;padding-right:0}.type-plugin .entry-meta{float:right;width:30%}}.type-plugin .plugin-danger-zone h4{margin-top:var(--wp--preset--spacing--60)}.plugin-releases-listing{border-collapse:collapse;width:100%}.plugin-releases-listing tbody td:nth-child(4) div{font-size:14px}.plugin-releases-listing-actions{display:flex;flex-direction:column;gap:8px}@media screen and (min-width:34em){.plugin-releases-listing-actions{flex-direction:row}}.plugin-adopt-me{background:#e6f4fa;margin-top:36px;padding:12px}.plugin-adopt-me .widget-title{margin-top:0}.plugin-adopt-me p{margin-bottom:0}.widget.plugin-categorization{margin-top:var(--wp--style--block-gap)}.widget.plugin-categorization .widget-head h2{font-size:var(--wp--preset--font-size--heading-4);margin-bottom:.2rem;margin-top:0}.widget.plugin-categorization .widget-head a{font-size:var(--wp--preset--font-size--small)}.widget.plugin-categorization .widget-head a[href=""]{display:none}.widget.plugin-categorization p{font-size:var(--wp--preset--font-size--small);margin-top:.5rem}.widget.plugin-categorization~.plugin-meta li:first-child{border-top:1px solid var(--wp--preset--color--light-grey-1)}.committer-list,.support-rep-list{list-style:none;margin:0;padding:0}.committer-list li,.support-rep-list li{padding-bottom:.5rem}.committer-list li .remove,.support-rep-list li .remove{color:red;visibility:hidden}.committer-list li:hover .remove,.support-rep-list li:hover .remove{visibility:visible}.committer-list .avatar,.support-rep-list .avatar{float:left;margin-right:10px}.committer-list .spinner,.support-rep-list .spinner{position:relative}.committer-list .spinner:after,.support-rep-list .spinner:after{background:url(/wp-admin/images/spinner.gif) no-repeat 50%;background-size:20px 20px;content:"";display:block;height:20px;margin:-10px -10px 0 0;position:absolute;right:-50%;top:50%;transform:translateZ(0);width:20px}@media (min-resolution:120dpi),print{.committer-list .spinner:after,.support-rep-list .spinner:after{background-image:url(/wp-admin/images/spinner-2x.gif)}}.committer-list .new,.support-rep-list .new{margin-top:var(--wp--style--block-gap)}.plugin-contributors.read-more{border-bottom:1px solid var(--wp--preset--color--light-grey-1);max-height:200px;overflow:hidden;padding-bottom:1px}.plugin-contributors.read-more.toggled{max-height:none}.no-js .plugin-contributors.read-more{max-height:none;overflow:auto}.contributors-list{list-style-type:none;margin:0;padding:0}.contributors-list li{align-items:center;display:flex;margin-bottom:1rem}.contributors-list .avatar{float:left;margin-right:10px}.plugin-meta{font-size:var(--wp--preset--font-size--small);margin-top:var(--wp--style--block-gap)}.plugin-meta ul{list-style-type:none;margin:0;padding:0}.plugin-meta li{border-top:1px solid var(--wp--preset--color--light-grey-1);display:inline-block;padding:.5rem 0;position:relative;width:100%}.plugin-meta li strong{float:right;font-weight:500}.plugin-meta li .plugin-admin{font-size:var(--wp--preset--font-size--normal);font-weight:400}.plugin-meta li:first-child{border-top:0}.plugin-meta .languages,.plugin-meta .tags{float:right;text-align:right}.plugin-meta .tags{width:60%}.plugin-meta .languages button{font-size:var(--wp--preset--font-size--small);outline:revert}.plugin-meta .languages .popover{margin-top:8px}.plugin-meta .languages .popover-trigger{color:var(--wp--custom--link--color--text);text-decoration:underline}.plugin-meta .languages .popover-trigger:hover{text-decoration:underline}.plugin-meta [rel=tag]{background:var(--wp--preset--color--blueberry-4);border-radius:2px;color:var(--wp--preset--color--charcoal-1);display:inline-block;font-size:var(--wp--preset--font-size--extra-small);margin:2px;max-width:95%;overflow:hidden;padding:3px 6px;position:relative;text-decoration:none;text-overflow:ellipsis;white-space:nowrap;width:auto}.plugin-meta [rel=tag]:hover{text-decoration:underline}.popover{background-color:#fff;border:1px solid var(--wp--preset--color--light-grey-1);border-radius:2px;box-shadow:0 2px 10px #0000001a;display:none;left:0;margin-top:10px;max-width:300px;padding:1em 1em 2em;position:absolute;width:100%;z-index:100}.popover.is-top-right{left:auto;right:0}.popover.is-visible{display:block}.popover .popover-close{bottom:.5em;color:var(--wp--custom--link--color--text);font-size:small;position:absolute;right:.6em}.popover .popover-close:active,.popover .popover-close:focus,.popover .popover-close:hover{text-decoration:underline}.popover .popover-arrow{border:10px solid #0000;border-bottom:10px solid #ccc;border-top:none;height:0;position:absolute;right:20px;top:-10px;width:0;z-index:-1}.popover .popover-arrow:after{border:10px solid #0000;border-bottom:10px solid #fff;border-top:none;content:"";left:-10px;position:absolute;top:2px}.popover .popover-inner{text-align:left}.popover .popover-inner p:first-child{margin-top:0}.popover .popover-inner p:last-child{margin-bottom:0}.plugin-support .counter-container{margin-bottom:1rem;position:relative}.plugin-support .counter-back,.plugin-support .counter-bar{display:inline-block;height:30px;vertical-align:middle}.plugin-support .counter-back{background-color:var(--wp--preset--color--light-grey-2);width:100%}.plugin-support .counter-bar{background-color:var(--wp--preset--color--acid-green-2);display:block}.plugin-support .counter-count{font-size:var(--wp--preset--font-size--extra-small);left:8px;position:absolute;top:8px;width:100%;width:calc(100% - 8px)}@media screen and (min-width:737px){.plugin-support .counter-count{top:5px}}.home .widget,.widget-area.home .widget{display:inline-block;font-size:var(--wp--preset--font-size--small);margin:0;margin:var(--wp--style--block-gap);vertical-align:top;width:auto}@media screen and (min-width:737px){.home .widget,.widget-area.home .widget{margin:0;width:30%}.home .widget:first-child,.widget-area.home .widget:first-child{margin-right:5%}.home .widget:last-child,.widget-area.home .widget:last-child{margin-left:5%}}.home .widget select,.widget-area.home .widget select{max-width:100%}.entry-meta .widget-title{font-size:var(--wp--preset--font-size--heading-4)}body.single.single-plugin .entry-meta{font-size:var(--wp--preset--font-size--normal)}.widget-area{margin:0 auto;padding:var(--wp--preset--spacing--40) 0}.widget-area .widget-title{font-size:var(--wp--preset--font-size--heading-1);font-weight:var(--wp--custom--heading--typography--font-weight);margin-top:var(--wp--preset--spacing--50)}.widget-area .textwidget{text-wrap:pretty} \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/functions.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/functions.php index 37ee6f6bef..424fcce2c7 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/functions.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/functions.php @@ -28,15 +28,13 @@ require_once __DIR__ . '/src/blocks/plugin-card/index.php'; require_once __DIR__ . '/src/blocks/release-checks/index.php'; require_once __DIR__ . '/src/blocks/release-commits/index.php'; -require_once __DIR__ . '/src/blocks/release-confirmation/index.php'; -require_once __DIR__ . '/src/blocks/release-date/index.php'; require_once __DIR__ . '/src/blocks/release-draft/index.php'; -require_once __DIR__ . '/src/blocks/release-details-form/index.php'; -require_once __DIR__ . '/src/blocks/release-check-item/index.php'; +require_once __DIR__ . '/src/blocks/card/index.php'; +require_once __DIR__ . '/src/blocks/release-publish/index.php'; +require_once __DIR__ . '/src/blocks/release-result-item/index.php'; require_once __DIR__ . '/src/blocks/release-flags/index.php'; require_once __DIR__ . '/src/blocks/release-menu-options/index.php'; require_once __DIR__ . '/src/blocks/release-page/index.php'; -require_once __DIR__ . '/src/blocks/release-status/index.php'; // Block Configs require_once __DIR__ . '/inc/block-bindings.php'; @@ -463,29 +461,55 @@ function update_archive_description( $description ) { } add_filter( 'get_the_archive_description', __NAMESPACE__ . '\update_archive_description' ); + /** - * Generates a Trac changeset link for a plugin. + * Get's the plugin post object. * - * @param string $parent_id The plugin ID. - * @param string $previous_version The previous version of the plugin. - * @param string $current_version The current version of the plugin. Default is 'trunk'. + * @return WP_Post The plugin post object. + */ +function get_plugin() { + global $post; + + if ( 'plugin_release' === $post->post_type ) { + return get_post( $post->post_parent ); + } + + return $post; +} + +/** + * Filter the archive title to use custom string for business model. * - * @return string The Trac changeset link. + * @return string Plugin slug. */ -function get_trac_changeset_link( $parent_id, $previous_version, $current_version = 'trunk' ) { - $plugin = get_post( $parent_id ); +function get_plugin_slug() { + $plugin = get_plugin(); if ( ! $plugin ) { return ''; } + return $plugin->post_name; +} + +/** + * Generates a Trac changeset link for a plugin. + * + * @param string $previous_version The previous version of the plugin. + * @param string $current_version The current version of the plugin. Default is 'trunk'. + * + * @return string The Trac changeset link. + */ +function get_trac_changeset_link( $previous_version, $current_version = 'trunk' ) { + $plugin_slug = get_plugin_slug(); + $current_path = ( 'trunk' === $current_version ) ? 'trunk' : 'tags/' . $current_version; return sprintf( 'https://plugins.trac.wordpress.org/changeset?old_path=/%1$s/%2$s&new_path=/%1$s/tags/%3$s', - $plugin->post_name, + $plugin_slug, $current_path, $previous_version ); @@ -493,16 +517,17 @@ function get_trac_changeset_link( $parent_id, $previous_version, $current_versio /** * Get the releases for a plugin. - * - * @param WP_Post $parent_id The release post. + * * @return WP_Post[] The releases for the plugin. */ -function get_releases( $parent_id ) { +function get_releases() { + $plugin = get_plugin(); + $args = array( 'post_type' => 'plugin_release', 'posts_per_page' => -1, - 'post_parent' => $parent_id, + 'post_parent' => $plugin->ID, 'orderby' => 'date', 'order' => 'DESC', ); @@ -514,7 +539,7 @@ function get_releases( $parent_id ) { * Get the previous version of a plugin. * * @param WP_Post $release_post The current release post. - * @param WP_Post[] $release List of releases. + * @param WP_Post[] $releases List of releases. * * @return string|null The previous version of the plugin. */ @@ -549,7 +574,6 @@ function get_previous_version( $release_post, $releases ) { * @return WP_Post|null The latest release of the plugin. */ function get_latest_release( $plugin_id ) { - $releases = get_releases( $plugin_id ); if ( empty( $releases ) ) { @@ -575,8 +599,9 @@ function get_blueprint_url( $download_url ) { */ $blueprint = wp_json_encode( array( - 'login' => true, - 'steps' => array( + 'login' => true, + 'landingPage' => '/wp-admin/plugins.php', + 'steps' => array( array( 'step' => 'installPlugin', 'pluginData' => array( @@ -590,3 +615,151 @@ function get_blueprint_url( $download_url ) { return 'https://playground.wordpress.net/#' . base64_encode( $blueprint ); } + +/** + * Get the link to the revision log for a set of commits. + * + * @param array $commits The commits to get the log link for. + * + * @return string The link to the revision log. + */ +function get_revision_log_link( $commits ) { + $plugin_slug = get_plugin_slug(); + + $base_url = sprintf( + 'https://plugins.trac.wordpress.org/log/%s/trunk', + $plugin_slug + ); + + if ( count( $commits ) < 2 ) { + return $base_url; + } + + $latest_commit = reset( $commits ); + $earliest_commit = end( $commits ); + + return sprintf( + '%1$s?rev=%2$s&stop_rev=%3$s', + $base_url, + $latest_commit['revision'], + $earliest_commit['revision'], + ); +} + +/** + * Get the link to the revision log for a set of commits. + * + * @param array $commits The commits to get the log link for. + * + * @return string The link to the revision log. + */ +function get_revision_changeset_link( $commits ) { + global $post; + + $plugin_slug = get_plugin_slug(); + + if ( count( $commits ) < 2 ) { + return sprintf( + 'https://plugins.trac.wordpress.org/log/%s/trunk', + $plugin_slug + ); + } + + $latest_commit = reset( $commits ); + $earliest_commit = end( $commits ); + + return sprintf( + 'https://plugins.trac.wordpress.org/changeset?new=%2$s@%1$s/trunk&old=%3$s@%1$s/trunk', + $plugin_slug, + $earliest_commit['revision'], + $latest_commit['revision'], + ); +} + +/** + * Formats plugin check results into an HTML list. + * + * @param array $results The plugin check results. + * @return string HTML formatted results. + */ +function format_plugin_check_results( $results ) { + if ( empty( $results ) ) { + return '

    ' . __( 'No issues found.', 'wporg-plugins' ) . '

    '; + } + + $output = '
      '; + + foreach ( $results as $result ) { + $type_class = isset( $result['type'] ) ? strtolower( $result['type'] ) : ''; + + $output .= sprintf( + '
    • %1$s %2$s
    • ', + esc_html( $result['message'] ), + ! empty( $result['docs'] ) + ? sprintf( + '%s', + esc_url( $result['docs'] ), + __( 'More Information', 'wporg-plugins' ) + ) + : '' + ); + } + + $output .= '
    '; + + return $output; +} + +/** + * Get the test run message. + * + * @param object $plugin_check_errors The plugin check errors. + * + * @return string The test run message. + */ +function get_test_run_message( $plugin_check_errors ) { + $plugin_check_link = sprintf( + '%s', + esc_url( 'https://wordpress.org/plugins/plugin-check' ), + esc_html__( 'Plugin Check (PCP)', 'wporg-plugins' ) + ); + + if ( $plugin_check_errors['verdict'] ) { + return sprintf( + /* translators: %1$s is a link to the Plugin Check (PCP) tool. */ + __( '%1$s found no issues.', 'wporg-plugins' ), + $plugin_check_link + ); + } + + $result_count = count( $plugin_check_errors['results'] ); + $message = sprintf( + /* translators: %s number of issues reported from test. */ + _n( '%s issue', '%s issues', $result_count, 'wporg-plugins' ), + $result_count + ); + + return sprintf( + '
    %1$s%2$s
    ', + sprintf( + /* translators: %1$s is a link to the Plugin Check (PCP) tool. */ + __( '%1$s completed with %2$s.', 'wporg-plugins' ), + $plugin_check_link, + $message + ), + format_plugin_check_results( $plugin_check_errors['results'] ), + ); +} + +/** + * Get the download link for a plugin. + * + * @param string $version The version of the plugin to download. + * + * @return string The download link for the plugin. + */ +function get_download_link( $version ) { + $plugin = get_plugin(); + + return Template::download_link( $plugin , $version ); +} \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/inc/block-config.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/inc/block-config.php index e068abf643..e4a95e0aa5 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/inc/block-config.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/inc/block-config.php @@ -7,7 +7,6 @@ use WordPressdotorg\Plugin_Directory\Tools; -add_action( 'init', __NAMESPACE__ . '\handle_publish_action' ); add_filter( 'wporg_block_navigation_menus', __NAMESPACE__ . '\add_site_navigation_menus' ); add_filter( 'wporg_query_filter_options_sort', __NAMESPACE__ . '\wporg_query_filter_options_sort' ); add_filter( 'wporg_query_filter_options_business_model', __NAMESPACE__ . '\wporg_query_filter_options_business_model' ); @@ -31,14 +30,14 @@ function add_site_navigation_menus( $menus ) { $url = 'https://' . $_SERVER['HTTP_HOST'] . parse_url( $_SERVER['REQUEST_URI'], PHP_URL_PATH ); $items = array( - 'plugins' => array( + 'plugins' => array( array( 'label' => __( 'Submit a plugin', 'wporg-plugins' ), - 'url' => '/developers/', + 'url' => '/developers/', ), array( - 'label' => __( 'My favorites', 'wporg-plugins' ), - 'url' => '/browse/favorites/', + 'label' => __( 'My favorites', 'wporg-plugins' ), + 'url' => '/browse/favorites/', 'className' => 'has-separator', ), ), @@ -49,7 +48,7 @@ function add_site_navigation_menus( $menus ) { ), array( 'label' => __( 'Community', 'wporg-plugins' ), - 'url' => is_search() ? esc_url( get_search_link() . '?plugin_business_model=community' ) : esc_url( $url . '?plugin_business_model=community' ), + 'url' => is_search() ? esc_url( get_search_link() . '?plugin_business_model=community' ) : esc_url( $url . '?plugin_business_model=community' ), 'term' => get_term_by( 'slug', 'community', 'plugin_business_model' ), ), array( @@ -74,15 +73,15 @@ function add_site_navigation_menus( $menus ) { 'label' => __( 'Popular', 'wporg-plugins' ), 'term' => get_term_by( 'slug', 'popular', 'plugin_section' ), ),*/ - ) + ), ); if ( ! is_user_logged_in() ) { global $wp; - $redirect_url = home_url( $wp->request ); + $redirect_url = home_url( $wp->request ); $items['plugins'][] = array( 'label' => __( 'Log in', 'wporg-plugins' ), - 'url' => wp_login_url( $redirect_url ), + 'url' => wp_login_url( $redirect_url ), ); } @@ -108,7 +107,7 @@ function wporg_query_filter_options_sort() { global $wp_query; $orderby = strtolower( $wp_query->query['orderby'] ?? '' ); $order = strtolower( $wp_query->query['order'] ?? '' ); - $sort = $orderby . ( $order ? '_' . $order : '' ); + $sort = $orderby . ( $order ? '_' . $order : '' ); $options = array( 'relevance' => __( 'Relevance', 'wporg-plugins' ), @@ -140,7 +139,7 @@ function wporg_query_filter_options_sort() { 'key' => 'orderby', 'action' => '', 'options' => $options, - 'selected' => [ $sort ], + 'selected' => array( $sort ), ); } @@ -150,7 +149,7 @@ function wporg_query_filter_options_business_model() { 'commercial' => __( 'Commercial', 'wporg-plugins' ), 'community' => __( 'Community', 'wporg-plugins' ), ); - $label = __( 'Type', 'wporg-plugins' ); + $label = __( 'Type', 'wporg-plugins' ); if ( get_query_var( 'plugin_business_model' ) && isset( $options[ get_query_var( 'plugin_business_model' ) ] ) ) { $label = sprintf( __( 'Type: %s', 'wporg-plugins' ), $options[ get_query_var( 'plugin_business_model' ) ] ); } @@ -160,25 +159,25 @@ function wporg_query_filter_options_business_model() { 'title' => __( 'Type', 'wporg-plugins' ), 'key' => 'plugin_business_model', 'action' => '', - 'options' => $options , - 'selected' => [ get_query_var( 'plugin_business_model' ) ], + 'options' => $options, + 'selected' => array( get_query_var( 'plugin_business_model' ) ), ); } function wporg_query_filter_options_plugin_category() { - $options = []; + $options = array(); - foreach ( get_terms( 'plugin_category', [ 'hide_empty' => true ] ) as $term ) { + foreach ( get_terms( 'plugin_category', array( 'hide_empty' => true ) ) as $term ) { $options[ $term->slug ] = $term->name; } - + $count = count( (array) get_query_var( 'plugin_category' ) ); $label = sprintf( /* translators: The dropdown label for filtering, %s is the selected term count. */ _n( 'Categories %s', 'Categories %s', number_format_i18n( $count ), 'wporg-plugins' ), $count ); - + return array( 'label' => $label, 'title' => __( 'Category', 'wporg-plugins' ), @@ -229,10 +228,9 @@ function wporg_query_filter_in_form( $key ) { } // Temporary for feature flag - if ( isset( $_GET['show_filters'] ) ) { + if ( isset( $_GET['show_filters'] ) ) { echo ''; } - } function wporg_query_total_label( $label, $count ) { @@ -272,8 +270,8 @@ function wporg_query_total_label( $label, $count ) { */ function get_favorite_settings( $settings, $post_id ) { return array( - 'is_favorite' => Tools::favorited_plugin( $post_id ), - 'add_callback' => function( $_post_id ) { + 'is_favorite' => Tools::favorited_plugin( $post_id ), + 'add_callback' => function ( $_post_id ) { $result = (bool) Tools::favorite_plugin( $_post_id, get_current_user_id(), true ); // `favorite_plugin` can return false for a number of reasons (not logged in, no plugin found, ) if ( ! $result ) { @@ -281,7 +279,7 @@ function get_favorite_settings( $settings, $post_id ) { } return $result; }, - 'delete_callback' => function( $_post_id ) { + 'delete_callback' => function ( $_post_id ) { $result = (bool) Tools::favorite_plugin( $_post_id, get_current_user_id(), false ); // `favorite_plugin` can return false for a number of reasons (not logged in, no plugin found, ) if ( ! $result ) { @@ -313,7 +311,7 @@ function set_rating_data( $data, $post_id ) { /** * Why do we multiply the average rating by 20? - * The themes API does it this way, and the rating plugin was built to fit that. + * The themes API does it this way, and the rating plugin was built to fit that. * Instead of redoing everything, multiplying here keeps things simple and works well. * * @see theme-directory/class-themes-api.php for more info. @@ -321,10 +319,10 @@ function set_rating_data( $data, $post_id ) { $adjusted_rating = $rating * 20; return array( - 'rating' => $adjusted_rating, + 'rating' => $adjusted_rating, 'ratingsCount' => array_sum( $ratings ), - 'ratings' => $ratings, - 'supportUrl' => esc_url( 'https://wordpress.org/support/plugin/' . $post->post_name . '/reviews/' ) + 'ratings' => $ratings, + 'supportUrl' => esc_url( 'https://wordpress.org/support/plugin/' . $post->post_name . '/reviews/' ), ); } @@ -338,7 +336,8 @@ function filter_search_block( $block_content ) { // Remove the required attribute $block_content = preg_replace( '/(]*)\s+required\s*([^>]*)>/', '$1$2>', $block_content ); - /* Temporarily disable this until filters are enabled. + /* + Temporarily disable this until filters are enabled. // Insert the current query filters into the search form. ob_start(); wporg_query_filter_in_form( 's' ); @@ -368,9 +367,9 @@ function filter_site_title_block( $block_content ) { /** * Filter the navigation to add the current item indicator when no business model is selected. - * + * * @param string $block_content - * @param array $block + * @param array $block * @return string */ function filter_navigation_block( $block_content, $block ) { @@ -383,10 +382,10 @@ function filter_navigation_block( $block_content, $block ) { if ( get_query_var( 'plugin_business_model' ) ) { - // The menu doesn't select properly if viewing /tags/ or /browse/. + // The menu doesn't select properly if viewing /tags/ or /browse/. if ( get_query_var( 'browse' ) || get_query_var( 'plugin_tags' ) ) { $tags = new \WP_HTML_Tag_Processor( $block_content ); - + while ( $tags->next_tag( 'li' ) ) { $tags->set_bookmark( 'parent-li' ); $tags->next_tag( 'a' ); @@ -421,9 +420,9 @@ function filter_navigation_block( $block_content, $block ) { /** * Increase the visibilit of the language suggest bar to recruit translators on plugin page. - * + * * @see https://github.com/WordPress/wordpress.org/issues/301 - * + * * @param string $block_content * @return string */ @@ -438,21 +437,14 @@ function filter_language_suggest( $block_content ) { return $html->get_updated_html(); } -/** - * Handle form that publishes or discards a release. - */ -function handle_publish_action() { - if ( isset( $_POST['publish_release_nonce'] ) && wp_verify_nonce( $_POST['publish_release_nonce'], 'publish-release-action' ) ) { - if ( 'publish' === $_POST['action'] ) { - var_dump('publish: not yet implemented'); - } elseif ('discard' === $_POST['action']) { - var_dump('discard: not yet implemented'); - } - } -} - /* * Filter the query to show only the children of the plugin. + * + * @param array $query The query arguments. + * @param string $block The block name. + * @param WP_Post $page The current page. + * + * @return array */ function modify_block_query_var( $query, $block, $page ) { if ( 'plugin_release' !== $query['post_type'] ) { diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/patterns/releases-list.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/patterns/releases-list.php new file mode 100644 index 0000000000..4dd778abe5 --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/patterns/releases-list.php @@ -0,0 +1,49 @@ + + + +
    + + +
    + +
    + +
    + + +
    + + + +
    + +
    + +
    + + +
    + + + + + + + + + + +

    + + + +
    + diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-details-form/block.json b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/card/block.json similarity index 67% rename from wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-details-form/block.json rename to wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/card/block.json index f0634c46e0..be5a2f5c8f 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-details-form/block.json +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/card/block.json @@ -1,14 +1,19 @@ { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 2, - "name": "wporg/release-details-form", + "name": "wporg/card", "version": "0.1.0", - "title": "Release Details Form", + "title": "Release Card", "category": "design", "icon": "", - "description": "A block to display release details form.", + "description": "A block to display a card.", "textdomain": "wporg", - "attributes": {}, + "attributes": { + "title": { + "type": "string", + "default": "" + } + }, "supports": { "html": false, "interactivity": true diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-check-item/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/card/index.js similarity index 100% rename from wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-check-item/index.js rename to wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/card/index.js diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-date/index.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/card/index.php similarity index 66% rename from wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-date/index.php rename to wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/card/index.php index 0f4c00008a..2e69df2f57 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-date/index.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/card/index.php @@ -1,12 +1,12 @@ +
    + +

    + {$block->attributes['title']} +

    + + $content +
    + +HTML; + +$output = sprintf( + '
    %2$s
    ', + wp_kses_data( get_block_wrapper_attributes() ), + $html, +); + +echo do_blocks( $output ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/card/style.scss b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/card/style.scss new file mode 100644 index 0000000000..383d5f834b --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/card/style.scss @@ -0,0 +1,4 @@ +.wp-block-wporg-release-draft { + font-size: var(--wp--preset--font-size--small); + +} \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-checks/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-checks/render.php index b7a4b97b90..de7a1aa6b5 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-checks/render.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-checks/render.php @@ -1,8 +1,12 @@ ' . __( 'No issues found.', 'wporg-plugins' ) . '

    '; - } - - $output = '
      '; - - foreach ( $results as $result ) { - $type_class = isset( $result['type'] ) ? strtolower( $result['type'] ) : ''; - - $output .= sprintf( - '
    • %1$s %2$s
    • ', - esc_html( $result['message'] ), - ! empty( $result['docs'] ) - ? sprintf( - '%s', - esc_url( $result['docs'] ), - __( 'More Information', 'wporg-plugins' ) - ) - : '' - ); - } - - $output .= '
    '; - - return $output; -} - -/** - * Get the counts of each error type. - * - * @param array $result The plugin check result. - * - * @return array Array of error type counts. - */ -function get_error_type_counts( $result ) { - return array_reduce( - $result ?? array(), - function ( $carry, $item ) { - if ( isset( $item['type'] ) ) { - $carry[ $item['type'] ] = ( $carry[ $item['type'] ] ?? 0 ) + 1; - } - return $carry; - }, - array( - 'ERROR' => 0, - 'WARNING' => 0, - ) - ); -} - -/** - * Get the test run message. - * - * @param object $plugin_check_errors The plugin check errors. - * - * @return string The test run message. - */ -function get_test_run_message( $plugin_check_errors ) { - - $plugin_check_link = sprintf( - '%s', - esc_url( 'https://wordpress.org/plugins/plugin-check' ), - esc_html__( 'Plugin Check (PCP)', 'wporg-plugins' ) - ); - - if ( $plugin_check_errors->verdict ) { - return sprintf( - /* translators: %1$s is a link to the Plugin Check (PCP) tool. */ - __( 'Passed the %1$s.', 'wporg-plugins' ), - $plugin_check_link - ); - } - - $counts = get_error_type_counts( $plugin_check_errors['results'] ); - - $error_message = sprintf( _n( '%s error', '%s errors', $counts['ERROR'], 'wporg-plugins' ), $counts['ERROR'] ); - $warning_message = sprintf( _n( '%s warning', '%s warnings', $counts['WARNING'], 'wporg-plugins' ), $counts['WARNING'] ); - $message = ''; - - if ( empty( $counts['ERROR'] ) ) { - $message = $warning_message; - } elseif ( empty( $counts['WARNING'] ) ) { - $message = $error_message; - } else { - /* translators: %1$s: number of errors, %2$s: number of warnings */ - $message = sprintf( - '%1$s and %2$s', - $error_message, - $warning_message - ); - } - - return sprintf( - '
    %1$s%2$s
    ', - sprintf( - /* translators: %1$s is a link to the Plugin Check (PCP) tool. */ - __( '%1$s completed with %2$s.', 'wporg-plugins' ), - $plugin_check_link, - $message - ), - format_plugin_check_results( $plugin_check_errors['results'] ), - ); -} - $plugin_check_errors = get_post_meta( get_post( $block->context['postId'] )->ID, 'plugin_check_result', true ); $heading = sprintf( @@ -143,8 +36,8 @@ function get_test_run_message( $plugin_check_errors ) { // Create a block with the overall status. $status_block = sprintf( - '%2$s', - $plugin_check_errors->verdict ? 'success' : 'error', + '%2$s', + $plugin_check_errors['verdict'] ? 'success' : 'warning', get_test_run_message( $plugin_check_errors ) ); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-commits/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-commits/render.php index 1f7388593b..827e1b442e 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-commits/render.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-commits/render.php @@ -6,10 +6,7 @@ */ use WordPressdotorg\Plugin_Directory\Readme\Validator as Readme_Validator; - -if ( ! current_user_can( 'plugin_admin_edit', $post ) ) { - return; -} +use function WordPressdotorg\Plugin_Directory\Theme\{get_plugin_slug, get_revision_log_link}; if ( ! $block->context['postId'] ) { return; @@ -21,79 +18,16 @@ return '

    ' . __( 'No commits found.', 'wporg-plugins' ) . '

    '; } -/** - * Count the number of files edited, added, and deleted in the given commits. - * - * @param array $commits Array of commits. - * @return array Associative array with keys 'edited', 'added', and 'deleted'. - */ -function count_file_changes( $commits ) { - $file_actions = array(); - - ksort( $commits ); - - foreach ( $commits as $commit ) { - if ( ! isset( $commit['actions'] ) || ! is_array( $commit['actions'] ) ) { - continue; - } - - foreach ( $commit['actions'] as $file_path => $action ) { - $file_actions[ $file_path ] = $action; - } - } - - $edited_files = array(); - $added_files = array(); - $deleted_files = array(); - - foreach ( $file_actions as $file_path => $action ) { - switch ( $action ) { - case 'M': - $edited_files[ $file_path ] = true; - break; - case 'A': - $added_files[ $file_path ] = true; - break; - case 'D': - $deleted_files[ $file_path ] = true; - break; - } - } - - return array( - 'edited' => count( $edited_files ), - 'added' => count( $added_files ), - 'deleted' => count( $deleted_files ), - ); -} - -/** - * Generate a summary of the changes made in the given commits. - * - * @param array $change_counts Associative array with keys 'edited', 'added', and 'deleted'. - * @return string Summary of the changes. - */ -function generate_summary( $change_counts ) { - $parts = array(); - - if ( $change_counts['added'] > 0 ) { - $parts[] = sprintf( '%d added', $change_counts['added'] ); - } - - if ( $change_counts['deleted'] > 0 ) { - $parts[] = sprintf( '%d deleted', $change_counts['deleted'] ); - } - - if ( $change_counts['edited'] > 0 ) { - $parts[] = sprintf( '%d edited', $change_counts['edited'] ); +// Newest commits first. +usort( + $commits, + function ( $a, $b ) { + return $b['date'] <=> $a['date']; } +); - if ( empty( $parts ) ) { - return ''; - } - - return implode( ', ', $parts ); -} +$maximum_commits = 5; +$sliced_commits = array_slice( $commits, 0, $maximum_commits ); ?> @@ -107,54 +41,59 @@ function generate_summary( $change_counts ) { esc_attr__( 'Commits', 'wporg-plugins' ) ); - $change_counts = count_file_changes( $commits ); - $summary = generate_summary( $change_counts ); - - $subheading = sprintf( - ' - - ', - $summary - ); - echo do_blocks( $heading ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped - echo do_blocks( $subheading ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?> -
      +
      • - - ID, 20 ); ?> - display_name ); ?> - - context['postId'] ); - $parent_post = get_post( $release_post->post_parent ); + printf( + '%2$s', + esc_url( + sprintf( + 'https://plugins.trac.wordpress.org/changeset/%1$s/%2$s/trunk', + $commit['revision'], + get_plugin_slug() + ) + ), + esc_html( $commit['message'] ) + ); + ?> + - if ( $parent_post ) { + -
      • + + + $maximum_commits ) : ?> +
      • + + + +
      • +
    diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-commits/style.scss b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-commits/style.scss index 90f8d10051..dde5a9ffd6 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-commits/style.scss +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-commits/style.scss @@ -1,16 +1,17 @@ .wp-block-wporg-release-commits { margin-top: 0 !important; +} - ul { - display: flex; - flex-direction: column; - gap: 8px; - list-style: none; - } +.wp-block-wporg-release-commit-list { + display: flex; + flex-direction: column; + gap: 8px; + list-style: none; li { display: flex; - gap: 8px; + gap: inherit; + align-items: center; } } @@ -19,4 +20,13 @@ align-items: center; gap: 8px; font-weight: 500; +} + +.wp-block-wporg-release-commit-by-line { + color: var(--wp--preset--color--charcoal-4) !important; + font-size: 12px; + + a { + color: var(--wp--preset--color--charcoal-4) !important; + } } \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-confirmation/index.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-confirmation/index.php deleted file mode 100644 index 8e7d5b81af..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-confirmation/index.php +++ /dev/null @@ -1,22 +0,0 @@ -context['postId'] ) { - return; -} - -$release_post = get_post( $block->context['postId'] ); -if ( ! $release_post ) { - return; -} - -?> -
    > - - - -
    -

    - - - -

    - - - -
    -
    - -
    - -
    - -
    -
    - - -
    - -
    diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-confirmation/style.scss b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-confirmation/style.scss deleted file mode 100644 index cd1d58a3aa..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-confirmation/style.scss +++ /dev/null @@ -1,4 +0,0 @@ -.wp-block-wporg-release-confirmation .wporg-release-confirmation-actions { - display: flex; // I'm not sure why they are not working. - gap: 8px; -} \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-date/block.json b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-date/block.json deleted file mode 100644 index f27b4236b9..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-date/block.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "$schema": "https://schemas.wp.org/trunk/block.json", - "apiVersion": 2, - "name": "wporg/release-date", - "version": "0.1.0", - "title": "Release Date", - "category": "design", - "icon": "", - "description": "A block to display release date.", - "textdomain": "wporg", - "attributes": {}, - "supports": { - "html": false - }, - "usesContext": [ "postId" ], - "editorScript": "file:./index.js", - "render": "file:./render.php", - "style": "file:./style-index.css" -} \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-date/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-date/index.js deleted file mode 100644 index 9e4580b21f..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-date/index.js +++ /dev/null @@ -1,27 +0,0 @@ -/** - * WordPress dependencies - */ -import { Disabled } from '@wordpress/components'; -import { registerBlockType } from '@wordpress/blocks'; -import ServerSideRender from '@wordpress/server-side-render'; -import { useBlockProps } from '@wordpress/block-editor'; - -/** - * Internal dependencies - */ -import metadata from './block.json'; - -function Edit( { attributes, name } ) { - return ( -
    - - - -
    - ); -} - -registerBlockType( metadata.name, { - edit: Edit, - save: () => null, -} ); \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-date/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-date/render.php deleted file mode 100644 index 9a98437739..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-date/render.php +++ /dev/null @@ -1,16 +0,0 @@ -context['postId'] ) { - return; -} - -$post = get_post( $block->context['postId'] ); -if ( ! $post ) { - return; -} - -if ( 'publish' !== $post->post_status ) { - return 3; -} - -echo do_blocks( '' ); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-details-form/index.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-details-form/index.php deleted file mode 100644 index d2b7cbe0a4..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-details-form/index.php +++ /dev/null @@ -1,22 +0,0 @@ -context['postId'] ); +$plugin_post = get_post( $block->context['postId'] ); -if ( ! $post ) { +if ( ! $plugin_post ) { return; } -// get release for the post +/** + * We are in the context of the plugin post, so we can query for the latest draft post. + */ $query_args = array( 'post_type' => 'plugin_release', 'posts_per_page' => 1, - 'post_parent' => $post->ID, + 'post_parent' => $plugin_post->ID, 'orderby' => 'date', 'post_status' => 'draft', 'order' => 'DESC', @@ -32,82 +39,39 @@ // Fetch the latest draft post. $latest_draft_query->the_post(); -$post_title = __( 'Trunk', 'wporg-plugins' ); -$intro_text = __( 'There are unpublished changes in your trunk folder.', 'wporg-plugins' ); -$publish_title = __( 'Create release', 'wporg-plugins' ); -$publish_intro_text = __( 'Before releasing your plugin, take a moment to verify and update the following values:', 'wporg-plugins' ); -$publish_button_text = __( 'Create release', 'wporg-plugins' ); +$post_title = __( 'Trunk', 'wporg-plugins' ); +$intro_text = __( 'There are unpublished changes in your trunk folder.', 'wporg-plugins' ); +$button_text = __( 'Create release', 'wporg-plugins' ); +$publish_title = __( 'Create release', 'wporg-plugins' ); $markup = << - -
    - -
    - -
    +
    + + +

    $intro_text

    + - -
    - -

    - $post_title -

    - - -
    - + + - -

    $intro_text

    - - -
    - -
    - - - -
    - - -
    - -
    + +
    -
    - +
    -
    - -
    - -
    - -

    - $publish_title -

    - -
    - - - -

    $publish_intro_text

    - - - -
    - +
    + + +
    - HTML; printf( diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-draft/style.scss b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-draft/style.scss index a7adf4781e..383d5f834b 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-draft/style.scss +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-draft/style.scss @@ -1,11 +1,4 @@ .wp-block-wporg-release-draft { font-size: var(--wp--preset--font-size--small); - ul { - margin-top: var(--wp--preset--spacing--10); - padding: 0; - display: flex; - flex-direction: column; - gap: 12px; - } } \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-menu-options/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-menu-options/render.php index 4eda65229d..61f288f3e5 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-menu-options/render.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-menu-options/render.php @@ -1,7 +1,11 @@ context['postId'] ) { return; @@ -13,43 +17,41 @@ } $current_version = get_post_meta( $release_post->ID, 'release_version', true ); - -$download_link = sprintf( +$download_link = get_download_link( $release_post->post_parent, $current_version ); +$download_link_html = sprintf( '', - esc_html( 'Download', 'wporg-plugins' ), - esc_url( get_blueprint_url( Template::download_link( $release_post->post_parent, $current_version ) ) ) + __( 'Download', 'wporg-plugins' ), + esc_url( $download_link ) ); -$blueprint_link = sprintf( +$blueprint_link_html = sprintf( '', - esc_html( 'Load in Playground', 'wporg-plugins' ), - esc_url( $encoded_blueprint_url ) + __( 'Load in Playground', 'wporg-plugins' ), + esc_url( get_blueprint_url( get_download_link( $current_version ) ) ) ); -$changes_link = ''; -$releases = get_releases( $release_post->post_parent ); +$changes_link_html = ''; +$releases = get_releases(); $previous_version = get_previous_version( $release_post, $releases ); if ( null !== $previous_version ) { - $changes_link = sprintf( + $changes_link_html = sprintf( '', - esc_html( 'View changes', 'wporg-plugins' ), - esc_url( get_trac_changeset_link( $release_post->post_parent, $previous_version, $current_version ) ) + __( 'View changes', 'wporg-plugins' ), + esc_url( get_trac_changeset_link( $previous_version, $current_version ) ) ); } -$submenu = sprintf( - '%2$s%3$s%4$s', - esc_html( 'Release options', 'wporg-plugins' ), - $download_link, - $blueprint_link, - $changes_link -); - $navigation = sprintf( '%2$s', - esc_html( 'Release options', 'release options label', 'wporg-plugins' ), - $submenu + __( 'Release options', 'wporg-plugins' ), + sprintf( + '%2$s%3$s%4$s', + __( 'Release options', 'wporg-plugins' ), + $download_link_html, + $blueprint_link_html, + $changes_link_html + ) ); -echo do_blocks( $navigation ); +echo do_blocks( $navigation ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-page/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-page/render.php index 878b57533b..f939f21d4b 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-page/render.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-page/render.php @@ -1,88 +1,55 @@ context['postId'] ) { return; } -$release_post = get_post( $post->ID ); +$plugin_post = get_post( $block->context['postId'] ); -if ( ! $release_post ) { +if ( ! $plugin_post ) { return; } -// Why use `do_blocks` here? for some reason, just outputting the content directly doesn't work and context gets messed up. +$heading_text = __( 'Releases', 'wporg-plugins' ); + $markup = << -

    Releases

    +

    $heading_text

    -
    - - - - - - -
    - - -
    - -
    - -
    - - -
    - - - -
    - -
    - -
    - - -
    - - - - - - - - - - -

    There are no releases yet

    - - +
    + + + -
    - +
    HTML; - -// Interactivity API context -$form_context = array( - 'btnDefaultText' => 'Publish release', - 'btnLoadingText' => 'Publishing...', - 'preSubmitting' => false, - 'isWaiting' => false, - 'isComplete' => false, - 'errorMessage' => '', - 'pluginSlug' => $release_post->post_name, - 'nonce' => wp_create_nonce( 'wp_rest' ) +/** + * Create initial state for the async-action-block. + */ +wp_interactivity_state( + 'async-action-block', + array( + 'isCreatingRelease' => false, + ) ); +/** + * Create initial context for the async-action-block. + */ + printf( - '
    %4$s
    ', - 'data-wp-interactive="async-action-block"', + '
    %3$s
    ', wp_kses_data( get_block_wrapper_attributes() ), - wp_interactivity_data_wp_context( $form_context ), // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped + 'data-wp-interactive="async-action-block"', do_blocks( $markup ) // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-page/view.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-page/view.js index 90ba4e75a9..5047ca83e2 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-page/view.js +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-page/view.js @@ -4,17 +4,10 @@ import { store, getContext } from '@wordpress/interactivity'; const { state } = store('async-action-block', { - state: { - get btnText() { - const { btnDefaultText, btnLoadingText } = getContext(); - - return state.isWaiting ? btnLoadingText : btnDefaultText; - }, - }, actions: { handlePreSubmit(event) { event.preventDefault(); - state.preSubmitting = true; + state.isCreatingRelease = true; const element = document.querySelector( '.wp-block-wporg-release-page' @@ -27,49 +20,5 @@ const { state } = store('async-action-block', { }); } }, - handleBackClick(event) { - event.preventDefault(); - state.preSubmitting = false; - }, - *handleSubmit(event) { - // Prevent default form submission - event.preventDefault(); - - debugger; - - // Set waiting state - state.isWaiting = true; - state.errorMessage = ''; - - const { pluginSlug, nonce, homeUrl } = getContext(); - - try { - const response = yield fetch( - '/plugins/wp-json/plugins/v2/plugin/clapback/release', - { - method: 'POST', - headers: { - 'Content-Type': 'application/json', - 'X-WP-Nonce': nonce, - }, - body: JSON.stringify({ - plugin_slug: pluginSlug, - }), - } - ); - - const data = yield response.json(); - - // Update state based on response - if (data.success) { - } else { - state.errorMessage = data.message || 'Action failed'; - } - } catch (error) { - state.errorMessage = 'Network error occurred'; - } finally { - state.isWaiting = false; - } - }, }, }); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-confirmation/block.json b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-publish/block.json similarity index 55% rename from wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-confirmation/block.json rename to wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-publish/block.json index 89f4a9bf8b..72cf2534ae 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-confirmation/block.json +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-publish/block.json @@ -1,20 +1,21 @@ { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 2, - "name": "wporg/release-confirmation", + "name": "wporg/release-publish", "version": "0.1.0", - "title": "Release Confirmation Banner.", + "title": "Release Publish", "category": "design", "icon": "", - "description": "A block to display release confirmation banner.", + "description": "A block to display release publish view.", "textdomain": "wporg", "attributes": {}, "supports": { "html": false, "interactivity": true }, - "usesContext": [ "postId" ], + "usesContext": [ "postId", "pluginSlug" ], "editorScript": "file:./index.js", "render": "file:./render.php", - "style": "file:./style-index.css" + "style": "file:./style-index.css", + "viewScriptModule": "file:./view.js" } \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-confirmation/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-publish/index.js similarity index 100% rename from wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-confirmation/index.js rename to wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-publish/index.js diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-status/index.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-publish/index.php similarity index 74% rename from wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-status/index.php rename to wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-publish/index.php index 20c2397bf2..52957ada81 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-status/index.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-publish/index.php @@ -1,12 +1,12 @@ context['postId'] ) ) { + return; +} + +$release_post = get_post( $block->context['postId'] ); + +// Bail if the release post does not exist. +if ( ! $release_post ) { + return; +} + +$current_version = get_post_meta( $block->context['postId'], 'release_version', true ); +$tested_up_to = '6.7';// get_post_meta( $block->context['postId'], 'release_tested', true ); + +/** + * Returns whether the tested_up_to value is recent. + * + * @param string $tested_up_to The tested up to value. + * + * @return bool Whether the tested up to value is recent. + */ +function has_recently_been_tested( $tested_up_to ) { + global $wp_version; + + // If the tested up to value is empty, it's not recent. + if ( empty( $tested_up_to ) ) { + return false; + } + + $latest_release = $wp_version; + + if ( defined( 'WP_CORE_STABLE_BRANCH' ) ) { + $latest_release = WP_CORE_STABLE_BRANCH; + } + + $tested_major = (int) explode( '.', $tested_up_to )[0]; + $latest_major = (int) explode( '.', $latest_release )[0]; + + return $tested_major >= $latest_major; +} + +/** + * Generate the HTML for a release item content block. + * + * @param string $label The label for the item. + * @param string $content The additional content or description. + * @return string The formatted HTML content for the release item. + */ +function get_release_item_content( $label, $content ) { + return sprintf( + '
    %1$s
    %2$s
    ', + esc_html( $label ), + wp_kses_post( $content ) + ); +} + +/** + * Generate a release check item block with a specific status. + * + * @param string $status The status of the check item ('success' or 'error'). + * @param string $content The content to display inside the block. + * @return string The formatted block content. + */ +function get_release_check_item( $status, $content ) { + return do_blocks( + sprintf( + '%2$s', + esc_attr( $status ), + $content + ) + ); +} + +/** + * Generate the block content for the version number check item. + * + * @param bool $verdict Whether the version number is valid. + * @param string $value The current version number. + * + * @return string The block content. + */ +function get_changelog_check_item() { + $label = __( 'Update your changelog with key changes.', 'wporg-plugins' ); + $info_text = sprintf( + 'Learn more about writing useful changelogs.', + esc_url( 'https://developer.wordpress.org/plugins/wordpress-org/plugin-developer-faq/#what-should-be-in-my-changelog' ), + ); + + $content = get_release_item_content( $label, $info_text ); + + return get_release_check_item( 'default', $content ); +} + +/** + * Generate the block content for the version number check item. + * + * @param bool $verdict Whether the version number is valid. + * @param string $value The current version number. + * + * @return string The block content. + */ +function get_view_diff_check_item( $post ) { + $label = __( 'Review your changes.', 'wporg-plugins' ); + $commits = get_post_meta( $post->ID, 'release_commit_log', true ); + $info_text = sprintf( + /* translators: %s: URL to the plugin in the Plugin Directory */ + __( 'Double-check your changeset before publishing.', 'wporg-plugins' ), + esc_url( get_revision_changeset_link( $commits ) ) + ); + $content = get_release_item_content( $label, $info_text ); + + return get_release_check_item( 'default', $content ); +} + +/** + * Generate the block content for the version number check item. + * + * @param bool $verdict Whether the version number is valid. + * @param string $value The current version number. + * + * @return string The block content. + */ +function get_version_number_check_item( $verdict, $value ) { + $label = __( 'Increment your version number.', 'wporg-plugins' ); + + $info_text = sprintf( + /* translators: %s: The current version number */ + __( 'New version: %s', 'wporg-plugins' ), + '' . $value . '', + ); + + $status = ''; + + if ( ! $verdict ) { + $status = 'error'; + $info_text = sprintf( + /* translators: %s: The current version number */ + __( 'Your plugin\'s version number %s must be incremented before you can publish.', 'wporg-plugins' ), + '' . $value . '', + ); + } + + $content = get_release_item_content( $label, $info_text ); + + return get_release_check_item( $status, $content ); +} + +/** + * Generate the block content for the "Tested up to" check item. + * + * @param bool $verdict Whether the tested up to value is recent. + * @param string $value The tested up to value. + * + * @return string The block content. + */ +function get_tested_up_to_check_item( $verdict, $value ) { + $label = __( + 'Test your plugin with the latest version of WordPress.', + 'wporg-plugins' + ); + $status = ''; + + $info_text = sprintf( + /* translators: %s: The Tested Up to value */ + __( 'Tested up to: %s', 'wporg-plugins' ), + '' . $value . '', + ); + + if ( empty( $value ) ) { + $value = __( 'Unknown', 'wporg-plugins' ); + $status = 'error'; + $info_text = __( 'We weren\'t able to determine your "Tested up to" value.', 'wporg-plugins' ); + } elseif ( ! $verdict ) { + $status = 'warning'; + $info_text = sprintf( + /* translators: %s: URL to the plugin in the Plugin Directory */ + __( 'Tested up to is %1$s. Test it now in Playground and update your readme.txt. ', 'wporg-plugins' ), + '' . $value . '', + esc_url( + get_blueprint_url( + sprintf( + 'https://downloads.wordpress.org/plugin/%s.zip', + get_plugin_slug(), + ) + ) + ) + ); + } + + $content = get_release_item_content( $label, $info_text ); + + return get_release_check_item( $status, $content ); +} + +$latest_release = get_latest_release( $release_post->post_parent ); +$last_version = get_post_meta( $latest_release->ID, 'release_version', true ); +$version_pass = version_compare( $current_version, $last_version, '>' ); +$tested_up_to_pass = has_recently_been_tested( $tested_up_to ); + +$plugin_slug = get_plugin_slug(); +$form_context = array( + 'pluginSlug' => $plugin_slug, + 'nonce' => wp_create_nonce( 'wp_rest' ), + 'apiURL' => esc_url( rest_url( 'plugins/v2/plugin/' . $plugin_slug . '/publish' ) ), +); + +/** + * Create initial state for the async-action-block. + */ +wp_interactivity_state( + 'async-action-block', + array( + 'hasConfirmed' => false, + 'isPublishing' => false, + 'isPublished' => false, + 'hasError' => false, + 'errorMessage' => '', + ) +); + +?> + +
    + + > +
    + +

    %s

    + ', + __( 'Before releasing your plugin, make sure everything is up-to-date and ready for your users:', 'wporg-plugins' ) + ), + ); + ?> + +
    + +

    %s

    + ', + esc_html__( 'Checklist', 'wporg-plugins' ) + ) + ) + ?> +
      + + + + +
    + +
    + + +
    + +
    +
    + +
    + +
    + +
    +
    +
    +
    + +
    +
    + + +
    +
    + + +
    +

    +

    + +
    +
    + + + +
    +
    +
    + +
    + +
    +
    +

    +
    + ' + ); + ?> +
    +
    diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-publish/style.scss b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-publish/style.scss new file mode 100644 index 0000000000..c5b469231f --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-publish/style.scss @@ -0,0 +1,29 @@ +.wp-block-wporg-release-publish { + label { + display: block; + } + + .wp-block-wporg-release-result-item > div:last-child > div { + color: var(--wp--preset--color--charcoal-4); + } +} + +.wp-block-wporg-release-publish-user-confirm { + margin-top: var(--wp--preset--spacing--20); +} + +.wp-block-wporg-release-publish-actions { + display: flex; + margin-top: var(--wp--preset--spacing--20); + gap: 8px; + + button[disabled] { + opacity: 0.5; + } +} + +.wp-block-wporg-release-publish-spinner { + align-items: center; + display: flex; + gap: 6px; +} diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-publish/view.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-publish/view.js new file mode 100644 index 0000000000..8e18cb48f0 --- /dev/null +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-publish/view.js @@ -0,0 +1,78 @@ +/** + * WordPress dependencies + */ +import { store, getContext } from '@wordpress/interactivity'; + +const { state } = store('async-action-block', { + state: { + get userHasConfirmed() { + return state.hasConfirmed; + }, + get isDefaultState() { + return ! state.isPublishing && !state.isPublished && !state.hasError; + }, + get isPublishingState() { + return state.isPublishing; + }, + get isPublishedState() { + return state.isPublished; + }, + }, + actions: { + handleReleaseConfirm() { + state.hasConfirmed = !state.hasConfirmed; + }, + handleBackClick(event) { + event.preventDefault(); + state.isCreatingRelease = false; + + // Make user reconfirm. + state.hasConfirmed = false; + }, + handlePageReload() { + window.location.reload(); + }, + *handleSubmit(event) { + event.preventDefault(); + + state.isPublishing = true; + state.errorMessage = ''; + + const { pluginSlug, nonce, apiURL } = getContext(); + + try { + const response = yield fetch( + apiURL, + { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + 'X-WP-Nonce': nonce, + }, + body: JSON.stringify({ + plugin_slug: pluginSlug, + }), + } + ); + + if( ! response.ok ) { + try { + const error = yield response.json(); + throw new Error( error.message ); + } catch ( error ) { // Handle cases where json is not returned, like a gateway timeout. + throw new Error( 'An error occurred while publishing the release.' ); + } + } + + state.isPublished = true; + + } catch (error) { + state.errorMessage = error.message; + state.hasError = true; + state.isPublishing = false; + } finally { + state.isPublishing = false; + } + }, + } +}); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-check-item/block.json b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-result-item/block.json similarity index 63% rename from wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-check-item/block.json rename to wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-result-item/block.json index 4751ae42a8..047300ee75 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-check-item/block.json +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-result-item/block.json @@ -1,18 +1,17 @@ { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 2, - "name": "wporg/release-check-item", + "name": "wporg/release-result-item", "version": "0.1.0", - "title": "Release Check Item", + "title": "Release Result Item", "category": "design", "icon": "", - "description": "A block to display release draft check item.", + "description": "A block to display release draft result item.", "textdomain": "wporg", "attributes": { "status": { "type": "string", - "enum": [ "error", "warning", "success" ], - "default": "success" + "enum": [ "error", "warning", "success" ] } }, "supports": { diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-details-form/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-result-item/index.js similarity index 100% rename from wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-details-form/index.js rename to wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-result-item/index.js diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-check-item/index.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-result-item/index.php similarity index 72% rename from wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-check-item/index.php rename to wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-result-item/index.php index fec62da587..d8c72264cd 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-check-item/index.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-result-item/index.php @@ -1,12 +1,12 @@ > +
    + attributes['status'] ) : ?> + + + + + + attributes['status'] ) : ?> + + + + attributes['status'] ) : ?> + + + + + + + +
    + + inner_html ); ?> + diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-check-item/style.scss b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-result-item/style.scss similarity index 51% rename from wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-check-item/style.scss rename to wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-result-item/style.scss index beed3b601f..0e833b1c26 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-check-item/style.scss +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-result-item/style.scss @@ -1,6 +1,6 @@ -.wp-block-wporg-release-check-item { +.wp-block-wporg-release-result-item { display: flex; - margin: 0 !important; + margin: 0 0 12px !important; position: relative; gap: 8px; list-style: none; @@ -11,3 +11,7 @@ align-items: center; } } + +ul .wp-block-wporg-release-result-item:last-child { + margin-bottom: 0; +} diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-status/block.json b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-status/block.json deleted file mode 100644 index 45fe373ab2..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-status/block.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "$schema": "https://schemas.wp.org/trunk/block.json", - "apiVersion": 2, - "name": "wporg/release-status", - "version": "0.1.0", - "title": "Release Status", - "category": "design", - "icon": "", - "description": "A block to display release status.", - "textdomain": "wporg", - "attributes": {}, - "supports": { - "html": false - }, - "usesContext": [ "postId" ], - "editorScript": "file:./index.js", - "render": "file:./render.php", - "style": "file:./style-index.css" -} \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-status/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-status/index.js deleted file mode 100644 index a52cd322ed..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-status/index.js +++ /dev/null @@ -1,28 +0,0 @@ -/** - * WordPress dependencies - */ -import { Disabled } from '@wordpress/components'; -import { registerBlockType } from '@wordpress/blocks'; -import ServerSideRender from '@wordpress/server-side-render'; -import { useBlockProps } from '@wordpress/block-editor'; - -/** - * Internal dependencies - */ -import metadata from './block.json'; -import './style.scss'; - -function Edit( { attributes, name } ) { - return ( -
    - - - -
    - ); -} - -registerBlockType( metadata.name, { - edit: Edit, - save: () => null, -} ); \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-status/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-status/render.php deleted file mode 100644 index 0517e2e2f2..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-status/render.php +++ /dev/null @@ -1,19 +0,0 @@ -context['postId'] ) { - return; -} - -$post = get_post( $block->context['postId'] ); -if ( ! $post ) { - return; -} - -if('draft' != $post->post_s) { - return; -} -?> - -
    > - post_status )->label; ?> -
    diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-status/style.scss b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-status/style.scss deleted file mode 100644 index d89d64b6f6..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-status/style.scss +++ /dev/null @@ -1,6 +0,0 @@ -.wp-block-wporg-release-status { - padding: 2px 10px; - border: 1px solid var(--wp--preset--color--blueberry-3); - font-size: var(--wp--preset--font-size--extra-small); - border-radius: var(--wp--custom--button--border--radius); -} \ No newline at end of file From c0e5ee26501e54df9510c013b5cf570f805ef469 Mon Sep 17 00:00:00 2001 From: StevenDufresne Date: Tue, 10 Dec 2024 02:36:37 +0000 Subject: [PATCH 49/84] Clean up the blocks. --- .../blocks/release-check-item/block.json | 28 -- .../blocks/release-check-item/index.asset.php | 1 - .../build/blocks/release-check-item/index.js | 298 ------------------ .../blocks/release-check-item/render.php | 22 -- .../blocks/release-check-item/style-index.css | 17 - .../release-confirmation copy/block.json | 22 -- .../release-confirmation copy/index.asset.php | 1 - .../blocks/release-confirmation copy/index.js | 298 ------------------ .../release-confirmation copy/render.php | 48 --- .../release-confirmation copy/style-index.css | 9 - .../blocks/release-confirmation/block.json | 22 -- .../release-confirmation/index.asset.php | 1 - .../blocks/release-confirmation/index.js | 298 ------------------ .../blocks/release-confirmation/render.php | 45 --- .../release-confirmation/style-index.css | 9 - .../release-confirmation/view.asset.php | 1 - .../build/blocks/release-confirmation/view.js | 112 ------- .../build/blocks/release-date/block.json | 21 -- .../build/blocks/release-date/index.asset.php | 1 - .../build/blocks/release-date/index.js | 183 ----------- .../build/blocks/release-date/render.php | 21 -- .../blocks/release-details-form/block.json | 23 -- .../release-details-form/index.asset.php | 1 - .../blocks/release-details-form/index.js | 298 ------------------ .../blocks/release-details-form/render.php | 277 ---------------- .../release-details-form/style-index.css | 17 - .../build/blocks/release-details/block.json | 22 -- .../blocks/release-details/index.asset.php | 1 - .../build/blocks/release-details/index.js | 298 ------------------ .../build/blocks/release-details/render.php | 48 --- .../blocks/release-details/style-index.css | 9 - .../blocks/release-draft copy/block.json | 22 -- .../blocks/release-draft copy/index.asset.php | 1 - .../build/blocks/release-draft copy/index.js | 298 ------------------ .../blocks/release-draft copy/render.php | 124 -------- .../blocks/release-draft copy/style-index.css | 8 - .../blocks/release-draft-card/block.json | 27 -- .../blocks/release-draft-card/index.asset.php | 1 - .../build/blocks/release-draft-card/index.js | 298 ------------------ .../blocks/release-draft-card/render.php | 25 -- .../blocks/release-draft-card/style-index.css | 8 - .../blocks/release-draft-content/block.json | 27 -- .../release-draft-content/index.asset.php | 1 - .../blocks/release-draft-content/index.js | 298 ------------------ .../blocks/release-draft-content/render.php | 25 -- .../release-draft-content/style-index.css | 8 - .../build/blocks/release-draft/view.asset.php | 1 - .../build/blocks/release-draft/view.js | 123 -------- .../blocks/release-menu-options/render.php | 11 +- .../blocks/release-publish-release/block.json | 23 -- .../release-publish-release/index.asset.php | 1 - .../blocks/release-publish-release/index.js | 298 ------------------ .../blocks/release-publish-release/render.php | 277 ---------------- .../release-publish-release/style-index.css | 17 - .../release-result-item copy/block.json | 28 -- .../release-result-item copy/index.asset.php | 1 - .../blocks/release-result-item copy/index.js | 298 ------------------ .../release-result-item copy/render.php | 22 -- .../release-result-item copy/style-index.css | 17 - .../blocks/release-result-list/block.json | 18 -- .../release-result-list/index.asset.php | 1 - .../build/blocks/release-result-list/index.js | 298 ------------------ .../blocks/release-result-list/render.php | 22 -- .../release-result-list/style-index.css | 17 - .../build/blocks/release-status/block.json | 21 -- .../blocks/release-status/index.asset.php | 1 - .../build/blocks/release-status/index.js | 298 ------------------ .../build/blocks/release-status/render.php | 19 -- .../blocks/release-status/style-index.css | 11 - .../pub/wporg-plugins-2024/functions.php | 6 +- .../blocks/release-menu-options/render.php | 11 +- 71 files changed, 15 insertions(+), 5448 deletions(-) delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-check-item/block.json delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-check-item/index.asset.php delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-check-item/index.js delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-check-item/render.php delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-check-item/style-index.css delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-confirmation copy/block.json delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-confirmation copy/index.asset.php delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-confirmation copy/index.js delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-confirmation copy/render.php delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-confirmation copy/style-index.css delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-confirmation/block.json delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-confirmation/index.asset.php delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-confirmation/index.js delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-confirmation/render.php delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-confirmation/style-index.css delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-confirmation/view.asset.php delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-confirmation/view.js delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-date/block.json delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-date/index.asset.php delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-date/index.js delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-date/render.php delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-details-form/block.json delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-details-form/index.asset.php delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-details-form/index.js delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-details-form/render.php delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-details-form/style-index.css delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-details/block.json delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-details/index.asset.php delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-details/index.js delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-details/render.php delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-details/style-index.css delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft copy/block.json delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft copy/index.asset.php delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft copy/index.js delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft copy/render.php delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft copy/style-index.css delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-card/block.json delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-card/index.asset.php delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-card/index.js delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-card/render.php delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-card/style-index.css delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-content/block.json delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-content/index.asset.php delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-content/index.js delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-content/render.php delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-content/style-index.css delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft/view.asset.php delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft/view.js delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish-release/block.json delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish-release/index.asset.php delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish-release/index.js delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish-release/render.php delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish-release/style-index.css delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-item copy/block.json delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-item copy/index.asset.php delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-item copy/index.js delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-item copy/render.php delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-item copy/style-index.css delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-list/block.json delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-list/index.asset.php delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-list/index.js delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-list/render.php delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-list/style-index.css delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status/block.json delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status/index.asset.php delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status/index.js delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status/render.php delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status/style-index.css diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-check-item/block.json b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-check-item/block.json deleted file mode 100644 index f289508ad9..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-check-item/block.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "$schema": "https://schemas.wp.org/trunk/block.json", - "apiVersion": 2, - "name": "wporg/release-check-item", - "version": "0.1.0", - "title": "Release Check Item", - "category": "design", - "icon": "", - "description": "A block to display release draft check item.", - "textdomain": "wporg", - "attributes": { - "status": { - "type": "string", - "enum": [ - "error", - "warning", - "success" - ], - "default": "success" - } - }, - "supports": { - "html": false - }, - "editorScript": "file:./index.js", - "render": "file:./render.php", - "style": "file:./style-index.css" -} \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-check-item/index.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-check-item/index.asset.php deleted file mode 100644 index 591a50b059..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-check-item/index.asset.php +++ /dev/null @@ -1 +0,0 @@ - array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => 'b879c0e3fcd6270e7442'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-check-item/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-check-item/index.js deleted file mode 100644 index edb1b05b11..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-check-item/index.js +++ /dev/null @@ -1,298 +0,0 @@ -/******/ (() => { // webpackBootstrap -/******/ "use strict"; -/******/ var __webpack_modules__ = ({ - -/***/ "./src/blocks/release-check-item/index.js": -/*!************************************************!*\ - !*** ./src/blocks/release-check-item/index.js ***! - \************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); -/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/blocks */ "@wordpress/blocks"); -/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/server-side-render */ "@wordpress/server-side-render"); -/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/block-editor */ "@wordpress/block-editor"); -/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__); -/* harmony import */ var _block_json__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./block.json */ "./src/blocks/release-check-item/block.json"); -/* harmony import */ var _style_scss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./style.scss */ "./src/blocks/release-check-item/style.scss"); - -/** - * WordPress dependencies - */ - - - - - -/** - * Internal dependencies - */ - - -function Edit({ - attributes, - name -}) { - return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", { - ...(0,_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__.useBlockProps)() - }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Disabled, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)((_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default()), { - block: name, - attributes: attributes - }))); -} -(0,_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__.registerBlockType)(_block_json__WEBPACK_IMPORTED_MODULE_5__.name, { - edit: Edit, - save: () => null -}); - -/***/ }), - -/***/ "./src/blocks/release-check-item/style.scss": -/*!**************************************************!*\ - !*** ./src/blocks/release-check-item/style.scss ***! - \**************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -// extracted by mini-css-extract-plugin - - -/***/ }), - -/***/ "react": -/*!************************!*\ - !*** external "React" ***! - \************************/ -/***/ ((module) => { - -module.exports = window["React"]; - -/***/ }), - -/***/ "@wordpress/block-editor": -/*!*************************************!*\ - !*** external ["wp","blockEditor"] ***! - \*************************************/ -/***/ ((module) => { - -module.exports = window["wp"]["blockEditor"]; - -/***/ }), - -/***/ "@wordpress/blocks": -/*!********************************!*\ - !*** external ["wp","blocks"] ***! - \********************************/ -/***/ ((module) => { - -module.exports = window["wp"]["blocks"]; - -/***/ }), - -/***/ "@wordpress/components": -/*!************************************!*\ - !*** external ["wp","components"] ***! - \************************************/ -/***/ ((module) => { - -module.exports = window["wp"]["components"]; - -/***/ }), - -/***/ "@wordpress/server-side-render": -/*!******************************************!*\ - !*** external ["wp","serverSideRender"] ***! - \******************************************/ -/***/ ((module) => { - -module.exports = window["wp"]["serverSideRender"]; - -/***/ }), - -/***/ "./src/blocks/release-check-item/block.json": -/*!**************************************************!*\ - !*** ./src/blocks/release-check-item/block.json ***! - \**************************************************/ -/***/ ((module) => { - -module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"wporg/release-check-item","version":"0.1.0","title":"Release Check Item","category":"design","icon":"","description":"A block to display release draft check item.","textdomain":"wporg","attributes":{"status":{"type":"string","enum":["error","warning","success"],"default":"success"}},"supports":{"html":false},"editorScript":"file:./index.js","render":"file:./render.php","style":"file:./style-index.css"}'); - -/***/ }) - -/******/ }); -/************************************************************************/ -/******/ // The module cache -/******/ var __webpack_module_cache__ = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ // Check if module is in cache -/******/ var cachedModule = __webpack_module_cache__[moduleId]; -/******/ if (cachedModule !== undefined) { -/******/ return cachedModule.exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = __webpack_module_cache__[moduleId] = { -/******/ // no module.id needed -/******/ // no module.loaded needed -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = __webpack_modules__; -/******/ -/************************************************************************/ -/******/ /* webpack/runtime/chunk loaded */ -/******/ (() => { -/******/ var deferred = []; -/******/ __webpack_require__.O = (result, chunkIds, fn, priority) => { -/******/ if(chunkIds) { -/******/ priority = priority || 0; -/******/ for(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1]; -/******/ deferred[i] = [chunkIds, fn, priority]; -/******/ return; -/******/ } -/******/ var notFulfilled = Infinity; -/******/ for (var i = 0; i < deferred.length; i++) { -/******/ var chunkIds = deferred[i][0]; -/******/ var fn = deferred[i][1]; -/******/ var priority = deferred[i][2]; -/******/ var fulfilled = true; -/******/ for (var j = 0; j < chunkIds.length; j++) { -/******/ if ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) { -/******/ chunkIds.splice(j--, 1); -/******/ } else { -/******/ fulfilled = false; -/******/ if(priority < notFulfilled) notFulfilled = priority; -/******/ } -/******/ } -/******/ if(fulfilled) { -/******/ deferred.splice(i--, 1) -/******/ var r = fn(); -/******/ if (r !== undefined) result = r; -/******/ } -/******/ } -/******/ return result; -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/compat get default export */ -/******/ (() => { -/******/ // getDefaultExport function for compatibility with non-harmony modules -/******/ __webpack_require__.n = (module) => { -/******/ var getter = module && module.__esModule ? -/******/ () => (module['default']) : -/******/ () => (module); -/******/ __webpack_require__.d(getter, { a: getter }); -/******/ return getter; -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/define property getters */ -/******/ (() => { -/******/ // define getter functions for harmony exports -/******/ __webpack_require__.d = (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 */ -/******/ (() => { -/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) -/******/ })(); -/******/ -/******/ /* webpack/runtime/make namespace object */ -/******/ (() => { -/******/ // define __esModule on exports -/******/ __webpack_require__.r = (exports) => { -/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { -/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); -/******/ } -/******/ Object.defineProperty(exports, '__esModule', { value: true }); -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/jsonp chunk loading */ -/******/ (() => { -/******/ // no baseURI -/******/ -/******/ // object to store loaded and loading chunks -/******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched -/******/ // [resolve, reject, Promise] = chunk loading, 0 = chunk loaded -/******/ var installedChunks = { -/******/ "blocks/release-check-item/index": 0, -/******/ "blocks/release-check-item/style-index": 0 -/******/ }; -/******/ -/******/ // no chunk on demand loading -/******/ -/******/ // no prefetching -/******/ -/******/ // no preloaded -/******/ -/******/ // no HMR -/******/ -/******/ // no HMR manifest -/******/ -/******/ __webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0); -/******/ -/******/ // install a JSONP callback for chunk loading -/******/ var webpackJsonpCallback = (parentChunkLoadingFunction, data) => { -/******/ var chunkIds = data[0]; -/******/ var moreModules = data[1]; -/******/ var runtime = data[2]; -/******/ // add "moreModules" to the modules object, -/******/ // then flag all "chunkIds" as loaded and fire callback -/******/ var moduleId, chunkId, i = 0; -/******/ if(chunkIds.some((id) => (installedChunks[id] !== 0))) { -/******/ for(moduleId in moreModules) { -/******/ if(__webpack_require__.o(moreModules, moduleId)) { -/******/ __webpack_require__.m[moduleId] = moreModules[moduleId]; -/******/ } -/******/ } -/******/ if(runtime) var result = runtime(__webpack_require__); -/******/ } -/******/ if(parentChunkLoadingFunction) parentChunkLoadingFunction(data); -/******/ for(;i < chunkIds.length; i++) { -/******/ chunkId = chunkIds[i]; -/******/ if(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) { -/******/ installedChunks[chunkId][0](); -/******/ } -/******/ installedChunks[chunkId] = 0; -/******/ } -/******/ return __webpack_require__.O(result); -/******/ } -/******/ -/******/ var chunkLoadingGlobal = self["webpackChunkwporg_plugins_2024"] = self["webpackChunkwporg_plugins_2024"] || []; -/******/ chunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0)); -/******/ chunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal)); -/******/ })(); -/******/ -/************************************************************************/ -/******/ -/******/ // startup -/******/ // Load entry module and return exports -/******/ // This entry module depends on other loaded chunks and execution need to be delayed -/******/ var __webpack_exports__ = __webpack_require__.O(undefined, ["blocks/release-check-item/style-index"], () => (__webpack_require__("./src/blocks/release-check-item/index.js"))) -/******/ __webpack_exports__ = __webpack_require__.O(__webpack_exports__); -/******/ -/******/ })() -; -//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-check-item/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-check-item/render.php deleted file mode 100644 index 1df49ea1ef..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-check-item/render.php +++ /dev/null @@ -1,22 +0,0 @@ -
  • > -
    - attributes['status'] ) : ?> - - - - - - attributes['status'] ) : ?> - - - - attributes['status'] ) : ?> - - - - - -
    - - inner_html ); ?> -
  • diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-check-item/style-index.css b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-check-item/style-index.css deleted file mode 100644 index 287cb2caa7..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-check-item/style-index.css +++ /dev/null @@ -1,17 +0,0 @@ -/*!*****************************************************************************************************************************************************************************************************************************************************************!*\ - !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/blocks/release-check-item/style.scss ***! - \*****************************************************************************************************************************************************************************************************************************************************************/ -.wp-block-wporg-release-check-item { - display: flex; - margin: 0 !important; - position: relative; - gap: 8px; - list-style: none; -} -.wp-block-wporg-release-check-item > div:first-child { - height: 25px; - display: flex; - align-items: center; -} - -/*# sourceMappingURL=style-index.css.map*/ \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-confirmation copy/block.json b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-confirmation copy/block.json deleted file mode 100644 index 28d4349901..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-confirmation copy/block.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "$schema": "https://schemas.wp.org/trunk/block.json", - "apiVersion": 2, - "name": "wporg/release-confirmation", - "version": "0.1.0", - "title": "Release Confirmation Banner.", - "category": "design", - "icon": "", - "description": "A block to display release confirmation banner.", - "textdomain": "wporg", - "attributes": {}, - "supports": { - "html": false, - "interactivity": true - }, - "usesContext": [ - "postId" - ], - "editorScript": "file:./index.js", - "render": "file:./render.php", - "style": "file:./style-index.css" -} \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-confirmation copy/index.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-confirmation copy/index.asset.php deleted file mode 100644 index 2110d7526b..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-confirmation copy/index.asset.php +++ /dev/null @@ -1 +0,0 @@ - array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => '5a5bde97bad068aa014f'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-confirmation copy/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-confirmation copy/index.js deleted file mode 100644 index 821030be92..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-confirmation copy/index.js +++ /dev/null @@ -1,298 +0,0 @@ -/******/ (() => { // webpackBootstrap -/******/ "use strict"; -/******/ var __webpack_modules__ = ({ - -/***/ "./src/blocks/release-confirmation copy/index.js": -/*!*******************************************************!*\ - !*** ./src/blocks/release-confirmation copy/index.js ***! - \*******************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); -/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/blocks */ "@wordpress/blocks"); -/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/server-side-render */ "@wordpress/server-side-render"); -/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/block-editor */ "@wordpress/block-editor"); -/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__); -/* harmony import */ var _block_json__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./block.json */ "./src/blocks/release-confirmation copy/block.json"); -/* harmony import */ var _style_scss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./style.scss */ "./src/blocks/release-confirmation copy/style.scss"); - -/** - * WordPress dependencies - */ - - - - - -/** - * Internal dependencies - */ - - -function Edit({ - attributes, - name -}) { - return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", { - ...(0,_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__.useBlockProps)() - }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Disabled, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)((_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default()), { - block: name, - attributes: attributes - }))); -} -(0,_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__.registerBlockType)(_block_json__WEBPACK_IMPORTED_MODULE_5__.name, { - edit: Edit, - save: () => null -}); - -/***/ }), - -/***/ "./src/blocks/release-confirmation copy/style.scss": -/*!*********************************************************!*\ - !*** ./src/blocks/release-confirmation copy/style.scss ***! - \*********************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -// extracted by mini-css-extract-plugin - - -/***/ }), - -/***/ "react": -/*!************************!*\ - !*** external "React" ***! - \************************/ -/***/ ((module) => { - -module.exports = window["React"]; - -/***/ }), - -/***/ "@wordpress/block-editor": -/*!*************************************!*\ - !*** external ["wp","blockEditor"] ***! - \*************************************/ -/***/ ((module) => { - -module.exports = window["wp"]["blockEditor"]; - -/***/ }), - -/***/ "@wordpress/blocks": -/*!********************************!*\ - !*** external ["wp","blocks"] ***! - \********************************/ -/***/ ((module) => { - -module.exports = window["wp"]["blocks"]; - -/***/ }), - -/***/ "@wordpress/components": -/*!************************************!*\ - !*** external ["wp","components"] ***! - \************************************/ -/***/ ((module) => { - -module.exports = window["wp"]["components"]; - -/***/ }), - -/***/ "@wordpress/server-side-render": -/*!******************************************!*\ - !*** external ["wp","serverSideRender"] ***! - \******************************************/ -/***/ ((module) => { - -module.exports = window["wp"]["serverSideRender"]; - -/***/ }), - -/***/ "./src/blocks/release-confirmation copy/block.json": -/*!*********************************************************!*\ - !*** ./src/blocks/release-confirmation copy/block.json ***! - \*********************************************************/ -/***/ ((module) => { - -module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"wporg/release-confirmation","version":"0.1.0","title":"Release Confirmation Banner.","category":"design","icon":"","description":"A block to display release confirmation banner.","textdomain":"wporg","attributes":{},"supports":{"html":false,"interactivity":true},"usesContext":["postId"],"editorScript":"file:./index.js","render":"file:./render.php","style":"file:./style-index.css"}'); - -/***/ }) - -/******/ }); -/************************************************************************/ -/******/ // The module cache -/******/ var __webpack_module_cache__ = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ // Check if module is in cache -/******/ var cachedModule = __webpack_module_cache__[moduleId]; -/******/ if (cachedModule !== undefined) { -/******/ return cachedModule.exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = __webpack_module_cache__[moduleId] = { -/******/ // no module.id needed -/******/ // no module.loaded needed -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = __webpack_modules__; -/******/ -/************************************************************************/ -/******/ /* webpack/runtime/chunk loaded */ -/******/ (() => { -/******/ var deferred = []; -/******/ __webpack_require__.O = (result, chunkIds, fn, priority) => { -/******/ if(chunkIds) { -/******/ priority = priority || 0; -/******/ for(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1]; -/******/ deferred[i] = [chunkIds, fn, priority]; -/******/ return; -/******/ } -/******/ var notFulfilled = Infinity; -/******/ for (var i = 0; i < deferred.length; i++) { -/******/ var chunkIds = deferred[i][0]; -/******/ var fn = deferred[i][1]; -/******/ var priority = deferred[i][2]; -/******/ var fulfilled = true; -/******/ for (var j = 0; j < chunkIds.length; j++) { -/******/ if ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) { -/******/ chunkIds.splice(j--, 1); -/******/ } else { -/******/ fulfilled = false; -/******/ if(priority < notFulfilled) notFulfilled = priority; -/******/ } -/******/ } -/******/ if(fulfilled) { -/******/ deferred.splice(i--, 1) -/******/ var r = fn(); -/******/ if (r !== undefined) result = r; -/******/ } -/******/ } -/******/ return result; -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/compat get default export */ -/******/ (() => { -/******/ // getDefaultExport function for compatibility with non-harmony modules -/******/ __webpack_require__.n = (module) => { -/******/ var getter = module && module.__esModule ? -/******/ () => (module['default']) : -/******/ () => (module); -/******/ __webpack_require__.d(getter, { a: getter }); -/******/ return getter; -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/define property getters */ -/******/ (() => { -/******/ // define getter functions for harmony exports -/******/ __webpack_require__.d = (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 */ -/******/ (() => { -/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) -/******/ })(); -/******/ -/******/ /* webpack/runtime/make namespace object */ -/******/ (() => { -/******/ // define __esModule on exports -/******/ __webpack_require__.r = (exports) => { -/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { -/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); -/******/ } -/******/ Object.defineProperty(exports, '__esModule', { value: true }); -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/jsonp chunk loading */ -/******/ (() => { -/******/ // no baseURI -/******/ -/******/ // object to store loaded and loading chunks -/******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched -/******/ // [resolve, reject, Promise] = chunk loading, 0 = chunk loaded -/******/ var installedChunks = { -/******/ "blocks/release-confirmation copy/index": 0, -/******/ "blocks/release-confirmation copy/style-index": 0 -/******/ }; -/******/ -/******/ // no chunk on demand loading -/******/ -/******/ // no prefetching -/******/ -/******/ // no preloaded -/******/ -/******/ // no HMR -/******/ -/******/ // no HMR manifest -/******/ -/******/ __webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0); -/******/ -/******/ // install a JSONP callback for chunk loading -/******/ var webpackJsonpCallback = (parentChunkLoadingFunction, data) => { -/******/ var chunkIds = data[0]; -/******/ var moreModules = data[1]; -/******/ var runtime = data[2]; -/******/ // add "moreModules" to the modules object, -/******/ // then flag all "chunkIds" as loaded and fire callback -/******/ var moduleId, chunkId, i = 0; -/******/ if(chunkIds.some((id) => (installedChunks[id] !== 0))) { -/******/ for(moduleId in moreModules) { -/******/ if(__webpack_require__.o(moreModules, moduleId)) { -/******/ __webpack_require__.m[moduleId] = moreModules[moduleId]; -/******/ } -/******/ } -/******/ if(runtime) var result = runtime(__webpack_require__); -/******/ } -/******/ if(parentChunkLoadingFunction) parentChunkLoadingFunction(data); -/******/ for(;i < chunkIds.length; i++) { -/******/ chunkId = chunkIds[i]; -/******/ if(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) { -/******/ installedChunks[chunkId][0](); -/******/ } -/******/ installedChunks[chunkId] = 0; -/******/ } -/******/ return __webpack_require__.O(result); -/******/ } -/******/ -/******/ var chunkLoadingGlobal = self["webpackChunkwporg_plugins_2024"] = self["webpackChunkwporg_plugins_2024"] || []; -/******/ chunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0)); -/******/ chunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal)); -/******/ })(); -/******/ -/************************************************************************/ -/******/ -/******/ // startup -/******/ // Load entry module and return exports -/******/ // This entry module depends on other loaded chunks and execution need to be delayed -/******/ var __webpack_exports__ = __webpack_require__.O(undefined, ["blocks/release-confirmation copy/style-index"], () => (__webpack_require__("./src/blocks/release-confirmation copy/index.js"))) -/******/ __webpack_exports__ = __webpack_require__.O(__webpack_exports__); -/******/ -/******/ })() -; -//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-confirmation copy/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-confirmation copy/render.php deleted file mode 100644 index 88d2157e4e..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-confirmation copy/render.php +++ /dev/null @@ -1,48 +0,0 @@ -context['postId'] ) { - return; -} - -$release_post = get_post( $block->context['postId'] ); -if ( ! $release_post ) { - return; -} - -?> -
    -> - - - -
    -

    - - - -

    - - - -
    -
    - -
    - -
    - -
    -
    - - -
    - -
    diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-confirmation copy/style-index.css b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-confirmation copy/style-index.css deleted file mode 100644 index 02603a1907..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-confirmation copy/style-index.css +++ /dev/null @@ -1,9 +0,0 @@ -/*!************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/blocks/release-confirmation copy/style.scss ***! - \************************************************************************************************************************************************************************************************************************************************************************/ -.wp-block-wporg-release-confirmation .wporg-release-confirmation-actions { - display: flex; - gap: 8px; -} - -/*# sourceMappingURL=style-index.css.map*/ \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-confirmation/block.json b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-confirmation/block.json deleted file mode 100644 index 28d4349901..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-confirmation/block.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "$schema": "https://schemas.wp.org/trunk/block.json", - "apiVersion": 2, - "name": "wporg/release-confirmation", - "version": "0.1.0", - "title": "Release Confirmation Banner.", - "category": "design", - "icon": "", - "description": "A block to display release confirmation banner.", - "textdomain": "wporg", - "attributes": {}, - "supports": { - "html": false, - "interactivity": true - }, - "usesContext": [ - "postId" - ], - "editorScript": "file:./index.js", - "render": "file:./render.php", - "style": "file:./style-index.css" -} \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-confirmation/index.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-confirmation/index.asset.php deleted file mode 100644 index c5dbd58a58..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-confirmation/index.asset.php +++ /dev/null @@ -1 +0,0 @@ - array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => '9ffd986d7d7a6a67b997'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-confirmation/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-confirmation/index.js deleted file mode 100644 index cba007e3da..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-confirmation/index.js +++ /dev/null @@ -1,298 +0,0 @@ -/******/ (() => { // webpackBootstrap -/******/ "use strict"; -/******/ var __webpack_modules__ = ({ - -/***/ "./src/blocks/release-confirmation/index.js": -/*!**************************************************!*\ - !*** ./src/blocks/release-confirmation/index.js ***! - \**************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); -/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/blocks */ "@wordpress/blocks"); -/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/server-side-render */ "@wordpress/server-side-render"); -/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/block-editor */ "@wordpress/block-editor"); -/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__); -/* harmony import */ var _block_json__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./block.json */ "./src/blocks/release-confirmation/block.json"); -/* harmony import */ var _style_scss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./style.scss */ "./src/blocks/release-confirmation/style.scss"); - -/** - * WordPress dependencies - */ - - - - - -/** - * Internal dependencies - */ - - -function Edit({ - attributes, - name -}) { - return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", { - ...(0,_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__.useBlockProps)() - }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Disabled, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)((_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default()), { - block: name, - attributes: attributes - }))); -} -(0,_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__.registerBlockType)(_block_json__WEBPACK_IMPORTED_MODULE_5__.name, { - edit: Edit, - save: () => null -}); - -/***/ }), - -/***/ "./src/blocks/release-confirmation/style.scss": -/*!****************************************************!*\ - !*** ./src/blocks/release-confirmation/style.scss ***! - \****************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -// extracted by mini-css-extract-plugin - - -/***/ }), - -/***/ "react": -/*!************************!*\ - !*** external "React" ***! - \************************/ -/***/ ((module) => { - -module.exports = window["React"]; - -/***/ }), - -/***/ "@wordpress/block-editor": -/*!*************************************!*\ - !*** external ["wp","blockEditor"] ***! - \*************************************/ -/***/ ((module) => { - -module.exports = window["wp"]["blockEditor"]; - -/***/ }), - -/***/ "@wordpress/blocks": -/*!********************************!*\ - !*** external ["wp","blocks"] ***! - \********************************/ -/***/ ((module) => { - -module.exports = window["wp"]["blocks"]; - -/***/ }), - -/***/ "@wordpress/components": -/*!************************************!*\ - !*** external ["wp","components"] ***! - \************************************/ -/***/ ((module) => { - -module.exports = window["wp"]["components"]; - -/***/ }), - -/***/ "@wordpress/server-side-render": -/*!******************************************!*\ - !*** external ["wp","serverSideRender"] ***! - \******************************************/ -/***/ ((module) => { - -module.exports = window["wp"]["serverSideRender"]; - -/***/ }), - -/***/ "./src/blocks/release-confirmation/block.json": -/*!****************************************************!*\ - !*** ./src/blocks/release-confirmation/block.json ***! - \****************************************************/ -/***/ ((module) => { - -module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"wporg/release-confirmation","version":"0.1.0","title":"Release Confirmation Banner.","category":"design","icon":"","description":"A block to display release confirmation banner.","textdomain":"wporg","attributes":{},"supports":{"html":false,"interactivity":true},"usesContext":["postId"],"editorScript":"file:./index.js","render":"file:./render.php","style":"file:./style-index.css"}'); - -/***/ }) - -/******/ }); -/************************************************************************/ -/******/ // The module cache -/******/ var __webpack_module_cache__ = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ // Check if module is in cache -/******/ var cachedModule = __webpack_module_cache__[moduleId]; -/******/ if (cachedModule !== undefined) { -/******/ return cachedModule.exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = __webpack_module_cache__[moduleId] = { -/******/ // no module.id needed -/******/ // no module.loaded needed -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = __webpack_modules__; -/******/ -/************************************************************************/ -/******/ /* webpack/runtime/chunk loaded */ -/******/ (() => { -/******/ var deferred = []; -/******/ __webpack_require__.O = (result, chunkIds, fn, priority) => { -/******/ if(chunkIds) { -/******/ priority = priority || 0; -/******/ for(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1]; -/******/ deferred[i] = [chunkIds, fn, priority]; -/******/ return; -/******/ } -/******/ var notFulfilled = Infinity; -/******/ for (var i = 0; i < deferred.length; i++) { -/******/ var chunkIds = deferred[i][0]; -/******/ var fn = deferred[i][1]; -/******/ var priority = deferred[i][2]; -/******/ var fulfilled = true; -/******/ for (var j = 0; j < chunkIds.length; j++) { -/******/ if ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) { -/******/ chunkIds.splice(j--, 1); -/******/ } else { -/******/ fulfilled = false; -/******/ if(priority < notFulfilled) notFulfilled = priority; -/******/ } -/******/ } -/******/ if(fulfilled) { -/******/ deferred.splice(i--, 1) -/******/ var r = fn(); -/******/ if (r !== undefined) result = r; -/******/ } -/******/ } -/******/ return result; -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/compat get default export */ -/******/ (() => { -/******/ // getDefaultExport function for compatibility with non-harmony modules -/******/ __webpack_require__.n = (module) => { -/******/ var getter = module && module.__esModule ? -/******/ () => (module['default']) : -/******/ () => (module); -/******/ __webpack_require__.d(getter, { a: getter }); -/******/ return getter; -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/define property getters */ -/******/ (() => { -/******/ // define getter functions for harmony exports -/******/ __webpack_require__.d = (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 */ -/******/ (() => { -/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) -/******/ })(); -/******/ -/******/ /* webpack/runtime/make namespace object */ -/******/ (() => { -/******/ // define __esModule on exports -/******/ __webpack_require__.r = (exports) => { -/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { -/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); -/******/ } -/******/ Object.defineProperty(exports, '__esModule', { value: true }); -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/jsonp chunk loading */ -/******/ (() => { -/******/ // no baseURI -/******/ -/******/ // object to store loaded and loading chunks -/******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched -/******/ // [resolve, reject, Promise] = chunk loading, 0 = chunk loaded -/******/ var installedChunks = { -/******/ "blocks/release-confirmation/index": 0, -/******/ "blocks/release-confirmation/style-index": 0 -/******/ }; -/******/ -/******/ // no chunk on demand loading -/******/ -/******/ // no prefetching -/******/ -/******/ // no preloaded -/******/ -/******/ // no HMR -/******/ -/******/ // no HMR manifest -/******/ -/******/ __webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0); -/******/ -/******/ // install a JSONP callback for chunk loading -/******/ var webpackJsonpCallback = (parentChunkLoadingFunction, data) => { -/******/ var chunkIds = data[0]; -/******/ var moreModules = data[1]; -/******/ var runtime = data[2]; -/******/ // add "moreModules" to the modules object, -/******/ // then flag all "chunkIds" as loaded and fire callback -/******/ var moduleId, chunkId, i = 0; -/******/ if(chunkIds.some((id) => (installedChunks[id] !== 0))) { -/******/ for(moduleId in moreModules) { -/******/ if(__webpack_require__.o(moreModules, moduleId)) { -/******/ __webpack_require__.m[moduleId] = moreModules[moduleId]; -/******/ } -/******/ } -/******/ if(runtime) var result = runtime(__webpack_require__); -/******/ } -/******/ if(parentChunkLoadingFunction) parentChunkLoadingFunction(data); -/******/ for(;i < chunkIds.length; i++) { -/******/ chunkId = chunkIds[i]; -/******/ if(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) { -/******/ installedChunks[chunkId][0](); -/******/ } -/******/ installedChunks[chunkId] = 0; -/******/ } -/******/ return __webpack_require__.O(result); -/******/ } -/******/ -/******/ var chunkLoadingGlobal = self["webpackChunkwporg_plugins_2024"] = self["webpackChunkwporg_plugins_2024"] || []; -/******/ chunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0)); -/******/ chunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal)); -/******/ })(); -/******/ -/************************************************************************/ -/******/ -/******/ // startup -/******/ // Load entry module and return exports -/******/ // This entry module depends on other loaded chunks and execution need to be delayed -/******/ var __webpack_exports__ = __webpack_require__.O(undefined, ["blocks/release-confirmation/style-index"], () => (__webpack_require__("./src/blocks/release-confirmation/index.js"))) -/******/ __webpack_exports__ = __webpack_require__.O(__webpack_exports__); -/******/ -/******/ })() -; -//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-confirmation/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-confirmation/render.php deleted file mode 100644 index 33ed2547e4..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-confirmation/render.php +++ /dev/null @@ -1,45 +0,0 @@ -context['postId'] ) { - return; -} - -$release_post = get_post( $block->context['postId'] ); -if ( ! $release_post ) { - return; -} - -?> -
    > - - - -
    -

    - - - -

    - - - -
    -
    - -
    - -
    - -
    -
    - - -
    - -
    diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-confirmation/style-index.css b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-confirmation/style-index.css deleted file mode 100644 index 3f31bd5b80..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-confirmation/style-index.css +++ /dev/null @@ -1,9 +0,0 @@ -/*!*******************************************************************************************************************************************************************************************************************************************************************!*\ - !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/blocks/release-confirmation/style.scss ***! - \*******************************************************************************************************************************************************************************************************************************************************************/ -.wp-block-wporg-release-confirmation .wporg-release-confirmation-actions { - display: flex; - gap: 8px; -} - -/*# sourceMappingURL=style-index.css.map*/ \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-confirmation/view.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-confirmation/view.asset.php deleted file mode 100644 index d9d000774c..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-confirmation/view.asset.php +++ /dev/null @@ -1 +0,0 @@ - array('@wordpress/interactivity'), 'version' => '8b7df3a3fcdd5f0dfa36', 'type' => 'module'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-confirmation/view.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-confirmation/view.js deleted file mode 100644 index 4c1cb46c1c..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-confirmation/view.js +++ /dev/null @@ -1,112 +0,0 @@ -import * as __WEBPACK_EXTERNAL_MODULE__wordpress_interactivity_8e89b257__ from "@wordpress/interactivity"; -/******/ var __webpack_modules__ = ({ - -/***/ "@wordpress/interactivity": -/*!*******************************************!*\ - !*** external "@wordpress/interactivity" ***! - \*******************************************/ -/***/ ((module) => { - -var x = y => { var x = {}; __webpack_require__.d(x, y); return x; } -var y = x => () => x -module.exports = __WEBPACK_EXTERNAL_MODULE__wordpress_interactivity_8e89b257__; - -/***/ }) - -/******/ }); -/************************************************************************/ -/******/ // The module cache -/******/ var __webpack_module_cache__ = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ // Check if module is in cache -/******/ var cachedModule = __webpack_module_cache__[moduleId]; -/******/ if (cachedModule !== undefined) { -/******/ return cachedModule.exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = __webpack_module_cache__[moduleId] = { -/******/ // no module.id needed -/******/ // no module.loaded needed -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/************************************************************************/ -/******/ /* webpack/runtime/make namespace object */ -/******/ (() => { -/******/ // define __esModule on exports -/******/ __webpack_require__.r = (exports) => { -/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { -/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); -/******/ } -/******/ Object.defineProperty(exports, '__esModule', { value: true }); -/******/ }; -/******/ })(); -/******/ -/************************************************************************/ -var __webpack_exports__ = {}; -// This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk. -(() => { -/*!*************************************************!*\ - !*** ./src/blocks/release-confirmation/view.js ***! - \*************************************************/ -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _wordpress_interactivity__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/interactivity */ "@wordpress/interactivity"); - -const { - state -} = (0,_wordpress_interactivity__WEBPACK_IMPORTED_MODULE_0__.store)('async-action-block', { - state: { - isWaiting: false, - isComplete: false, - errorMessage: '' - }, - actions: { - *handleSubmit(event) { - // Prevent default form submission - event.preventDefault(); - - // Set waiting state - state.isWaiting = true; - state.isComplete = false; - state.errorMessage = ''; - state.btnText = 'Processing...'; - try { - const response = yield fetch('/wp-json/async-action/v1/perform-action', { - method: 'POST', - headers: { - 'Content-Type': 'application/json' - } - }); - const data = yield response.json(); - - // Update state based on response - if (data.success) { - state.isComplete = true; - } else { - state.errorMessage = data.message || 'Action failed'; - state.btnText = 'failed'; - } - } catch (error) { - debugger; - state.btnText = 'failed...'; - state.errorMessage = 'Network error occurred'; - } finally { - // Reset waiting state - state.isWaiting = false; - } - } - } -}); -})(); - - -//# sourceMappingURL=view.js.map \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-date/block.json b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-date/block.json deleted file mode 100644 index 74b9d9496a..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-date/block.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "$schema": "https://schemas.wp.org/trunk/block.json", - "apiVersion": 2, - "name": "wporg/release-date", - "version": "0.1.0", - "title": "Release Date", - "category": "design", - "icon": "", - "description": "A block to display release date.", - "textdomain": "wporg", - "attributes": {}, - "supports": { - "html": false - }, - "usesContext": [ - "postId" - ], - "editorScript": "file:./index.js", - "render": "file:./render.php", - "style": "file:./style-index.css" -} \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-date/index.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-date/index.asset.php deleted file mode 100644 index 92e88df07e..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-date/index.asset.php +++ /dev/null @@ -1 +0,0 @@ - array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => '6f32bc4f1ebe9d26c56e'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-date/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-date/index.js deleted file mode 100644 index b47ca850e8..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-date/index.js +++ /dev/null @@ -1,183 +0,0 @@ -/******/ (() => { // webpackBootstrap -/******/ "use strict"; -/******/ var __webpack_modules__ = ({ - -/***/ "react": -/*!************************!*\ - !*** external "React" ***! - \************************/ -/***/ ((module) => { - -module.exports = window["React"]; - -/***/ }), - -/***/ "@wordpress/block-editor": -/*!*************************************!*\ - !*** external ["wp","blockEditor"] ***! - \*************************************/ -/***/ ((module) => { - -module.exports = window["wp"]["blockEditor"]; - -/***/ }), - -/***/ "@wordpress/blocks": -/*!********************************!*\ - !*** external ["wp","blocks"] ***! - \********************************/ -/***/ ((module) => { - -module.exports = window["wp"]["blocks"]; - -/***/ }), - -/***/ "@wordpress/components": -/*!************************************!*\ - !*** external ["wp","components"] ***! - \************************************/ -/***/ ((module) => { - -module.exports = window["wp"]["components"]; - -/***/ }), - -/***/ "@wordpress/server-side-render": -/*!******************************************!*\ - !*** external ["wp","serverSideRender"] ***! - \******************************************/ -/***/ ((module) => { - -module.exports = window["wp"]["serverSideRender"]; - -/***/ }), - -/***/ "./src/blocks/release-date/block.json": -/*!********************************************!*\ - !*** ./src/blocks/release-date/block.json ***! - \********************************************/ -/***/ ((module) => { - -module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"wporg/release-date","version":"0.1.0","title":"Release Date","category":"design","icon":"","description":"A block to display release date.","textdomain":"wporg","attributes":{},"supports":{"html":false},"usesContext":["postId"],"editorScript":"file:./index.js","render":"file:./render.php","style":"file:./style-index.css"}'); - -/***/ }) - -/******/ }); -/************************************************************************/ -/******/ // The module cache -/******/ var __webpack_module_cache__ = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ // Check if module is in cache -/******/ var cachedModule = __webpack_module_cache__[moduleId]; -/******/ if (cachedModule !== undefined) { -/******/ return cachedModule.exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = __webpack_module_cache__[moduleId] = { -/******/ // no module.id needed -/******/ // no module.loaded needed -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/************************************************************************/ -/******/ /* webpack/runtime/compat get default export */ -/******/ (() => { -/******/ // getDefaultExport function for compatibility with non-harmony modules -/******/ __webpack_require__.n = (module) => { -/******/ var getter = module && module.__esModule ? -/******/ () => (module['default']) : -/******/ () => (module); -/******/ __webpack_require__.d(getter, { a: getter }); -/******/ return getter; -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/define property getters */ -/******/ (() => { -/******/ // define getter functions for harmony exports -/******/ __webpack_require__.d = (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 */ -/******/ (() => { -/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) -/******/ })(); -/******/ -/******/ /* webpack/runtime/make namespace object */ -/******/ (() => { -/******/ // define __esModule on exports -/******/ __webpack_require__.r = (exports) => { -/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { -/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); -/******/ } -/******/ Object.defineProperty(exports, '__esModule', { value: true }); -/******/ }; -/******/ })(); -/******/ -/************************************************************************/ -var __webpack_exports__ = {}; -// This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk. -(() => { -/*!******************************************!*\ - !*** ./src/blocks/release-date/index.js ***! - \******************************************/ -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); -/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/blocks */ "@wordpress/blocks"); -/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/server-side-render */ "@wordpress/server-side-render"); -/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/block-editor */ "@wordpress/block-editor"); -/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__); -/* harmony import */ var _block_json__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./block.json */ "./src/blocks/release-date/block.json"); - -/** - * WordPress dependencies - */ - - - - - -/** - * Internal dependencies - */ - -function Edit({ - attributes, - name -}) { - return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", { - ...(0,_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__.useBlockProps)() - }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Disabled, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)((_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default()), { - block: name, - attributes: attributes - }))); -} -(0,_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__.registerBlockType)(_block_json__WEBPACK_IMPORTED_MODULE_5__.name, { - edit: Edit, - save: () => null -}); -})(); - -/******/ })() -; -//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-date/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-date/render.php deleted file mode 100644 index 1b2a451d80..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-date/render.php +++ /dev/null @@ -1,21 +0,0 @@ -context['postId'] ) { - return; -} - -$release_post = get_post( $block->context['postId'] ); -if ( ! $release_post ) { - return; -} - -if ( 'publish' !== $release_post->post_status ) { - return 3; -} - -echo do_blocks( '' ); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-details-form/block.json b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-details-form/block.json deleted file mode 100644 index b6b3110b03..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-details-form/block.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "$schema": "https://schemas.wp.org/trunk/block.json", - "apiVersion": 2, - "name": "wporg/release-details-form", - "version": "0.1.0", - "title": "Release Details Form", - "category": "design", - "icon": "", - "description": "A block to display release details form.", - "textdomain": "wporg", - "attributes": {}, - "supports": { - "html": false, - "interactivity": true - }, - "usesContext": [ - "postId", - "pluginSlug" - ], - "editorScript": "file:./index.js", - "render": "file:./render.php", - "style": "file:./style-index.css" -} \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-details-form/index.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-details-form/index.asset.php deleted file mode 100644 index 3d43d176f6..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-details-form/index.asset.php +++ /dev/null @@ -1 +0,0 @@ - array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => 'b33dec13bb1cbe0f3761'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-details-form/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-details-form/index.js deleted file mode 100644 index 50704550b2..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-details-form/index.js +++ /dev/null @@ -1,298 +0,0 @@ -/******/ (() => { // webpackBootstrap -/******/ "use strict"; -/******/ var __webpack_modules__ = ({ - -/***/ "./src/blocks/release-details-form/index.js": -/*!**************************************************!*\ - !*** ./src/blocks/release-details-form/index.js ***! - \**************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); -/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/blocks */ "@wordpress/blocks"); -/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/server-side-render */ "@wordpress/server-side-render"); -/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/block-editor */ "@wordpress/block-editor"); -/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__); -/* harmony import */ var _block_json__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./block.json */ "./src/blocks/release-details-form/block.json"); -/* harmony import */ var _style_scss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./style.scss */ "./src/blocks/release-details-form/style.scss"); - -/** - * WordPress dependencies - */ - - - - - -/** - * Internal dependencies - */ - - -function Edit({ - attributes, - name -}) { - return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", { - ...(0,_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__.useBlockProps)() - }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Disabled, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)((_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default()), { - block: name, - attributes: attributes - }))); -} -(0,_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__.registerBlockType)(_block_json__WEBPACK_IMPORTED_MODULE_5__.name, { - edit: Edit, - save: () => null -}); - -/***/ }), - -/***/ "./src/blocks/release-details-form/style.scss": -/*!****************************************************!*\ - !*** ./src/blocks/release-details-form/style.scss ***! - \****************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -// extracted by mini-css-extract-plugin - - -/***/ }), - -/***/ "react": -/*!************************!*\ - !*** external "React" ***! - \************************/ -/***/ ((module) => { - -module.exports = window["React"]; - -/***/ }), - -/***/ "@wordpress/block-editor": -/*!*************************************!*\ - !*** external ["wp","blockEditor"] ***! - \*************************************/ -/***/ ((module) => { - -module.exports = window["wp"]["blockEditor"]; - -/***/ }), - -/***/ "@wordpress/blocks": -/*!********************************!*\ - !*** external ["wp","blocks"] ***! - \********************************/ -/***/ ((module) => { - -module.exports = window["wp"]["blocks"]; - -/***/ }), - -/***/ "@wordpress/components": -/*!************************************!*\ - !*** external ["wp","components"] ***! - \************************************/ -/***/ ((module) => { - -module.exports = window["wp"]["components"]; - -/***/ }), - -/***/ "@wordpress/server-side-render": -/*!******************************************!*\ - !*** external ["wp","serverSideRender"] ***! - \******************************************/ -/***/ ((module) => { - -module.exports = window["wp"]["serverSideRender"]; - -/***/ }), - -/***/ "./src/blocks/release-details-form/block.json": -/*!****************************************************!*\ - !*** ./src/blocks/release-details-form/block.json ***! - \****************************************************/ -/***/ ((module) => { - -module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"wporg/release-details-form","version":"0.1.0","title":"Release Details Form","category":"design","icon":"","description":"A block to display release details form.","textdomain":"wporg","attributes":{},"supports":{"html":false,"interactivity":true},"usesContext":["postId","pluginSlug"],"editorScript":"file:./index.js","render":"file:./render.php","style":"file:./style-index.css"}'); - -/***/ }) - -/******/ }); -/************************************************************************/ -/******/ // The module cache -/******/ var __webpack_module_cache__ = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ // Check if module is in cache -/******/ var cachedModule = __webpack_module_cache__[moduleId]; -/******/ if (cachedModule !== undefined) { -/******/ return cachedModule.exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = __webpack_module_cache__[moduleId] = { -/******/ // no module.id needed -/******/ // no module.loaded needed -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = __webpack_modules__; -/******/ -/************************************************************************/ -/******/ /* webpack/runtime/chunk loaded */ -/******/ (() => { -/******/ var deferred = []; -/******/ __webpack_require__.O = (result, chunkIds, fn, priority) => { -/******/ if(chunkIds) { -/******/ priority = priority || 0; -/******/ for(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1]; -/******/ deferred[i] = [chunkIds, fn, priority]; -/******/ return; -/******/ } -/******/ var notFulfilled = Infinity; -/******/ for (var i = 0; i < deferred.length; i++) { -/******/ var chunkIds = deferred[i][0]; -/******/ var fn = deferred[i][1]; -/******/ var priority = deferred[i][2]; -/******/ var fulfilled = true; -/******/ for (var j = 0; j < chunkIds.length; j++) { -/******/ if ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) { -/******/ chunkIds.splice(j--, 1); -/******/ } else { -/******/ fulfilled = false; -/******/ if(priority < notFulfilled) notFulfilled = priority; -/******/ } -/******/ } -/******/ if(fulfilled) { -/******/ deferred.splice(i--, 1) -/******/ var r = fn(); -/******/ if (r !== undefined) result = r; -/******/ } -/******/ } -/******/ return result; -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/compat get default export */ -/******/ (() => { -/******/ // getDefaultExport function for compatibility with non-harmony modules -/******/ __webpack_require__.n = (module) => { -/******/ var getter = module && module.__esModule ? -/******/ () => (module['default']) : -/******/ () => (module); -/******/ __webpack_require__.d(getter, { a: getter }); -/******/ return getter; -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/define property getters */ -/******/ (() => { -/******/ // define getter functions for harmony exports -/******/ __webpack_require__.d = (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 */ -/******/ (() => { -/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) -/******/ })(); -/******/ -/******/ /* webpack/runtime/make namespace object */ -/******/ (() => { -/******/ // define __esModule on exports -/******/ __webpack_require__.r = (exports) => { -/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { -/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); -/******/ } -/******/ Object.defineProperty(exports, '__esModule', { value: true }); -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/jsonp chunk loading */ -/******/ (() => { -/******/ // no baseURI -/******/ -/******/ // object to store loaded and loading chunks -/******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched -/******/ // [resolve, reject, Promise] = chunk loading, 0 = chunk loaded -/******/ var installedChunks = { -/******/ "blocks/release-details-form/index": 0, -/******/ "blocks/release-details-form/style-index": 0 -/******/ }; -/******/ -/******/ // no chunk on demand loading -/******/ -/******/ // no prefetching -/******/ -/******/ // no preloaded -/******/ -/******/ // no HMR -/******/ -/******/ // no HMR manifest -/******/ -/******/ __webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0); -/******/ -/******/ // install a JSONP callback for chunk loading -/******/ var webpackJsonpCallback = (parentChunkLoadingFunction, data) => { -/******/ var chunkIds = data[0]; -/******/ var moreModules = data[1]; -/******/ var runtime = data[2]; -/******/ // add "moreModules" to the modules object, -/******/ // then flag all "chunkIds" as loaded and fire callback -/******/ var moduleId, chunkId, i = 0; -/******/ if(chunkIds.some((id) => (installedChunks[id] !== 0))) { -/******/ for(moduleId in moreModules) { -/******/ if(__webpack_require__.o(moreModules, moduleId)) { -/******/ __webpack_require__.m[moduleId] = moreModules[moduleId]; -/******/ } -/******/ } -/******/ if(runtime) var result = runtime(__webpack_require__); -/******/ } -/******/ if(parentChunkLoadingFunction) parentChunkLoadingFunction(data); -/******/ for(;i < chunkIds.length; i++) { -/******/ chunkId = chunkIds[i]; -/******/ if(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) { -/******/ installedChunks[chunkId][0](); -/******/ } -/******/ installedChunks[chunkId] = 0; -/******/ } -/******/ return __webpack_require__.O(result); -/******/ } -/******/ -/******/ var chunkLoadingGlobal = self["webpackChunkwporg_plugins_2024"] = self["webpackChunkwporg_plugins_2024"] || []; -/******/ chunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0)); -/******/ chunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal)); -/******/ })(); -/******/ -/************************************************************************/ -/******/ -/******/ // startup -/******/ // Load entry module and return exports -/******/ // This entry module depends on other loaded chunks and execution need to be delayed -/******/ var __webpack_exports__ = __webpack_require__.O(undefined, ["blocks/release-details-form/style-index"], () => (__webpack_require__("./src/blocks/release-details-form/index.js"))) -/******/ __webpack_exports__ = __webpack_require__.O(__webpack_exports__); -/******/ -/******/ })() -; -//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-details-form/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-details-form/render.php deleted file mode 100644 index fad7f60f7d..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-details-form/render.php +++ /dev/null @@ -1,277 +0,0 @@ -context['postId'] ) ) { - return; -} - -$release_post = get_post( $block->context['postId'] ); - -// Bail if the release post does not exist. -if ( ! $release_post ) { - return; -} - -$current_version = get_post_meta( $block->context['postId'], 'release_version', true ); -$tested_up_to = get_post_meta( $block->context['postId'], 'release_tested', true ); - -/** - * Returns whether the tested_up_to value is recent. - * - * @param string $tested_up_to The tested up to value. - * - * @return bool Whether the tested up to value is recent. - */ -function has_recently_been_tested( $tested_up_to ) { - global $wp_version; - - // If the tested up to value is empty, it's not recent. - if ( empty( $tested_up_to ) ) { - return false; - } - - $latest_release = $wp_version; - - if ( defined( 'WP_CORE_STABLE_BRANCH' ) ) { - $latest_release = WP_CORE_STABLE_BRANCH; - } - - $tested_major = (int) explode( '.', $tested_up_to )[0]; - $latest_major = (int) explode( '.', $latest_release )[0]; - - return $tested_major >= $latest_major; -} - -/** - * Generate the HTML for a release item content block. - * - * @param string $label The label for the item. - * @param string $content The additional content or description. - * @return string The formatted HTML content for the release item. - */ -function get_release_item_content( $label, $content ) { - return sprintf( - '
    %1$s
    %2$s
    ', - esc_html( $label ), - wp_kses_post( $content ) - ); -} - -/** - * Generate a release check item block with a specific status. - * - * @param string $status The status of the check item ('success' or 'error'). - * @param string $content The content to display inside the block. - * @return string The formatted block content. - */ -function get_release_check_item( $status, $content ) { - return do_blocks( - sprintf( - '%2$s', - esc_attr( $status ), - $content - ) - ); -} - -/** - * Generate the block content for the version number check item. - * - * @param bool $verdict Whether the version number is valid. - * @param string $value The current version number. - * - * @return string The block content. - */ -function get_changelog_check_item() { - $label = __( 'Update your changelog with key changes.', 'wporg-plugins' ); - $info_text = sprintf( - 'Learn more about writing useful changelogs.', - esc_url( 'https://developer.wordpress.org/plugins/wordpress-org/plugin-developer-faq/#what-should-be-in-my-changelog' ), - ); - - $content = get_release_item_content( $label, $info_text ); - - return get_release_check_item( 'default', $content ); -} - -/** - * Generate the block content for the version number check item. - * - * @param bool $verdict Whether the version number is valid. - * @param string $value The current version number. - * - * @return string The block content. - */ -function get_view_diff_check_item( $post ) { - $label = __( 'Review your changes.', 'wporg-plugins' ); - $commits = get_post_meta( $post->ID, 'release_commit_log', true ); - $plugin = get_post( $post->post_parent ); - $info_text = sprintf( - /* translators: %s: URL to the plugin in the Plugin Directory */ - __( 'Scan through your changeset before publishing.', 'wporg-plugins' ), - esc_url( get_revision_changeset_link( $plugin->post_name, $commits ) ) - ); - $content = get_release_item_content( $label, $info_text ); - - return get_release_check_item( 'default', $content ); -} - -/** - * Generate the block content for the version number check item. - * - * @param bool $verdict Whether the version number is valid. - * @param string $value The current version number. - * - * @return string The block content. - */ -function get_version_number_check_item( $verdict, $value ) { - $label = __( 'Increment your version number.', 'wporg-plugins' ); - - $info_text = sprintf( - /* translators: %s: The current version number */ - __( 'Current version: %s', 'wporg-plugins' ), - '' . $value . '', - ); - - $status = ''; - - if ( ! $verdict ) { - $status = 'error'; - $info_text = sprintf( - /* translators: %s: The current version number */ - __( 'Your plugin\'s version number %s must be incremented before you can publish.', 'wporg-plugins' ), - '' . $value . '', - ); - } - - $content = get_release_item_content( $label, $info_text ); - - return get_release_check_item( $status, $content ); -} - -/** - * Generate the block content for the "Tested up to" check item. - * - * @param bool $verdict Whether the tested up to value is recent. - * @param string $value The tested up to value. - * @param WP_Post $release_post The release post object. - * - * @return string The block content. - */ -function get_tested_up_to_check_item( $verdict, $value, $release_post ) { - $label = __( - 'Test your plugin with the latest version of WordPress.', - 'wporg-plugins' - ); - $status = ''; - - $plugin = get_post( $release_post->post_parent ); - - $blueprint_url = get_blueprint_url( - sprintf( - 'https://downloads.wordpress.org/plugin/%s.zip', - $plugin->post_name, - ) - ); - - $info_text = sprintf( - /* translators: %s: The Tested Up to value */ - __( 'Tested up to: %s', 'wporg-plugins' ), - '' . $value . '', - ); - - if ( empty( $value ) ) { - $value = __( 'Unknown', 'wporg-plugins' ); - $status = 'error'; - $info_text = __( 'We weren\'t able to determine your "Tested up to" value.', 'wporg-plugins' ); - } elseif ( ! $verdict ) { - $status = 'warning'; - $info_text = sprintf( - /* translators: %s: URL to the plugin in the Plugin Directory */ - __( 'Tested up to is %1$s. Test it now in Playground and update. ', 'wporg-plugins' ), - '' . $value . '', - esc_url( $blueprint_url ) - ); - } - - $content = get_release_item_content( $label, $info_text ); - - return get_release_check_item( $status, $content ); -} - -$latest_release = get_latest_release( $release_post->post_parent ); -$last_version = get_post_meta( $latest_release->ID, 'release_version', true ); -$version_pass = version_compare( $current_version, $last_version, '>' ); -$tested_up_to_pass = has_recently_been_tested( $tested_up_to ); - -?> - -
    -> - -

    %s

    - ', - esc_html__( 'Checklist', 'wporg-plugins' ) - ) - ) - ?> -
      - - - - -
    - - - - //
    - //
    - //

    %s

    - //
    - // ', - // esc_html__( 'You need to increment your plugin version number and reload the page.', 'wporg-plugins' ) - // ); - // echo do_blocks( $block ); - ?> - -
    -
    - -
    - -
    - -
    -
    -
    diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-details-form/style-index.css b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-details-form/style-index.css deleted file mode 100644 index b1db4ce341..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-details-form/style-index.css +++ /dev/null @@ -1,17 +0,0 @@ -/*!*******************************************************************************************************************************************************************************************************************************************************************!*\ - !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/blocks/release-details-form/style.scss ***! - \*******************************************************************************************************************************************************************************************************************************************************************/ -.wp-block-wporg-release-details-form label { - display: block; -} -.wp-block-wporg-release-details-form .wp-block-wporg-release-result-item > div:last-child > div { - color: var(--wp--preset--color--charcoal-4); -} - -.wp-block-wporg-release-details-form-actions { - display: flex; - margin-top: var(--wp--preset--spacing--30); - gap: 8px; -} - -/*# sourceMappingURL=style-index.css.map*/ \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-details/block.json b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-details/block.json deleted file mode 100644 index b795ec0776..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-details/block.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "$schema": "https://schemas.wp.org/trunk/block.json", - "apiVersion": 2, - "name": "wporg/release-details-form", - "version": "0.1.0", - "title": "Release Confirmation Banner.", - "category": "design", - "icon": "", - "description": "A block to display release confirmation banner.", - "textdomain": "wporg", - "attributes": {}, - "supports": { - "html": false, - "interactivity": true - }, - "usesContext": [ - "postId" - ], - "editorScript": "file:./index.js", - "render": "file:./render.php", - "style": "file:./style-index.css" -} \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-details/index.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-details/index.asset.php deleted file mode 100644 index 36468b5ed6..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-details/index.asset.php +++ /dev/null @@ -1 +0,0 @@ - array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => 'a8cd79e05f5d711aeba7'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-details/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-details/index.js deleted file mode 100644 index 768182083e..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-details/index.js +++ /dev/null @@ -1,298 +0,0 @@ -/******/ (() => { // webpackBootstrap -/******/ "use strict"; -/******/ var __webpack_modules__ = ({ - -/***/ "./src/blocks/release-details/index.js": -/*!*********************************************!*\ - !*** ./src/blocks/release-details/index.js ***! - \*********************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); -/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/blocks */ "@wordpress/blocks"); -/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/server-side-render */ "@wordpress/server-side-render"); -/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/block-editor */ "@wordpress/block-editor"); -/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__); -/* harmony import */ var _block_json__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./block.json */ "./src/blocks/release-details/block.json"); -/* harmony import */ var _style_scss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./style.scss */ "./src/blocks/release-details/style.scss"); - -/** - * WordPress dependencies - */ - - - - - -/** - * Internal dependencies - */ - - -function Edit({ - attributes, - name -}) { - return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", { - ...(0,_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__.useBlockProps)() - }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Disabled, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)((_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default()), { - block: name, - attributes: attributes - }))); -} -(0,_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__.registerBlockType)(_block_json__WEBPACK_IMPORTED_MODULE_5__.name, { - edit: Edit, - save: () => null -}); - -/***/ }), - -/***/ "./src/blocks/release-details/style.scss": -/*!***********************************************!*\ - !*** ./src/blocks/release-details/style.scss ***! - \***********************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -// extracted by mini-css-extract-plugin - - -/***/ }), - -/***/ "react": -/*!************************!*\ - !*** external "React" ***! - \************************/ -/***/ ((module) => { - -module.exports = window["React"]; - -/***/ }), - -/***/ "@wordpress/block-editor": -/*!*************************************!*\ - !*** external ["wp","blockEditor"] ***! - \*************************************/ -/***/ ((module) => { - -module.exports = window["wp"]["blockEditor"]; - -/***/ }), - -/***/ "@wordpress/blocks": -/*!********************************!*\ - !*** external ["wp","blocks"] ***! - \********************************/ -/***/ ((module) => { - -module.exports = window["wp"]["blocks"]; - -/***/ }), - -/***/ "@wordpress/components": -/*!************************************!*\ - !*** external ["wp","components"] ***! - \************************************/ -/***/ ((module) => { - -module.exports = window["wp"]["components"]; - -/***/ }), - -/***/ "@wordpress/server-side-render": -/*!******************************************!*\ - !*** external ["wp","serverSideRender"] ***! - \******************************************/ -/***/ ((module) => { - -module.exports = window["wp"]["serverSideRender"]; - -/***/ }), - -/***/ "./src/blocks/release-details/block.json": -/*!***********************************************!*\ - !*** ./src/blocks/release-details/block.json ***! - \***********************************************/ -/***/ ((module) => { - -module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"wporg/release-details-form","version":"0.1.0","title":"Release Confirmation Banner.","category":"design","icon":"","description":"A block to display release confirmation banner.","textdomain":"wporg","attributes":{},"supports":{"html":false,"interactivity":true},"usesContext":["postId"],"editorScript":"file:./index.js","render":"file:./render.php","style":"file:./style-index.css"}'); - -/***/ }) - -/******/ }); -/************************************************************************/ -/******/ // The module cache -/******/ var __webpack_module_cache__ = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ // Check if module is in cache -/******/ var cachedModule = __webpack_module_cache__[moduleId]; -/******/ if (cachedModule !== undefined) { -/******/ return cachedModule.exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = __webpack_module_cache__[moduleId] = { -/******/ // no module.id needed -/******/ // no module.loaded needed -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = __webpack_modules__; -/******/ -/************************************************************************/ -/******/ /* webpack/runtime/chunk loaded */ -/******/ (() => { -/******/ var deferred = []; -/******/ __webpack_require__.O = (result, chunkIds, fn, priority) => { -/******/ if(chunkIds) { -/******/ priority = priority || 0; -/******/ for(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1]; -/******/ deferred[i] = [chunkIds, fn, priority]; -/******/ return; -/******/ } -/******/ var notFulfilled = Infinity; -/******/ for (var i = 0; i < deferred.length; i++) { -/******/ var chunkIds = deferred[i][0]; -/******/ var fn = deferred[i][1]; -/******/ var priority = deferred[i][2]; -/******/ var fulfilled = true; -/******/ for (var j = 0; j < chunkIds.length; j++) { -/******/ if ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) { -/******/ chunkIds.splice(j--, 1); -/******/ } else { -/******/ fulfilled = false; -/******/ if(priority < notFulfilled) notFulfilled = priority; -/******/ } -/******/ } -/******/ if(fulfilled) { -/******/ deferred.splice(i--, 1) -/******/ var r = fn(); -/******/ if (r !== undefined) result = r; -/******/ } -/******/ } -/******/ return result; -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/compat get default export */ -/******/ (() => { -/******/ // getDefaultExport function for compatibility with non-harmony modules -/******/ __webpack_require__.n = (module) => { -/******/ var getter = module && module.__esModule ? -/******/ () => (module['default']) : -/******/ () => (module); -/******/ __webpack_require__.d(getter, { a: getter }); -/******/ return getter; -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/define property getters */ -/******/ (() => { -/******/ // define getter functions for harmony exports -/******/ __webpack_require__.d = (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 */ -/******/ (() => { -/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) -/******/ })(); -/******/ -/******/ /* webpack/runtime/make namespace object */ -/******/ (() => { -/******/ // define __esModule on exports -/******/ __webpack_require__.r = (exports) => { -/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { -/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); -/******/ } -/******/ Object.defineProperty(exports, '__esModule', { value: true }); -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/jsonp chunk loading */ -/******/ (() => { -/******/ // no baseURI -/******/ -/******/ // object to store loaded and loading chunks -/******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched -/******/ // [resolve, reject, Promise] = chunk loading, 0 = chunk loaded -/******/ var installedChunks = { -/******/ "blocks/release-details/index": 0, -/******/ "blocks/release-details/style-index": 0 -/******/ }; -/******/ -/******/ // no chunk on demand loading -/******/ -/******/ // no prefetching -/******/ -/******/ // no preloaded -/******/ -/******/ // no HMR -/******/ -/******/ // no HMR manifest -/******/ -/******/ __webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0); -/******/ -/******/ // install a JSONP callback for chunk loading -/******/ var webpackJsonpCallback = (parentChunkLoadingFunction, data) => { -/******/ var chunkIds = data[0]; -/******/ var moreModules = data[1]; -/******/ var runtime = data[2]; -/******/ // add "moreModules" to the modules object, -/******/ // then flag all "chunkIds" as loaded and fire callback -/******/ var moduleId, chunkId, i = 0; -/******/ if(chunkIds.some((id) => (installedChunks[id] !== 0))) { -/******/ for(moduleId in moreModules) { -/******/ if(__webpack_require__.o(moreModules, moduleId)) { -/******/ __webpack_require__.m[moduleId] = moreModules[moduleId]; -/******/ } -/******/ } -/******/ if(runtime) var result = runtime(__webpack_require__); -/******/ } -/******/ if(parentChunkLoadingFunction) parentChunkLoadingFunction(data); -/******/ for(;i < chunkIds.length; i++) { -/******/ chunkId = chunkIds[i]; -/******/ if(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) { -/******/ installedChunks[chunkId][0](); -/******/ } -/******/ installedChunks[chunkId] = 0; -/******/ } -/******/ return __webpack_require__.O(result); -/******/ } -/******/ -/******/ var chunkLoadingGlobal = self["webpackChunkwporg_plugins_2024"] = self["webpackChunkwporg_plugins_2024"] || []; -/******/ chunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0)); -/******/ chunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal)); -/******/ })(); -/******/ -/************************************************************************/ -/******/ -/******/ // startup -/******/ // Load entry module and return exports -/******/ // This entry module depends on other loaded chunks and execution need to be delayed -/******/ var __webpack_exports__ = __webpack_require__.O(undefined, ["blocks/release-details/style-index"], () => (__webpack_require__("./src/blocks/release-details/index.js"))) -/******/ __webpack_exports__ = __webpack_require__.O(__webpack_exports__); -/******/ -/******/ })() -; -//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-details/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-details/render.php deleted file mode 100644 index 88d2157e4e..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-details/render.php +++ /dev/null @@ -1,48 +0,0 @@ -context['postId'] ) { - return; -} - -$release_post = get_post( $block->context['postId'] ); -if ( ! $release_post ) { - return; -} - -?> -
    -> - - - -
    -

    - - - -

    - - - -
    -
    - -
    - -
    - -
    -
    - - -
    - -
    diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-details/style-index.css b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-details/style-index.css deleted file mode 100644 index 280fc9ee28..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-details/style-index.css +++ /dev/null @@ -1,9 +0,0 @@ -/*!**************************************************************************************************************************************************************************************************************************************************************!*\ - !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/blocks/release-details/style.scss ***! - \**************************************************************************************************************************************************************************************************************************************************************/ -.wp-block-wporg-release-confirmation .wporg-release-confirmation-actions { - display: flex; - gap: 8px; -} - -/*# sourceMappingURL=style-index.css.map*/ \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft copy/block.json b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft copy/block.json deleted file mode 100644 index c7b597f270..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft copy/block.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "$schema": "https://schemas.wp.org/trunk/block.json", - "apiVersion": 2, - "name": "wporg/release-draft", - "version": "0.1.0", - "title": "Release Draft", - "category": "design", - "icon": "", - "description": "A block to display release draft.", - "textdomain": "wporg", - "attributes": {}, - "supports": { - "html": false, - "interactivity": true - }, - "usesContext": [ - "postId" - ], - "editorScript": "file:./index.js", - "render": "file:./render.php", - "style": "file:./style-index.css" -} \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft copy/index.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft copy/index.asset.php deleted file mode 100644 index b8290f49f1..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft copy/index.asset.php +++ /dev/null @@ -1 +0,0 @@ - array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => 'ec1166f5c9e9f7d50f78'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft copy/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft copy/index.js deleted file mode 100644 index 39ccc53a5f..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft copy/index.js +++ /dev/null @@ -1,298 +0,0 @@ -/******/ (() => { // webpackBootstrap -/******/ "use strict"; -/******/ var __webpack_modules__ = ({ - -/***/ "./src/blocks/release-draft copy/index.js": -/*!************************************************!*\ - !*** ./src/blocks/release-draft copy/index.js ***! - \************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); -/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/blocks */ "@wordpress/blocks"); -/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/server-side-render */ "@wordpress/server-side-render"); -/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/block-editor */ "@wordpress/block-editor"); -/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__); -/* harmony import */ var _block_json__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./block.json */ "./src/blocks/release-draft copy/block.json"); -/* harmony import */ var _style_scss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./style.scss */ "./src/blocks/release-draft copy/style.scss"); - -/** - * WordPress dependencies - */ - - - - - -/** - * Internal dependencies - */ - - -function Edit({ - attributes, - name -}) { - return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", { - ...(0,_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__.useBlockProps)() - }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Disabled, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)((_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default()), { - block: name, - attributes: attributes - }))); -} -(0,_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__.registerBlockType)(_block_json__WEBPACK_IMPORTED_MODULE_5__.name, { - edit: Edit, - save: () => null -}); - -/***/ }), - -/***/ "./src/blocks/release-draft copy/style.scss": -/*!**************************************************!*\ - !*** ./src/blocks/release-draft copy/style.scss ***! - \**************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -// extracted by mini-css-extract-plugin - - -/***/ }), - -/***/ "react": -/*!************************!*\ - !*** external "React" ***! - \************************/ -/***/ ((module) => { - -module.exports = window["React"]; - -/***/ }), - -/***/ "@wordpress/block-editor": -/*!*************************************!*\ - !*** external ["wp","blockEditor"] ***! - \*************************************/ -/***/ ((module) => { - -module.exports = window["wp"]["blockEditor"]; - -/***/ }), - -/***/ "@wordpress/blocks": -/*!********************************!*\ - !*** external ["wp","blocks"] ***! - \********************************/ -/***/ ((module) => { - -module.exports = window["wp"]["blocks"]; - -/***/ }), - -/***/ "@wordpress/components": -/*!************************************!*\ - !*** external ["wp","components"] ***! - \************************************/ -/***/ ((module) => { - -module.exports = window["wp"]["components"]; - -/***/ }), - -/***/ "@wordpress/server-side-render": -/*!******************************************!*\ - !*** external ["wp","serverSideRender"] ***! - \******************************************/ -/***/ ((module) => { - -module.exports = window["wp"]["serverSideRender"]; - -/***/ }), - -/***/ "./src/blocks/release-draft copy/block.json": -/*!**************************************************!*\ - !*** ./src/blocks/release-draft copy/block.json ***! - \**************************************************/ -/***/ ((module) => { - -module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"wporg/release-draft","version":"0.1.0","title":"Release Draft","category":"design","icon":"","description":"A block to display release draft.","textdomain":"wporg","attributes":{},"supports":{"html":false,"interactivity":true},"usesContext":["postId"],"editorScript":"file:./index.js","render":"file:./render.php","style":"file:./style-index.css"}'); - -/***/ }) - -/******/ }); -/************************************************************************/ -/******/ // The module cache -/******/ var __webpack_module_cache__ = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ // Check if module is in cache -/******/ var cachedModule = __webpack_module_cache__[moduleId]; -/******/ if (cachedModule !== undefined) { -/******/ return cachedModule.exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = __webpack_module_cache__[moduleId] = { -/******/ // no module.id needed -/******/ // no module.loaded needed -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = __webpack_modules__; -/******/ -/************************************************************************/ -/******/ /* webpack/runtime/chunk loaded */ -/******/ (() => { -/******/ var deferred = []; -/******/ __webpack_require__.O = (result, chunkIds, fn, priority) => { -/******/ if(chunkIds) { -/******/ priority = priority || 0; -/******/ for(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1]; -/******/ deferred[i] = [chunkIds, fn, priority]; -/******/ return; -/******/ } -/******/ var notFulfilled = Infinity; -/******/ for (var i = 0; i < deferred.length; i++) { -/******/ var chunkIds = deferred[i][0]; -/******/ var fn = deferred[i][1]; -/******/ var priority = deferred[i][2]; -/******/ var fulfilled = true; -/******/ for (var j = 0; j < chunkIds.length; j++) { -/******/ if ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) { -/******/ chunkIds.splice(j--, 1); -/******/ } else { -/******/ fulfilled = false; -/******/ if(priority < notFulfilled) notFulfilled = priority; -/******/ } -/******/ } -/******/ if(fulfilled) { -/******/ deferred.splice(i--, 1) -/******/ var r = fn(); -/******/ if (r !== undefined) result = r; -/******/ } -/******/ } -/******/ return result; -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/compat get default export */ -/******/ (() => { -/******/ // getDefaultExport function for compatibility with non-harmony modules -/******/ __webpack_require__.n = (module) => { -/******/ var getter = module && module.__esModule ? -/******/ () => (module['default']) : -/******/ () => (module); -/******/ __webpack_require__.d(getter, { a: getter }); -/******/ return getter; -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/define property getters */ -/******/ (() => { -/******/ // define getter functions for harmony exports -/******/ __webpack_require__.d = (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 */ -/******/ (() => { -/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) -/******/ })(); -/******/ -/******/ /* webpack/runtime/make namespace object */ -/******/ (() => { -/******/ // define __esModule on exports -/******/ __webpack_require__.r = (exports) => { -/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { -/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); -/******/ } -/******/ Object.defineProperty(exports, '__esModule', { value: true }); -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/jsonp chunk loading */ -/******/ (() => { -/******/ // no baseURI -/******/ -/******/ // object to store loaded and loading chunks -/******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched -/******/ // [resolve, reject, Promise] = chunk loading, 0 = chunk loaded -/******/ var installedChunks = { -/******/ "blocks/release-draft copy/index": 0, -/******/ "blocks/release-draft copy/style-index": 0 -/******/ }; -/******/ -/******/ // no chunk on demand loading -/******/ -/******/ // no prefetching -/******/ -/******/ // no preloaded -/******/ -/******/ // no HMR -/******/ -/******/ // no HMR manifest -/******/ -/******/ __webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0); -/******/ -/******/ // install a JSONP callback for chunk loading -/******/ var webpackJsonpCallback = (parentChunkLoadingFunction, data) => { -/******/ var chunkIds = data[0]; -/******/ var moreModules = data[1]; -/******/ var runtime = data[2]; -/******/ // add "moreModules" to the modules object, -/******/ // then flag all "chunkIds" as loaded and fire callback -/******/ var moduleId, chunkId, i = 0; -/******/ if(chunkIds.some((id) => (installedChunks[id] !== 0))) { -/******/ for(moduleId in moreModules) { -/******/ if(__webpack_require__.o(moreModules, moduleId)) { -/******/ __webpack_require__.m[moduleId] = moreModules[moduleId]; -/******/ } -/******/ } -/******/ if(runtime) var result = runtime(__webpack_require__); -/******/ } -/******/ if(parentChunkLoadingFunction) parentChunkLoadingFunction(data); -/******/ for(;i < chunkIds.length; i++) { -/******/ chunkId = chunkIds[i]; -/******/ if(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) { -/******/ installedChunks[chunkId][0](); -/******/ } -/******/ installedChunks[chunkId] = 0; -/******/ } -/******/ return __webpack_require__.O(result); -/******/ } -/******/ -/******/ var chunkLoadingGlobal = self["webpackChunkwporg_plugins_2024"] = self["webpackChunkwporg_plugins_2024"] || []; -/******/ chunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0)); -/******/ chunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal)); -/******/ })(); -/******/ -/************************************************************************/ -/******/ -/******/ // startup -/******/ // Load entry module and return exports -/******/ // This entry module depends on other loaded chunks and execution need to be delayed -/******/ var __webpack_exports__ = __webpack_require__.O(undefined, ["blocks/release-draft copy/style-index"], () => (__webpack_require__("./src/blocks/release-draft copy/index.js"))) -/******/ __webpack_exports__ = __webpack_require__.O(__webpack_exports__); -/******/ -/******/ })() -; -//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft copy/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft copy/render.php deleted file mode 100644 index c5e80e1704..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft copy/render.php +++ /dev/null @@ -1,124 +0,0 @@ -context['postId'] ) { - return; -} - -$plugin_post = get_post( $block->context['postId'] ); - -if ( ! $plugin_post ) { - return; -} - -/** - * We are in the context of the plugin post, so we can query for the latest draft post. - */ -$query_args = array( - 'post_type' => 'plugin_release', - 'posts_per_page' => 1, - 'post_parent' => $plugin_post->ID, - 'orderby' => 'date', - 'post_status' => 'draft', - 'order' => 'DESC', -); - -$latest_draft_query = new WP_Query( $query_args ); - -if ( ! $latest_draft_query->have_posts() ) { - return; -} - -// Fetch the latest draft post. -$latest_draft_query->the_post(); - -$post_title = __( 'Trunk', 'wporg-plugins' ); -$intro_text = __( 'There are unpublished changes in your trunk folder.', 'wporg-plugins' ); -$publish_title = __( 'Create release', 'wporg-plugins' ); -$publish_intro_text = __( 'Before releasing your plugin, use this checklist to ensure everything is up-to-date and ready for your users:', 'wporg-plugins' ); -$publish_button_text = __( 'Create release', 'wporg-plugins' ); - -$markup = << - -
    - -
    - -
    - - -
    - -

    - $post_title -

    - -
    - - - -

    $intro_text

    - - -
    - -
    - - - - - -
    -
    - -
    -
    - -
    - -
    - -
    - -
    - -
    - -

    - $publish_title -

    - -
    - - - -

    $publish_intro_text

    - - - - -
    - -
    -HTML; - -printf( - '
    %3$s
    ', - 'data-wp-interactive="async-action-block"', - wp_kses_data( get_block_wrapper_attributes() ), - do_blocks( $markup ) // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -); - -// Reset global post data. -wp_reset_postdata(); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft copy/style-index.css b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft copy/style-index.css deleted file mode 100644 index 12c4011027..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft copy/style-index.css +++ /dev/null @@ -1,8 +0,0 @@ -/*!*****************************************************************************************************************************************************************************************************************************************************************!*\ - !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/blocks/release-draft copy/style.scss ***! - \*****************************************************************************************************************************************************************************************************************************************************************/ -.wp-block-wporg-release-draft { - font-size: var(--wp--preset--font-size--small); -} - -/*# sourceMappingURL=style-index.css.map*/ \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-card/block.json b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-card/block.json deleted file mode 100644 index ac65278c75..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-card/block.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "$schema": "https://schemas.wp.org/trunk/block.json", - "apiVersion": 2, - "name": "wporg/release-draft-card", - "version": "0.1.0", - "title": "Release Card", - "category": "design", - "icon": "", - "description": "A block to display release draft card.", - "textdomain": "wporg", - "attributes": { - "title": { - "type": "string", - "default": "" - } - }, - "supports": { - "html": false, - "interactivity": true - }, - "usesContext": [ - "postId" - ], - "editorScript": "file:./index.js", - "render": "file:./render.php", - "style": "file:./style-index.css" -} \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-card/index.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-card/index.asset.php deleted file mode 100644 index 0dec727d7d..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-card/index.asset.php +++ /dev/null @@ -1 +0,0 @@ - array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => 'ff8e2cb22c250b0d6bfe'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-card/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-card/index.js deleted file mode 100644 index 602db4b870..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-card/index.js +++ /dev/null @@ -1,298 +0,0 @@ -/******/ (() => { // webpackBootstrap -/******/ "use strict"; -/******/ var __webpack_modules__ = ({ - -/***/ "./src/blocks/release-draft-card/index.js": -/*!************************************************!*\ - !*** ./src/blocks/release-draft-card/index.js ***! - \************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); -/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/blocks */ "@wordpress/blocks"); -/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/server-side-render */ "@wordpress/server-side-render"); -/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/block-editor */ "@wordpress/block-editor"); -/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__); -/* harmony import */ var _block_json__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./block.json */ "./src/blocks/release-draft-card/block.json"); -/* harmony import */ var _style_scss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./style.scss */ "./src/blocks/release-draft-card/style.scss"); - -/** - * WordPress dependencies - */ - - - - - -/** - * Internal dependencies - */ - - -function Edit({ - attributes, - name -}) { - return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", { - ...(0,_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__.useBlockProps)() - }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Disabled, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)((_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default()), { - block: name, - attributes: attributes - }))); -} -(0,_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__.registerBlockType)(_block_json__WEBPACK_IMPORTED_MODULE_5__.name, { - edit: Edit, - save: () => null -}); - -/***/ }), - -/***/ "./src/blocks/release-draft-card/style.scss": -/*!**************************************************!*\ - !*** ./src/blocks/release-draft-card/style.scss ***! - \**************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -// extracted by mini-css-extract-plugin - - -/***/ }), - -/***/ "react": -/*!************************!*\ - !*** external "React" ***! - \************************/ -/***/ ((module) => { - -module.exports = window["React"]; - -/***/ }), - -/***/ "@wordpress/block-editor": -/*!*************************************!*\ - !*** external ["wp","blockEditor"] ***! - \*************************************/ -/***/ ((module) => { - -module.exports = window["wp"]["blockEditor"]; - -/***/ }), - -/***/ "@wordpress/blocks": -/*!********************************!*\ - !*** external ["wp","blocks"] ***! - \********************************/ -/***/ ((module) => { - -module.exports = window["wp"]["blocks"]; - -/***/ }), - -/***/ "@wordpress/components": -/*!************************************!*\ - !*** external ["wp","components"] ***! - \************************************/ -/***/ ((module) => { - -module.exports = window["wp"]["components"]; - -/***/ }), - -/***/ "@wordpress/server-side-render": -/*!******************************************!*\ - !*** external ["wp","serverSideRender"] ***! - \******************************************/ -/***/ ((module) => { - -module.exports = window["wp"]["serverSideRender"]; - -/***/ }), - -/***/ "./src/blocks/release-draft-card/block.json": -/*!**************************************************!*\ - !*** ./src/blocks/release-draft-card/block.json ***! - \**************************************************/ -/***/ ((module) => { - -module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"wporg/release-draft-card","version":"0.1.0","title":"Release Card","category":"design","icon":"","description":"A block to display release draft card.","textdomain":"wporg","attributes":{"title":{"type":"string","default":""}},"supports":{"html":false,"interactivity":true},"usesContext":["postId"],"editorScript":"file:./index.js","render":"file:./render.php","style":"file:./style-index.css"}'); - -/***/ }) - -/******/ }); -/************************************************************************/ -/******/ // The module cache -/******/ var __webpack_module_cache__ = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ // Check if module is in cache -/******/ var cachedModule = __webpack_module_cache__[moduleId]; -/******/ if (cachedModule !== undefined) { -/******/ return cachedModule.exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = __webpack_module_cache__[moduleId] = { -/******/ // no module.id needed -/******/ // no module.loaded needed -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = __webpack_modules__; -/******/ -/************************************************************************/ -/******/ /* webpack/runtime/chunk loaded */ -/******/ (() => { -/******/ var deferred = []; -/******/ __webpack_require__.O = (result, chunkIds, fn, priority) => { -/******/ if(chunkIds) { -/******/ priority = priority || 0; -/******/ for(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1]; -/******/ deferred[i] = [chunkIds, fn, priority]; -/******/ return; -/******/ } -/******/ var notFulfilled = Infinity; -/******/ for (var i = 0; i < deferred.length; i++) { -/******/ var chunkIds = deferred[i][0]; -/******/ var fn = deferred[i][1]; -/******/ var priority = deferred[i][2]; -/******/ var fulfilled = true; -/******/ for (var j = 0; j < chunkIds.length; j++) { -/******/ if ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) { -/******/ chunkIds.splice(j--, 1); -/******/ } else { -/******/ fulfilled = false; -/******/ if(priority < notFulfilled) notFulfilled = priority; -/******/ } -/******/ } -/******/ if(fulfilled) { -/******/ deferred.splice(i--, 1) -/******/ var r = fn(); -/******/ if (r !== undefined) result = r; -/******/ } -/******/ } -/******/ return result; -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/compat get default export */ -/******/ (() => { -/******/ // getDefaultExport function for compatibility with non-harmony modules -/******/ __webpack_require__.n = (module) => { -/******/ var getter = module && module.__esModule ? -/******/ () => (module['default']) : -/******/ () => (module); -/******/ __webpack_require__.d(getter, { a: getter }); -/******/ return getter; -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/define property getters */ -/******/ (() => { -/******/ // define getter functions for harmony exports -/******/ __webpack_require__.d = (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 */ -/******/ (() => { -/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) -/******/ })(); -/******/ -/******/ /* webpack/runtime/make namespace object */ -/******/ (() => { -/******/ // define __esModule on exports -/******/ __webpack_require__.r = (exports) => { -/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { -/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); -/******/ } -/******/ Object.defineProperty(exports, '__esModule', { value: true }); -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/jsonp chunk loading */ -/******/ (() => { -/******/ // no baseURI -/******/ -/******/ // object to store loaded and loading chunks -/******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched -/******/ // [resolve, reject, Promise] = chunk loading, 0 = chunk loaded -/******/ var installedChunks = { -/******/ "blocks/release-draft-card/index": 0, -/******/ "blocks/release-draft-card/style-index": 0 -/******/ }; -/******/ -/******/ // no chunk on demand loading -/******/ -/******/ // no prefetching -/******/ -/******/ // no preloaded -/******/ -/******/ // no HMR -/******/ -/******/ // no HMR manifest -/******/ -/******/ __webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0); -/******/ -/******/ // install a JSONP callback for chunk loading -/******/ var webpackJsonpCallback = (parentChunkLoadingFunction, data) => { -/******/ var chunkIds = data[0]; -/******/ var moreModules = data[1]; -/******/ var runtime = data[2]; -/******/ // add "moreModules" to the modules object, -/******/ // then flag all "chunkIds" as loaded and fire callback -/******/ var moduleId, chunkId, i = 0; -/******/ if(chunkIds.some((id) => (installedChunks[id] !== 0))) { -/******/ for(moduleId in moreModules) { -/******/ if(__webpack_require__.o(moreModules, moduleId)) { -/******/ __webpack_require__.m[moduleId] = moreModules[moduleId]; -/******/ } -/******/ } -/******/ if(runtime) var result = runtime(__webpack_require__); -/******/ } -/******/ if(parentChunkLoadingFunction) parentChunkLoadingFunction(data); -/******/ for(;i < chunkIds.length; i++) { -/******/ chunkId = chunkIds[i]; -/******/ if(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) { -/******/ installedChunks[chunkId][0](); -/******/ } -/******/ installedChunks[chunkId] = 0; -/******/ } -/******/ return __webpack_require__.O(result); -/******/ } -/******/ -/******/ var chunkLoadingGlobal = self["webpackChunkwporg_plugins_2024"] = self["webpackChunkwporg_plugins_2024"] || []; -/******/ chunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0)); -/******/ chunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal)); -/******/ })(); -/******/ -/************************************************************************/ -/******/ -/******/ // startup -/******/ // Load entry module and return exports -/******/ // This entry module depends on other loaded chunks and execution need to be delayed -/******/ var __webpack_exports__ = __webpack_require__.O(undefined, ["blocks/release-draft-card/style-index"], () => (__webpack_require__("./src/blocks/release-draft-card/index.js"))) -/******/ __webpack_exports__ = __webpack_require__.O(__webpack_exports__); -/******/ -/******/ })() -; -//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-card/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-card/render.php deleted file mode 100644 index 8e273d7e29..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-card/render.php +++ /dev/null @@ -1,25 +0,0 @@ - -
    - -

    - $post_title -

    - - $block->inner_html ); -
    - -HTML; - -printf( - '
    %2$s
    ', - wp_kses_data( get_block_wrapper_attributes() ), - do_blocks( $markup ) // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-card/style-index.css b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-card/style-index.css deleted file mode 100644 index 1e76ec694e..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-card/style-index.css +++ /dev/null @@ -1,8 +0,0 @@ -/*!*****************************************************************************************************************************************************************************************************************************************************************!*\ - !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/blocks/release-draft-card/style.scss ***! - \*****************************************************************************************************************************************************************************************************************************************************************/ -.wp-block-wporg-release-draft { - font-size: var(--wp--preset--font-size--small); -} - -/*# sourceMappingURL=style-index.css.map*/ \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-content/block.json b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-content/block.json deleted file mode 100644 index ca88e99adf..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-content/block.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "$schema": "https://schemas.wp.org/trunk/block.json", - "apiVersion": 2, - "name": "wporg/release-draft-content", - "version": "0.1.0", - "title": "Release Content", - "category": "design", - "icon": "", - "description": "A block to display release draft content.", - "textdomain": "wporg", - "attributes": { - "title": { - "type": "string", - "default": "" - } - }, - "supports": { - "html": false, - "interactivity": true - }, - "usesContext": [ - "postId" - ], - "editorScript": "file:./index.js", - "render": "file:./render.php", - "style": "file:./style-index.css" -} \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-content/index.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-content/index.asset.php deleted file mode 100644 index e056aa5178..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-content/index.asset.php +++ /dev/null @@ -1 +0,0 @@ - array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => '2e6e4bdad85f284eebf2'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-content/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-content/index.js deleted file mode 100644 index ad8c9bcd69..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-content/index.js +++ /dev/null @@ -1,298 +0,0 @@ -/******/ (() => { // webpackBootstrap -/******/ "use strict"; -/******/ var __webpack_modules__ = ({ - -/***/ "./src/blocks/release-draft-content/index.js": -/*!***************************************************!*\ - !*** ./src/blocks/release-draft-content/index.js ***! - \***************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); -/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/blocks */ "@wordpress/blocks"); -/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/server-side-render */ "@wordpress/server-side-render"); -/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/block-editor */ "@wordpress/block-editor"); -/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__); -/* harmony import */ var _block_json__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./block.json */ "./src/blocks/release-draft-content/block.json"); -/* harmony import */ var _style_scss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./style.scss */ "./src/blocks/release-draft-content/style.scss"); - -/** - * WordPress dependencies - */ - - - - - -/** - * Internal dependencies - */ - - -function Edit({ - attributes, - name -}) { - return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", { - ...(0,_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__.useBlockProps)() - }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Disabled, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)((_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default()), { - block: name, - attributes: attributes - }))); -} -(0,_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__.registerBlockType)(_block_json__WEBPACK_IMPORTED_MODULE_5__.name, { - edit: Edit, - save: () => null -}); - -/***/ }), - -/***/ "./src/blocks/release-draft-content/style.scss": -/*!*****************************************************!*\ - !*** ./src/blocks/release-draft-content/style.scss ***! - \*****************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -// extracted by mini-css-extract-plugin - - -/***/ }), - -/***/ "react": -/*!************************!*\ - !*** external "React" ***! - \************************/ -/***/ ((module) => { - -module.exports = window["React"]; - -/***/ }), - -/***/ "@wordpress/block-editor": -/*!*************************************!*\ - !*** external ["wp","blockEditor"] ***! - \*************************************/ -/***/ ((module) => { - -module.exports = window["wp"]["blockEditor"]; - -/***/ }), - -/***/ "@wordpress/blocks": -/*!********************************!*\ - !*** external ["wp","blocks"] ***! - \********************************/ -/***/ ((module) => { - -module.exports = window["wp"]["blocks"]; - -/***/ }), - -/***/ "@wordpress/components": -/*!************************************!*\ - !*** external ["wp","components"] ***! - \************************************/ -/***/ ((module) => { - -module.exports = window["wp"]["components"]; - -/***/ }), - -/***/ "@wordpress/server-side-render": -/*!******************************************!*\ - !*** external ["wp","serverSideRender"] ***! - \******************************************/ -/***/ ((module) => { - -module.exports = window["wp"]["serverSideRender"]; - -/***/ }), - -/***/ "./src/blocks/release-draft-content/block.json": -/*!*****************************************************!*\ - !*** ./src/blocks/release-draft-content/block.json ***! - \*****************************************************/ -/***/ ((module) => { - -module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"wporg/release-draft-content","version":"0.1.0","title":"Release Content","category":"design","icon":"","description":"A block to display release draft content.","textdomain":"wporg","attributes":{"title":{"type":"string","default":""}},"supports":{"html":false,"interactivity":true},"usesContext":["postId"],"editorScript":"file:./index.js","render":"file:./render.php","style":"file:./style-index.css"}'); - -/***/ }) - -/******/ }); -/************************************************************************/ -/******/ // The module cache -/******/ var __webpack_module_cache__ = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ // Check if module is in cache -/******/ var cachedModule = __webpack_module_cache__[moduleId]; -/******/ if (cachedModule !== undefined) { -/******/ return cachedModule.exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = __webpack_module_cache__[moduleId] = { -/******/ // no module.id needed -/******/ // no module.loaded needed -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = __webpack_modules__; -/******/ -/************************************************************************/ -/******/ /* webpack/runtime/chunk loaded */ -/******/ (() => { -/******/ var deferred = []; -/******/ __webpack_require__.O = (result, chunkIds, fn, priority) => { -/******/ if(chunkIds) { -/******/ priority = priority || 0; -/******/ for(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1]; -/******/ deferred[i] = [chunkIds, fn, priority]; -/******/ return; -/******/ } -/******/ var notFulfilled = Infinity; -/******/ for (var i = 0; i < deferred.length; i++) { -/******/ var chunkIds = deferred[i][0]; -/******/ var fn = deferred[i][1]; -/******/ var priority = deferred[i][2]; -/******/ var fulfilled = true; -/******/ for (var j = 0; j < chunkIds.length; j++) { -/******/ if ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) { -/******/ chunkIds.splice(j--, 1); -/******/ } else { -/******/ fulfilled = false; -/******/ if(priority < notFulfilled) notFulfilled = priority; -/******/ } -/******/ } -/******/ if(fulfilled) { -/******/ deferred.splice(i--, 1) -/******/ var r = fn(); -/******/ if (r !== undefined) result = r; -/******/ } -/******/ } -/******/ return result; -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/compat get default export */ -/******/ (() => { -/******/ // getDefaultExport function for compatibility with non-harmony modules -/******/ __webpack_require__.n = (module) => { -/******/ var getter = module && module.__esModule ? -/******/ () => (module['default']) : -/******/ () => (module); -/******/ __webpack_require__.d(getter, { a: getter }); -/******/ return getter; -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/define property getters */ -/******/ (() => { -/******/ // define getter functions for harmony exports -/******/ __webpack_require__.d = (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 */ -/******/ (() => { -/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) -/******/ })(); -/******/ -/******/ /* webpack/runtime/make namespace object */ -/******/ (() => { -/******/ // define __esModule on exports -/******/ __webpack_require__.r = (exports) => { -/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { -/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); -/******/ } -/******/ Object.defineProperty(exports, '__esModule', { value: true }); -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/jsonp chunk loading */ -/******/ (() => { -/******/ // no baseURI -/******/ -/******/ // object to store loaded and loading chunks -/******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched -/******/ // [resolve, reject, Promise] = chunk loading, 0 = chunk loaded -/******/ var installedChunks = { -/******/ "blocks/release-draft-content/index": 0, -/******/ "blocks/release-draft-content/style-index": 0 -/******/ }; -/******/ -/******/ // no chunk on demand loading -/******/ -/******/ // no prefetching -/******/ -/******/ // no preloaded -/******/ -/******/ // no HMR -/******/ -/******/ // no HMR manifest -/******/ -/******/ __webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0); -/******/ -/******/ // install a JSONP callback for chunk loading -/******/ var webpackJsonpCallback = (parentChunkLoadingFunction, data) => { -/******/ var chunkIds = data[0]; -/******/ var moreModules = data[1]; -/******/ var runtime = data[2]; -/******/ // add "moreModules" to the modules object, -/******/ // then flag all "chunkIds" as loaded and fire callback -/******/ var moduleId, chunkId, i = 0; -/******/ if(chunkIds.some((id) => (installedChunks[id] !== 0))) { -/******/ for(moduleId in moreModules) { -/******/ if(__webpack_require__.o(moreModules, moduleId)) { -/******/ __webpack_require__.m[moduleId] = moreModules[moduleId]; -/******/ } -/******/ } -/******/ if(runtime) var result = runtime(__webpack_require__); -/******/ } -/******/ if(parentChunkLoadingFunction) parentChunkLoadingFunction(data); -/******/ for(;i < chunkIds.length; i++) { -/******/ chunkId = chunkIds[i]; -/******/ if(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) { -/******/ installedChunks[chunkId][0](); -/******/ } -/******/ installedChunks[chunkId] = 0; -/******/ } -/******/ return __webpack_require__.O(result); -/******/ } -/******/ -/******/ var chunkLoadingGlobal = self["webpackChunkwporg_plugins_2024"] = self["webpackChunkwporg_plugins_2024"] || []; -/******/ chunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0)); -/******/ chunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal)); -/******/ })(); -/******/ -/************************************************************************/ -/******/ -/******/ // startup -/******/ // Load entry module and return exports -/******/ // This entry module depends on other loaded chunks and execution need to be delayed -/******/ var __webpack_exports__ = __webpack_require__.O(undefined, ["blocks/release-draft-content/style-index"], () => (__webpack_require__("./src/blocks/release-draft-content/index.js"))) -/******/ __webpack_exports__ = __webpack_require__.O(__webpack_exports__); -/******/ -/******/ })() -; -//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-content/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-content/render.php deleted file mode 100644 index 4132cb8682..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-content/render.php +++ /dev/null @@ -1,25 +0,0 @@ - -
    - -

    - $post_title -

    - - $block->inner_html ); -
    - -HTML; - -printf( - '
    %2$s
    ', - wp_kses_data( get_block_wrapper_attributes() ), - do_blocks( $markup ) // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-content/style-index.css b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-content/style-index.css deleted file mode 100644 index 5ca238dd3c..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-content/style-index.css +++ /dev/null @@ -1,8 +0,0 @@ -/*!********************************************************************************************************************************************************************************************************************************************************************!*\ - !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/blocks/release-draft-content/style.scss ***! - \********************************************************************************************************************************************************************************************************************************************************************/ -.wp-block-wporg-release-draft { - font-size: var(--wp--preset--font-size--small); -} - -/*# sourceMappingURL=style-index.css.map*/ \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft/view.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft/view.asset.php deleted file mode 100644 index f72123147f..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft/view.asset.php +++ /dev/null @@ -1 +0,0 @@ - array('@wordpress/interactivity'), 'version' => 'b2c4b9d88f9bf4c4b32c', 'type' => 'module'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft/view.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft/view.js deleted file mode 100644 index d5acc8111d..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft/view.js +++ /dev/null @@ -1,123 +0,0 @@ -import * as __WEBPACK_EXTERNAL_MODULE__wordpress_interactivity_8e89b257__ from "@wordpress/interactivity"; -/******/ var __webpack_modules__ = ({ - -/***/ "@wordpress/interactivity": -/*!*******************************************!*\ - !*** external "@wordpress/interactivity" ***! - \*******************************************/ -/***/ ((module) => { - -var x = y => { var x = {}; __webpack_require__.d(x, y); return x; } -var y = x => () => x -module.exports = __WEBPACK_EXTERNAL_MODULE__wordpress_interactivity_8e89b257__; - -/***/ }) - -/******/ }); -/************************************************************************/ -/******/ // The module cache -/******/ var __webpack_module_cache__ = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ // Check if module is in cache -/******/ var cachedModule = __webpack_module_cache__[moduleId]; -/******/ if (cachedModule !== undefined) { -/******/ return cachedModule.exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = __webpack_module_cache__[moduleId] = { -/******/ // no module.id needed -/******/ // no module.loaded needed -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/************************************************************************/ -/******/ /* webpack/runtime/make namespace object */ -/******/ (() => { -/******/ // define __esModule on exports -/******/ __webpack_require__.r = (exports) => { -/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { -/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); -/******/ } -/******/ Object.defineProperty(exports, '__esModule', { value: true }); -/******/ }; -/******/ })(); -/******/ -/************************************************************************/ -var __webpack_exports__ = {}; -// This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk. -(() => { -/*!******************************************!*\ - !*** ./src/blocks/release-draft/view.js ***! - \******************************************/ -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _wordpress_interactivity__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/interactivity */ "@wordpress/interactivity"); -/** - * WordPress dependencies - */ - -const { - state -} = (0,_wordpress_interactivity__WEBPACK_IMPORTED_MODULE_0__.store)('async-action-block', { - state: { - get userHasConfirmed() { - return state.hasConfirmed; - } - }, - actions: { - handleReleaseConfirm() { - state.hasConfirmed = !state.hasConfirmed; - }, - handleBackClick(event) { - event.preventDefault(); - state.isCreatingRelease = false; - - // Make user reconfirm. - state.hasConfirmed = false; - }, - *handleSubmit(event) { - event.preventDefault(); - state.isWaiting = true; - state.errorMessage = ''; - const { - pluginSlug, - nonce, - apiURL - } = (0,_wordpress_interactivity__WEBPACK_IMPORTED_MODULE_0__.getContext)(); - try { - const response = yield fetch(apiURL, { - method: 'POST', - headers: { - 'Content-Type': 'application/json', - 'X-WP-Nonce': nonce - }, - body: JSON.stringify({ - plugin_slug: pluginSlug - }) - }); - const data = yield response.json(); - - // Update state based on response - if (data.success) {} else { - state.errorMessage = data.message || 'Action failed'; - } - } catch (error) { - state.errorMessage = 'Network error occurred'; - } finally { - state.isWaiting = false; - } - } - } -}); -})(); - - -//# sourceMappingURL=view.js.map \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-menu-options/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-menu-options/render.php index 61f288f3e5..4a107ad235 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-menu-options/render.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-menu-options/render.php @@ -5,7 +5,7 @@ * @package wporg-plugins */ -use function WordPressdotorg\Plugin_Directory\Theme\{get_releases, get_previous_version, get_trac_changeset_link, get_blueprint_url, get_download_link}; +use function WordPressdotorg\Plugin_Directory\Theme\{get_previous_version, get_trac_changeset_link, get_blueprint_url, get_download_link}; if ( ! $block->context['postId'] ) { return; @@ -16,8 +16,8 @@ return; } -$current_version = get_post_meta( $release_post->ID, 'release_version', true ); -$download_link = get_download_link( $release_post->post_parent, $current_version ); +$current_version = get_post_meta( $release_post->ID, 'release_version', true ); +$download_link = get_download_link( $release_post->post_parent, $current_version ); $download_link_html = sprintf( '', __( 'Download', 'wporg-plugins' ), @@ -30,9 +30,8 @@ esc_url( get_blueprint_url( get_download_link( $current_version ) ) ) ); -$changes_link_html = ''; -$releases = get_releases(); -$previous_version = get_previous_version( $release_post, $releases ); +$changes_link_html = ''; +$previous_version = get_previous_version( $release_post ); if ( null !== $previous_version ) { $changes_link_html = sprintf( diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish-release/block.json b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish-release/block.json deleted file mode 100644 index b6b3110b03..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish-release/block.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "$schema": "https://schemas.wp.org/trunk/block.json", - "apiVersion": 2, - "name": "wporg/release-details-form", - "version": "0.1.0", - "title": "Release Details Form", - "category": "design", - "icon": "", - "description": "A block to display release details form.", - "textdomain": "wporg", - "attributes": {}, - "supports": { - "html": false, - "interactivity": true - }, - "usesContext": [ - "postId", - "pluginSlug" - ], - "editorScript": "file:./index.js", - "render": "file:./render.php", - "style": "file:./style-index.css" -} \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish-release/index.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish-release/index.asset.php deleted file mode 100644 index 07b3729374..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish-release/index.asset.php +++ /dev/null @@ -1 +0,0 @@ - array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => '25dccf3833ad815f8698'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish-release/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish-release/index.js deleted file mode 100644 index 7923bc57a1..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish-release/index.js +++ /dev/null @@ -1,298 +0,0 @@ -/******/ (() => { // webpackBootstrap -/******/ "use strict"; -/******/ var __webpack_modules__ = ({ - -/***/ "./src/blocks/release-publish-release/index.js": -/*!*****************************************************!*\ - !*** ./src/blocks/release-publish-release/index.js ***! - \*****************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); -/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/blocks */ "@wordpress/blocks"); -/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/server-side-render */ "@wordpress/server-side-render"); -/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/block-editor */ "@wordpress/block-editor"); -/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__); -/* harmony import */ var _block_json__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./block.json */ "./src/blocks/release-publish-release/block.json"); -/* harmony import */ var _style_scss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./style.scss */ "./src/blocks/release-publish-release/style.scss"); - -/** - * WordPress dependencies - */ - - - - - -/** - * Internal dependencies - */ - - -function Edit({ - attributes, - name -}) { - return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", { - ...(0,_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__.useBlockProps)() - }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Disabled, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)((_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default()), { - block: name, - attributes: attributes - }))); -} -(0,_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__.registerBlockType)(_block_json__WEBPACK_IMPORTED_MODULE_5__.name, { - edit: Edit, - save: () => null -}); - -/***/ }), - -/***/ "./src/blocks/release-publish-release/style.scss": -/*!*******************************************************!*\ - !*** ./src/blocks/release-publish-release/style.scss ***! - \*******************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -// extracted by mini-css-extract-plugin - - -/***/ }), - -/***/ "react": -/*!************************!*\ - !*** external "React" ***! - \************************/ -/***/ ((module) => { - -module.exports = window["React"]; - -/***/ }), - -/***/ "@wordpress/block-editor": -/*!*************************************!*\ - !*** external ["wp","blockEditor"] ***! - \*************************************/ -/***/ ((module) => { - -module.exports = window["wp"]["blockEditor"]; - -/***/ }), - -/***/ "@wordpress/blocks": -/*!********************************!*\ - !*** external ["wp","blocks"] ***! - \********************************/ -/***/ ((module) => { - -module.exports = window["wp"]["blocks"]; - -/***/ }), - -/***/ "@wordpress/components": -/*!************************************!*\ - !*** external ["wp","components"] ***! - \************************************/ -/***/ ((module) => { - -module.exports = window["wp"]["components"]; - -/***/ }), - -/***/ "@wordpress/server-side-render": -/*!******************************************!*\ - !*** external ["wp","serverSideRender"] ***! - \******************************************/ -/***/ ((module) => { - -module.exports = window["wp"]["serverSideRender"]; - -/***/ }), - -/***/ "./src/blocks/release-publish-release/block.json": -/*!*******************************************************!*\ - !*** ./src/blocks/release-publish-release/block.json ***! - \*******************************************************/ -/***/ ((module) => { - -module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"wporg/release-details-form","version":"0.1.0","title":"Release Details Form","category":"design","icon":"","description":"A block to display release details form.","textdomain":"wporg","attributes":{},"supports":{"html":false,"interactivity":true},"usesContext":["postId","pluginSlug"],"editorScript":"file:./index.js","render":"file:./render.php","style":"file:./style-index.css"}'); - -/***/ }) - -/******/ }); -/************************************************************************/ -/******/ // The module cache -/******/ var __webpack_module_cache__ = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ // Check if module is in cache -/******/ var cachedModule = __webpack_module_cache__[moduleId]; -/******/ if (cachedModule !== undefined) { -/******/ return cachedModule.exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = __webpack_module_cache__[moduleId] = { -/******/ // no module.id needed -/******/ // no module.loaded needed -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = __webpack_modules__; -/******/ -/************************************************************************/ -/******/ /* webpack/runtime/chunk loaded */ -/******/ (() => { -/******/ var deferred = []; -/******/ __webpack_require__.O = (result, chunkIds, fn, priority) => { -/******/ if(chunkIds) { -/******/ priority = priority || 0; -/******/ for(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1]; -/******/ deferred[i] = [chunkIds, fn, priority]; -/******/ return; -/******/ } -/******/ var notFulfilled = Infinity; -/******/ for (var i = 0; i < deferred.length; i++) { -/******/ var chunkIds = deferred[i][0]; -/******/ var fn = deferred[i][1]; -/******/ var priority = deferred[i][2]; -/******/ var fulfilled = true; -/******/ for (var j = 0; j < chunkIds.length; j++) { -/******/ if ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) { -/******/ chunkIds.splice(j--, 1); -/******/ } else { -/******/ fulfilled = false; -/******/ if(priority < notFulfilled) notFulfilled = priority; -/******/ } -/******/ } -/******/ if(fulfilled) { -/******/ deferred.splice(i--, 1) -/******/ var r = fn(); -/******/ if (r !== undefined) result = r; -/******/ } -/******/ } -/******/ return result; -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/compat get default export */ -/******/ (() => { -/******/ // getDefaultExport function for compatibility with non-harmony modules -/******/ __webpack_require__.n = (module) => { -/******/ var getter = module && module.__esModule ? -/******/ () => (module['default']) : -/******/ () => (module); -/******/ __webpack_require__.d(getter, { a: getter }); -/******/ return getter; -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/define property getters */ -/******/ (() => { -/******/ // define getter functions for harmony exports -/******/ __webpack_require__.d = (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 */ -/******/ (() => { -/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) -/******/ })(); -/******/ -/******/ /* webpack/runtime/make namespace object */ -/******/ (() => { -/******/ // define __esModule on exports -/******/ __webpack_require__.r = (exports) => { -/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { -/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); -/******/ } -/******/ Object.defineProperty(exports, '__esModule', { value: true }); -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/jsonp chunk loading */ -/******/ (() => { -/******/ // no baseURI -/******/ -/******/ // object to store loaded and loading chunks -/******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched -/******/ // [resolve, reject, Promise] = chunk loading, 0 = chunk loaded -/******/ var installedChunks = { -/******/ "blocks/release-publish-release/index": 0, -/******/ "blocks/release-publish-release/style-index": 0 -/******/ }; -/******/ -/******/ // no chunk on demand loading -/******/ -/******/ // no prefetching -/******/ -/******/ // no preloaded -/******/ -/******/ // no HMR -/******/ -/******/ // no HMR manifest -/******/ -/******/ __webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0); -/******/ -/******/ // install a JSONP callback for chunk loading -/******/ var webpackJsonpCallback = (parentChunkLoadingFunction, data) => { -/******/ var chunkIds = data[0]; -/******/ var moreModules = data[1]; -/******/ var runtime = data[2]; -/******/ // add "moreModules" to the modules object, -/******/ // then flag all "chunkIds" as loaded and fire callback -/******/ var moduleId, chunkId, i = 0; -/******/ if(chunkIds.some((id) => (installedChunks[id] !== 0))) { -/******/ for(moduleId in moreModules) { -/******/ if(__webpack_require__.o(moreModules, moduleId)) { -/******/ __webpack_require__.m[moduleId] = moreModules[moduleId]; -/******/ } -/******/ } -/******/ if(runtime) var result = runtime(__webpack_require__); -/******/ } -/******/ if(parentChunkLoadingFunction) parentChunkLoadingFunction(data); -/******/ for(;i < chunkIds.length; i++) { -/******/ chunkId = chunkIds[i]; -/******/ if(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) { -/******/ installedChunks[chunkId][0](); -/******/ } -/******/ installedChunks[chunkId] = 0; -/******/ } -/******/ return __webpack_require__.O(result); -/******/ } -/******/ -/******/ var chunkLoadingGlobal = self["webpackChunkwporg_plugins_2024"] = self["webpackChunkwporg_plugins_2024"] || []; -/******/ chunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0)); -/******/ chunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal)); -/******/ })(); -/******/ -/************************************************************************/ -/******/ -/******/ // startup -/******/ // Load entry module and return exports -/******/ // This entry module depends on other loaded chunks and execution need to be delayed -/******/ var __webpack_exports__ = __webpack_require__.O(undefined, ["blocks/release-publish-release/style-index"], () => (__webpack_require__("./src/blocks/release-publish-release/index.js"))) -/******/ __webpack_exports__ = __webpack_require__.O(__webpack_exports__); -/******/ -/******/ })() -; -//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish-release/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish-release/render.php deleted file mode 100644 index fad7f60f7d..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish-release/render.php +++ /dev/null @@ -1,277 +0,0 @@ -context['postId'] ) ) { - return; -} - -$release_post = get_post( $block->context['postId'] ); - -// Bail if the release post does not exist. -if ( ! $release_post ) { - return; -} - -$current_version = get_post_meta( $block->context['postId'], 'release_version', true ); -$tested_up_to = get_post_meta( $block->context['postId'], 'release_tested', true ); - -/** - * Returns whether the tested_up_to value is recent. - * - * @param string $tested_up_to The tested up to value. - * - * @return bool Whether the tested up to value is recent. - */ -function has_recently_been_tested( $tested_up_to ) { - global $wp_version; - - // If the tested up to value is empty, it's not recent. - if ( empty( $tested_up_to ) ) { - return false; - } - - $latest_release = $wp_version; - - if ( defined( 'WP_CORE_STABLE_BRANCH' ) ) { - $latest_release = WP_CORE_STABLE_BRANCH; - } - - $tested_major = (int) explode( '.', $tested_up_to )[0]; - $latest_major = (int) explode( '.', $latest_release )[0]; - - return $tested_major >= $latest_major; -} - -/** - * Generate the HTML for a release item content block. - * - * @param string $label The label for the item. - * @param string $content The additional content or description. - * @return string The formatted HTML content for the release item. - */ -function get_release_item_content( $label, $content ) { - return sprintf( - '
    %1$s
    %2$s
    ', - esc_html( $label ), - wp_kses_post( $content ) - ); -} - -/** - * Generate a release check item block with a specific status. - * - * @param string $status The status of the check item ('success' or 'error'). - * @param string $content The content to display inside the block. - * @return string The formatted block content. - */ -function get_release_check_item( $status, $content ) { - return do_blocks( - sprintf( - '%2$s', - esc_attr( $status ), - $content - ) - ); -} - -/** - * Generate the block content for the version number check item. - * - * @param bool $verdict Whether the version number is valid. - * @param string $value The current version number. - * - * @return string The block content. - */ -function get_changelog_check_item() { - $label = __( 'Update your changelog with key changes.', 'wporg-plugins' ); - $info_text = sprintf( - 'Learn more about writing useful changelogs.', - esc_url( 'https://developer.wordpress.org/plugins/wordpress-org/plugin-developer-faq/#what-should-be-in-my-changelog' ), - ); - - $content = get_release_item_content( $label, $info_text ); - - return get_release_check_item( 'default', $content ); -} - -/** - * Generate the block content for the version number check item. - * - * @param bool $verdict Whether the version number is valid. - * @param string $value The current version number. - * - * @return string The block content. - */ -function get_view_diff_check_item( $post ) { - $label = __( 'Review your changes.', 'wporg-plugins' ); - $commits = get_post_meta( $post->ID, 'release_commit_log', true ); - $plugin = get_post( $post->post_parent ); - $info_text = sprintf( - /* translators: %s: URL to the plugin in the Plugin Directory */ - __( 'Scan through your changeset before publishing.', 'wporg-plugins' ), - esc_url( get_revision_changeset_link( $plugin->post_name, $commits ) ) - ); - $content = get_release_item_content( $label, $info_text ); - - return get_release_check_item( 'default', $content ); -} - -/** - * Generate the block content for the version number check item. - * - * @param bool $verdict Whether the version number is valid. - * @param string $value The current version number. - * - * @return string The block content. - */ -function get_version_number_check_item( $verdict, $value ) { - $label = __( 'Increment your version number.', 'wporg-plugins' ); - - $info_text = sprintf( - /* translators: %s: The current version number */ - __( 'Current version: %s', 'wporg-plugins' ), - '' . $value . '', - ); - - $status = ''; - - if ( ! $verdict ) { - $status = 'error'; - $info_text = sprintf( - /* translators: %s: The current version number */ - __( 'Your plugin\'s version number %s must be incremented before you can publish.', 'wporg-plugins' ), - '' . $value . '', - ); - } - - $content = get_release_item_content( $label, $info_text ); - - return get_release_check_item( $status, $content ); -} - -/** - * Generate the block content for the "Tested up to" check item. - * - * @param bool $verdict Whether the tested up to value is recent. - * @param string $value The tested up to value. - * @param WP_Post $release_post The release post object. - * - * @return string The block content. - */ -function get_tested_up_to_check_item( $verdict, $value, $release_post ) { - $label = __( - 'Test your plugin with the latest version of WordPress.', - 'wporg-plugins' - ); - $status = ''; - - $plugin = get_post( $release_post->post_parent ); - - $blueprint_url = get_blueprint_url( - sprintf( - 'https://downloads.wordpress.org/plugin/%s.zip', - $plugin->post_name, - ) - ); - - $info_text = sprintf( - /* translators: %s: The Tested Up to value */ - __( 'Tested up to: %s', 'wporg-plugins' ), - '' . $value . '', - ); - - if ( empty( $value ) ) { - $value = __( 'Unknown', 'wporg-plugins' ); - $status = 'error'; - $info_text = __( 'We weren\'t able to determine your "Tested up to" value.', 'wporg-plugins' ); - } elseif ( ! $verdict ) { - $status = 'warning'; - $info_text = sprintf( - /* translators: %s: URL to the plugin in the Plugin Directory */ - __( 'Tested up to is %1$s. Test it now in Playground and update. ', 'wporg-plugins' ), - '' . $value . '', - esc_url( $blueprint_url ) - ); - } - - $content = get_release_item_content( $label, $info_text ); - - return get_release_check_item( $status, $content ); -} - -$latest_release = get_latest_release( $release_post->post_parent ); -$last_version = get_post_meta( $latest_release->ID, 'release_version', true ); -$version_pass = version_compare( $current_version, $last_version, '>' ); -$tested_up_to_pass = has_recently_been_tested( $tested_up_to ); - -?> - -
    -> - -

    %s

    - ', - esc_html__( 'Checklist', 'wporg-plugins' ) - ) - ) - ?> -
      - - - - -
    - - - - //
    - //
    - //

    %s

    - //
    - // ', - // esc_html__( 'You need to increment your plugin version number and reload the page.', 'wporg-plugins' ) - // ); - // echo do_blocks( $block ); - ?> - -
    -
    - -
    - -
    - -
    -
    -
    diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish-release/style-index.css b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish-release/style-index.css deleted file mode 100644 index 8efbbd0f95..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish-release/style-index.css +++ /dev/null @@ -1,17 +0,0 @@ -/*!**********************************************************************************************************************************************************************************************************************************************************************!*\ - !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/blocks/release-publish-release/style.scss ***! - \**********************************************************************************************************************************************************************************************************************************************************************/ -.wp-block-wporg-release-details-form label { - display: block; -} -.wp-block-wporg-release-details-form .wp-block-wporg-release-result-item > div:last-child > div { - color: var(--wp--preset--color--charcoal-4); -} - -.wp-block-wporg-release-details-form-actions { - display: flex; - margin-top: var(--wp--preset--spacing--30); - gap: 8px; -} - -/*# sourceMappingURL=style-index.css.map*/ \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-item copy/block.json b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-item copy/block.json deleted file mode 100644 index 5086072ee5..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-item copy/block.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "$schema": "https://schemas.wp.org/trunk/block.json", - "apiVersion": 2, - "name": "wporg/release-result-item", - "version": "0.1.0", - "title": "Release Result Item", - "category": "design", - "icon": "", - "description": "A block to display release draft result item.", - "textdomain": "wporg", - "attributes": { - "status": { - "type": "string", - "enum": [ - "error", - "warning", - "success" - ], - "default": "success" - } - }, - "supports": { - "html": false - }, - "editorScript": "file:./index.js", - "render": "file:./render.php", - "style": "file:./style-index.css" -} \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-item copy/index.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-item copy/index.asset.php deleted file mode 100644 index 57eaa35d97..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-item copy/index.asset.php +++ /dev/null @@ -1 +0,0 @@ - array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => 'c5097f76ab105587bca5'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-item copy/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-item copy/index.js deleted file mode 100644 index e3a6578c0d..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-item copy/index.js +++ /dev/null @@ -1,298 +0,0 @@ -/******/ (() => { // webpackBootstrap -/******/ "use strict"; -/******/ var __webpack_modules__ = ({ - -/***/ "./src/blocks/release-result-item copy/index.js": -/*!******************************************************!*\ - !*** ./src/blocks/release-result-item copy/index.js ***! - \******************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); -/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/blocks */ "@wordpress/blocks"); -/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/server-side-render */ "@wordpress/server-side-render"); -/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/block-editor */ "@wordpress/block-editor"); -/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__); -/* harmony import */ var _block_json__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./block.json */ "./src/blocks/release-result-item copy/block.json"); -/* harmony import */ var _style_scss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./style.scss */ "./src/blocks/release-result-item copy/style.scss"); - -/** - * WordPress dependencies - */ - - - - - -/** - * Internal dependencies - */ - - -function Edit({ - attributes, - name -}) { - return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", { - ...(0,_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__.useBlockProps)() - }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Disabled, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)((_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default()), { - block: name, - attributes: attributes - }))); -} -(0,_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__.registerBlockType)(_block_json__WEBPACK_IMPORTED_MODULE_5__.name, { - edit: Edit, - save: () => null -}); - -/***/ }), - -/***/ "./src/blocks/release-result-item copy/style.scss": -/*!********************************************************!*\ - !*** ./src/blocks/release-result-item copy/style.scss ***! - \********************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -// extracted by mini-css-extract-plugin - - -/***/ }), - -/***/ "react": -/*!************************!*\ - !*** external "React" ***! - \************************/ -/***/ ((module) => { - -module.exports = window["React"]; - -/***/ }), - -/***/ "@wordpress/block-editor": -/*!*************************************!*\ - !*** external ["wp","blockEditor"] ***! - \*************************************/ -/***/ ((module) => { - -module.exports = window["wp"]["blockEditor"]; - -/***/ }), - -/***/ "@wordpress/blocks": -/*!********************************!*\ - !*** external ["wp","blocks"] ***! - \********************************/ -/***/ ((module) => { - -module.exports = window["wp"]["blocks"]; - -/***/ }), - -/***/ "@wordpress/components": -/*!************************************!*\ - !*** external ["wp","components"] ***! - \************************************/ -/***/ ((module) => { - -module.exports = window["wp"]["components"]; - -/***/ }), - -/***/ "@wordpress/server-side-render": -/*!******************************************!*\ - !*** external ["wp","serverSideRender"] ***! - \******************************************/ -/***/ ((module) => { - -module.exports = window["wp"]["serverSideRender"]; - -/***/ }), - -/***/ "./src/blocks/release-result-item copy/block.json": -/*!********************************************************!*\ - !*** ./src/blocks/release-result-item copy/block.json ***! - \********************************************************/ -/***/ ((module) => { - -module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"wporg/release-result-item","version":"0.1.0","title":"Release Result Item","category":"design","icon":"","description":"A block to display release draft result item.","textdomain":"wporg","attributes":{"status":{"type":"string","enum":["error","warning","success"],"default":"success"}},"supports":{"html":false},"editorScript":"file:./index.js","render":"file:./render.php","style":"file:./style-index.css"}'); - -/***/ }) - -/******/ }); -/************************************************************************/ -/******/ // The module cache -/******/ var __webpack_module_cache__ = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ // Check if module is in cache -/******/ var cachedModule = __webpack_module_cache__[moduleId]; -/******/ if (cachedModule !== undefined) { -/******/ return cachedModule.exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = __webpack_module_cache__[moduleId] = { -/******/ // no module.id needed -/******/ // no module.loaded needed -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = __webpack_modules__; -/******/ -/************************************************************************/ -/******/ /* webpack/runtime/chunk loaded */ -/******/ (() => { -/******/ var deferred = []; -/******/ __webpack_require__.O = (result, chunkIds, fn, priority) => { -/******/ if(chunkIds) { -/******/ priority = priority || 0; -/******/ for(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1]; -/******/ deferred[i] = [chunkIds, fn, priority]; -/******/ return; -/******/ } -/******/ var notFulfilled = Infinity; -/******/ for (var i = 0; i < deferred.length; i++) { -/******/ var chunkIds = deferred[i][0]; -/******/ var fn = deferred[i][1]; -/******/ var priority = deferred[i][2]; -/******/ var fulfilled = true; -/******/ for (var j = 0; j < chunkIds.length; j++) { -/******/ if ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) { -/******/ chunkIds.splice(j--, 1); -/******/ } else { -/******/ fulfilled = false; -/******/ if(priority < notFulfilled) notFulfilled = priority; -/******/ } -/******/ } -/******/ if(fulfilled) { -/******/ deferred.splice(i--, 1) -/******/ var r = fn(); -/******/ if (r !== undefined) result = r; -/******/ } -/******/ } -/******/ return result; -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/compat get default export */ -/******/ (() => { -/******/ // getDefaultExport function for compatibility with non-harmony modules -/******/ __webpack_require__.n = (module) => { -/******/ var getter = module && module.__esModule ? -/******/ () => (module['default']) : -/******/ () => (module); -/******/ __webpack_require__.d(getter, { a: getter }); -/******/ return getter; -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/define property getters */ -/******/ (() => { -/******/ // define getter functions for harmony exports -/******/ __webpack_require__.d = (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 */ -/******/ (() => { -/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) -/******/ })(); -/******/ -/******/ /* webpack/runtime/make namespace object */ -/******/ (() => { -/******/ // define __esModule on exports -/******/ __webpack_require__.r = (exports) => { -/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { -/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); -/******/ } -/******/ Object.defineProperty(exports, '__esModule', { value: true }); -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/jsonp chunk loading */ -/******/ (() => { -/******/ // no baseURI -/******/ -/******/ // object to store loaded and loading chunks -/******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched -/******/ // [resolve, reject, Promise] = chunk loading, 0 = chunk loaded -/******/ var installedChunks = { -/******/ "blocks/release-result-item copy/index": 0, -/******/ "blocks/release-result-item copy/style-index": 0 -/******/ }; -/******/ -/******/ // no chunk on demand loading -/******/ -/******/ // no prefetching -/******/ -/******/ // no preloaded -/******/ -/******/ // no HMR -/******/ -/******/ // no HMR manifest -/******/ -/******/ __webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0); -/******/ -/******/ // install a JSONP callback for chunk loading -/******/ var webpackJsonpCallback = (parentChunkLoadingFunction, data) => { -/******/ var chunkIds = data[0]; -/******/ var moreModules = data[1]; -/******/ var runtime = data[2]; -/******/ // add "moreModules" to the modules object, -/******/ // then flag all "chunkIds" as loaded and fire callback -/******/ var moduleId, chunkId, i = 0; -/******/ if(chunkIds.some((id) => (installedChunks[id] !== 0))) { -/******/ for(moduleId in moreModules) { -/******/ if(__webpack_require__.o(moreModules, moduleId)) { -/******/ __webpack_require__.m[moduleId] = moreModules[moduleId]; -/******/ } -/******/ } -/******/ if(runtime) var result = runtime(__webpack_require__); -/******/ } -/******/ if(parentChunkLoadingFunction) parentChunkLoadingFunction(data); -/******/ for(;i < chunkIds.length; i++) { -/******/ chunkId = chunkIds[i]; -/******/ if(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) { -/******/ installedChunks[chunkId][0](); -/******/ } -/******/ installedChunks[chunkId] = 0; -/******/ } -/******/ return __webpack_require__.O(result); -/******/ } -/******/ -/******/ var chunkLoadingGlobal = self["webpackChunkwporg_plugins_2024"] = self["webpackChunkwporg_plugins_2024"] || []; -/******/ chunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0)); -/******/ chunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal)); -/******/ })(); -/******/ -/************************************************************************/ -/******/ -/******/ // startup -/******/ // Load entry module and return exports -/******/ // This entry module depends on other loaded chunks and execution need to be delayed -/******/ var __webpack_exports__ = __webpack_require__.O(undefined, ["blocks/release-result-item copy/style-index"], () => (__webpack_require__("./src/blocks/release-result-item copy/index.js"))) -/******/ __webpack_exports__ = __webpack_require__.O(__webpack_exports__); -/******/ -/******/ })() -; -//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-item copy/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-item copy/render.php deleted file mode 100644 index 1df49ea1ef..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-item copy/render.php +++ /dev/null @@ -1,22 +0,0 @@ -
  • > -
    - attributes['status'] ) : ?> - - - - - - attributes['status'] ) : ?> - - - - attributes['status'] ) : ?> - - - - - -
    - - inner_html ); ?> -
  • diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-item copy/style-index.css b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-item copy/style-index.css deleted file mode 100644 index 479186db5d..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-item copy/style-index.css +++ /dev/null @@ -1,17 +0,0 @@ -/*!***********************************************************************************************************************************************************************************************************************************************************************!*\ - !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/blocks/release-result-item copy/style.scss ***! - \***********************************************************************************************************************************************************************************************************************************************************************/ -.wp-block-wporg-release-result-item { - display: flex; - margin: 0 !important; - position: relative; - gap: 8px; - list-style: none; -} -.wp-block-wporg-release-result-item > div:first-child { - height: 25px; - display: flex; - align-items: center; -} - -/*# sourceMappingURL=style-index.css.map*/ \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-list/block.json b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-list/block.json deleted file mode 100644 index 47eae44f8d..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-list/block.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "$schema": "https://schemas.wp.org/trunk/block.json", - "apiVersion": 2, - "name": "wporg/release-result-list", - "version": "0.1.0", - "title": "Release Result List", - "category": "design", - "icon": "", - "description": "A block to display release draft result list.", - "textdomain": "wporg", - "attributes": {}, - "supports": { - "html": false - }, - "editorScript": "file:./index.js", - "render": "file:./render.php", - "style": "file:./style-index.css" -} \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-list/index.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-list/index.asset.php deleted file mode 100644 index 7849bcf938..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-list/index.asset.php +++ /dev/null @@ -1 +0,0 @@ - array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => '10d58671b04ac2c5d511'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-list/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-list/index.js deleted file mode 100644 index d66594a40b..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-list/index.js +++ /dev/null @@ -1,298 +0,0 @@ -/******/ (() => { // webpackBootstrap -/******/ "use strict"; -/******/ var __webpack_modules__ = ({ - -/***/ "./src/blocks/release-result-list/index.js": -/*!*************************************************!*\ - !*** ./src/blocks/release-result-list/index.js ***! - \*************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); -/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/blocks */ "@wordpress/blocks"); -/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/server-side-render */ "@wordpress/server-side-render"); -/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/block-editor */ "@wordpress/block-editor"); -/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__); -/* harmony import */ var _block_json__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./block.json */ "./src/blocks/release-result-list/block.json"); -/* harmony import */ var _style_scss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./style.scss */ "./src/blocks/release-result-list/style.scss"); - -/** - * WordPress dependencies - */ - - - - - -/** - * Internal dependencies - */ - - -function Edit({ - attributes, - name -}) { - return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", { - ...(0,_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__.useBlockProps)() - }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Disabled, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)((_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default()), { - block: name, - attributes: attributes - }))); -} -(0,_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__.registerBlockType)(_block_json__WEBPACK_IMPORTED_MODULE_5__.name, { - edit: Edit, - save: () => null -}); - -/***/ }), - -/***/ "./src/blocks/release-result-list/style.scss": -/*!***************************************************!*\ - !*** ./src/blocks/release-result-list/style.scss ***! - \***************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -// extracted by mini-css-extract-plugin - - -/***/ }), - -/***/ "react": -/*!************************!*\ - !*** external "React" ***! - \************************/ -/***/ ((module) => { - -module.exports = window["React"]; - -/***/ }), - -/***/ "@wordpress/block-editor": -/*!*************************************!*\ - !*** external ["wp","blockEditor"] ***! - \*************************************/ -/***/ ((module) => { - -module.exports = window["wp"]["blockEditor"]; - -/***/ }), - -/***/ "@wordpress/blocks": -/*!********************************!*\ - !*** external ["wp","blocks"] ***! - \********************************/ -/***/ ((module) => { - -module.exports = window["wp"]["blocks"]; - -/***/ }), - -/***/ "@wordpress/components": -/*!************************************!*\ - !*** external ["wp","components"] ***! - \************************************/ -/***/ ((module) => { - -module.exports = window["wp"]["components"]; - -/***/ }), - -/***/ "@wordpress/server-side-render": -/*!******************************************!*\ - !*** external ["wp","serverSideRender"] ***! - \******************************************/ -/***/ ((module) => { - -module.exports = window["wp"]["serverSideRender"]; - -/***/ }), - -/***/ "./src/blocks/release-result-list/block.json": -/*!***************************************************!*\ - !*** ./src/blocks/release-result-list/block.json ***! - \***************************************************/ -/***/ ((module) => { - -module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"wporg/release-result-list","version":"0.1.0","title":"Release Result List","category":"design","icon":"","description":"A block to display release draft result list.","textdomain":"wporg","attributes":{},"supports":{"html":false},"editorScript":"file:./index.js","render":"file:./render.php","style":"file:./style-index.css"}'); - -/***/ }) - -/******/ }); -/************************************************************************/ -/******/ // The module cache -/******/ var __webpack_module_cache__ = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ // Check if module is in cache -/******/ var cachedModule = __webpack_module_cache__[moduleId]; -/******/ if (cachedModule !== undefined) { -/******/ return cachedModule.exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = __webpack_module_cache__[moduleId] = { -/******/ // no module.id needed -/******/ // no module.loaded needed -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = __webpack_modules__; -/******/ -/************************************************************************/ -/******/ /* webpack/runtime/chunk loaded */ -/******/ (() => { -/******/ var deferred = []; -/******/ __webpack_require__.O = (result, chunkIds, fn, priority) => { -/******/ if(chunkIds) { -/******/ priority = priority || 0; -/******/ for(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1]; -/******/ deferred[i] = [chunkIds, fn, priority]; -/******/ return; -/******/ } -/******/ var notFulfilled = Infinity; -/******/ for (var i = 0; i < deferred.length; i++) { -/******/ var chunkIds = deferred[i][0]; -/******/ var fn = deferred[i][1]; -/******/ var priority = deferred[i][2]; -/******/ var fulfilled = true; -/******/ for (var j = 0; j < chunkIds.length; j++) { -/******/ if ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) { -/******/ chunkIds.splice(j--, 1); -/******/ } else { -/******/ fulfilled = false; -/******/ if(priority < notFulfilled) notFulfilled = priority; -/******/ } -/******/ } -/******/ if(fulfilled) { -/******/ deferred.splice(i--, 1) -/******/ var r = fn(); -/******/ if (r !== undefined) result = r; -/******/ } -/******/ } -/******/ return result; -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/compat get default export */ -/******/ (() => { -/******/ // getDefaultExport function for compatibility with non-harmony modules -/******/ __webpack_require__.n = (module) => { -/******/ var getter = module && module.__esModule ? -/******/ () => (module['default']) : -/******/ () => (module); -/******/ __webpack_require__.d(getter, { a: getter }); -/******/ return getter; -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/define property getters */ -/******/ (() => { -/******/ // define getter functions for harmony exports -/******/ __webpack_require__.d = (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 */ -/******/ (() => { -/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) -/******/ })(); -/******/ -/******/ /* webpack/runtime/make namespace object */ -/******/ (() => { -/******/ // define __esModule on exports -/******/ __webpack_require__.r = (exports) => { -/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { -/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); -/******/ } -/******/ Object.defineProperty(exports, '__esModule', { value: true }); -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/jsonp chunk loading */ -/******/ (() => { -/******/ // no baseURI -/******/ -/******/ // object to store loaded and loading chunks -/******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched -/******/ // [resolve, reject, Promise] = chunk loading, 0 = chunk loaded -/******/ var installedChunks = { -/******/ "blocks/release-result-list/index": 0, -/******/ "blocks/release-result-list/style-index": 0 -/******/ }; -/******/ -/******/ // no chunk on demand loading -/******/ -/******/ // no prefetching -/******/ -/******/ // no preloaded -/******/ -/******/ // no HMR -/******/ -/******/ // no HMR manifest -/******/ -/******/ __webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0); -/******/ -/******/ // install a JSONP callback for chunk loading -/******/ var webpackJsonpCallback = (parentChunkLoadingFunction, data) => { -/******/ var chunkIds = data[0]; -/******/ var moreModules = data[1]; -/******/ var runtime = data[2]; -/******/ // add "moreModules" to the modules object, -/******/ // then flag all "chunkIds" as loaded and fire callback -/******/ var moduleId, chunkId, i = 0; -/******/ if(chunkIds.some((id) => (installedChunks[id] !== 0))) { -/******/ for(moduleId in moreModules) { -/******/ if(__webpack_require__.o(moreModules, moduleId)) { -/******/ __webpack_require__.m[moduleId] = moreModules[moduleId]; -/******/ } -/******/ } -/******/ if(runtime) var result = runtime(__webpack_require__); -/******/ } -/******/ if(parentChunkLoadingFunction) parentChunkLoadingFunction(data); -/******/ for(;i < chunkIds.length; i++) { -/******/ chunkId = chunkIds[i]; -/******/ if(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) { -/******/ installedChunks[chunkId][0](); -/******/ } -/******/ installedChunks[chunkId] = 0; -/******/ } -/******/ return __webpack_require__.O(result); -/******/ } -/******/ -/******/ var chunkLoadingGlobal = self["webpackChunkwporg_plugins_2024"] = self["webpackChunkwporg_plugins_2024"] || []; -/******/ chunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0)); -/******/ chunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal)); -/******/ })(); -/******/ -/************************************************************************/ -/******/ -/******/ // startup -/******/ // Load entry module and return exports -/******/ // This entry module depends on other loaded chunks and execution need to be delayed -/******/ var __webpack_exports__ = __webpack_require__.O(undefined, ["blocks/release-result-list/style-index"], () => (__webpack_require__("./src/blocks/release-result-list/index.js"))) -/******/ __webpack_exports__ = __webpack_require__.O(__webpack_exports__); -/******/ -/******/ })() -; -//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-list/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-list/render.php deleted file mode 100644 index 1df49ea1ef..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-list/render.php +++ /dev/null @@ -1,22 +0,0 @@ -
  • > -
    - attributes['status'] ) : ?> - - - - - - attributes['status'] ) : ?> - - - - attributes['status'] ) : ?> - - - - - -
    - - inner_html ); ?> -
  • diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-list/style-index.css b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-list/style-index.css deleted file mode 100644 index 1ef3e67a05..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-list/style-index.css +++ /dev/null @@ -1,17 +0,0 @@ -/*!******************************************************************************************************************************************************************************************************************************************************************!*\ - !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/blocks/release-result-list/style.scss ***! - \******************************************************************************************************************************************************************************************************************************************************************/ -.wp-block-wporg-release-result-item { - display: flex; - margin: 0 !important; - position: relative; - gap: 8px; - list-style: none; -} -.wp-block-wporg-release-result-item > div:first-child { - height: 25px; - display: flex; - align-items: center; -} - -/*# sourceMappingURL=style-index.css.map*/ \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status/block.json b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status/block.json deleted file mode 100644 index f23bfa7924..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status/block.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "$schema": "https://schemas.wp.org/trunk/block.json", - "apiVersion": 2, - "name": "wporg/release-status", - "version": "0.1.0", - "title": "Release Status", - "category": "design", - "icon": "", - "description": "A block to display release status.", - "textdomain": "wporg", - "attributes": {}, - "supports": { - "html": false - }, - "usesContext": [ - "postId" - ], - "editorScript": "file:./index.js", - "render": "file:./render.php", - "style": "file:./style-index.css" -} \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status/index.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status/index.asset.php deleted file mode 100644 index 12c89a9152..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status/index.asset.php +++ /dev/null @@ -1 +0,0 @@ - array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => 'c83432e9006397d41e80'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status/index.js deleted file mode 100644 index dfb23315e0..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status/index.js +++ /dev/null @@ -1,298 +0,0 @@ -/******/ (() => { // webpackBootstrap -/******/ "use strict"; -/******/ var __webpack_modules__ = ({ - -/***/ "./src/blocks/release-status/index.js": -/*!********************************************!*\ - !*** ./src/blocks/release-status/index.js ***! - \********************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); -/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/blocks */ "@wordpress/blocks"); -/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/server-side-render */ "@wordpress/server-side-render"); -/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/block-editor */ "@wordpress/block-editor"); -/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__); -/* harmony import */ var _block_json__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./block.json */ "./src/blocks/release-status/block.json"); -/* harmony import */ var _style_scss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./style.scss */ "./src/blocks/release-status/style.scss"); - -/** - * WordPress dependencies - */ - - - - - -/** - * Internal dependencies - */ - - -function Edit({ - attributes, - name -}) { - return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", { - ...(0,_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__.useBlockProps)() - }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Disabled, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)((_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default()), { - block: name, - attributes: attributes - }))); -} -(0,_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__.registerBlockType)(_block_json__WEBPACK_IMPORTED_MODULE_5__.name, { - edit: Edit, - save: () => null -}); - -/***/ }), - -/***/ "./src/blocks/release-status/style.scss": -/*!**********************************************!*\ - !*** ./src/blocks/release-status/style.scss ***! - \**********************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -// extracted by mini-css-extract-plugin - - -/***/ }), - -/***/ "react": -/*!************************!*\ - !*** external "React" ***! - \************************/ -/***/ ((module) => { - -module.exports = window["React"]; - -/***/ }), - -/***/ "@wordpress/block-editor": -/*!*************************************!*\ - !*** external ["wp","blockEditor"] ***! - \*************************************/ -/***/ ((module) => { - -module.exports = window["wp"]["blockEditor"]; - -/***/ }), - -/***/ "@wordpress/blocks": -/*!********************************!*\ - !*** external ["wp","blocks"] ***! - \********************************/ -/***/ ((module) => { - -module.exports = window["wp"]["blocks"]; - -/***/ }), - -/***/ "@wordpress/components": -/*!************************************!*\ - !*** external ["wp","components"] ***! - \************************************/ -/***/ ((module) => { - -module.exports = window["wp"]["components"]; - -/***/ }), - -/***/ "@wordpress/server-side-render": -/*!******************************************!*\ - !*** external ["wp","serverSideRender"] ***! - \******************************************/ -/***/ ((module) => { - -module.exports = window["wp"]["serverSideRender"]; - -/***/ }), - -/***/ "./src/blocks/release-status/block.json": -/*!**********************************************!*\ - !*** ./src/blocks/release-status/block.json ***! - \**********************************************/ -/***/ ((module) => { - -module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"wporg/release-status","version":"0.1.0","title":"Release Status","category":"design","icon":"","description":"A block to display release status.","textdomain":"wporg","attributes":{},"supports":{"html":false},"usesContext":["postId"],"editorScript":"file:./index.js","render":"file:./render.php","style":"file:./style-index.css"}'); - -/***/ }) - -/******/ }); -/************************************************************************/ -/******/ // The module cache -/******/ var __webpack_module_cache__ = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ // Check if module is in cache -/******/ var cachedModule = __webpack_module_cache__[moduleId]; -/******/ if (cachedModule !== undefined) { -/******/ return cachedModule.exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = __webpack_module_cache__[moduleId] = { -/******/ // no module.id needed -/******/ // no module.loaded needed -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = __webpack_modules__; -/******/ -/************************************************************************/ -/******/ /* webpack/runtime/chunk loaded */ -/******/ (() => { -/******/ var deferred = []; -/******/ __webpack_require__.O = (result, chunkIds, fn, priority) => { -/******/ if(chunkIds) { -/******/ priority = priority || 0; -/******/ for(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1]; -/******/ deferred[i] = [chunkIds, fn, priority]; -/******/ return; -/******/ } -/******/ var notFulfilled = Infinity; -/******/ for (var i = 0; i < deferred.length; i++) { -/******/ var chunkIds = deferred[i][0]; -/******/ var fn = deferred[i][1]; -/******/ var priority = deferred[i][2]; -/******/ var fulfilled = true; -/******/ for (var j = 0; j < chunkIds.length; j++) { -/******/ if ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) { -/******/ chunkIds.splice(j--, 1); -/******/ } else { -/******/ fulfilled = false; -/******/ if(priority < notFulfilled) notFulfilled = priority; -/******/ } -/******/ } -/******/ if(fulfilled) { -/******/ deferred.splice(i--, 1) -/******/ var r = fn(); -/******/ if (r !== undefined) result = r; -/******/ } -/******/ } -/******/ return result; -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/compat get default export */ -/******/ (() => { -/******/ // getDefaultExport function for compatibility with non-harmony modules -/******/ __webpack_require__.n = (module) => { -/******/ var getter = module && module.__esModule ? -/******/ () => (module['default']) : -/******/ () => (module); -/******/ __webpack_require__.d(getter, { a: getter }); -/******/ return getter; -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/define property getters */ -/******/ (() => { -/******/ // define getter functions for harmony exports -/******/ __webpack_require__.d = (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 */ -/******/ (() => { -/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) -/******/ })(); -/******/ -/******/ /* webpack/runtime/make namespace object */ -/******/ (() => { -/******/ // define __esModule on exports -/******/ __webpack_require__.r = (exports) => { -/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { -/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); -/******/ } -/******/ Object.defineProperty(exports, '__esModule', { value: true }); -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/jsonp chunk loading */ -/******/ (() => { -/******/ // no baseURI -/******/ -/******/ // object to store loaded and loading chunks -/******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched -/******/ // [resolve, reject, Promise] = chunk loading, 0 = chunk loaded -/******/ var installedChunks = { -/******/ "blocks/release-status/index": 0, -/******/ "blocks/release-status/style-index": 0 -/******/ }; -/******/ -/******/ // no chunk on demand loading -/******/ -/******/ // no prefetching -/******/ -/******/ // no preloaded -/******/ -/******/ // no HMR -/******/ -/******/ // no HMR manifest -/******/ -/******/ __webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0); -/******/ -/******/ // install a JSONP callback for chunk loading -/******/ var webpackJsonpCallback = (parentChunkLoadingFunction, data) => { -/******/ var chunkIds = data[0]; -/******/ var moreModules = data[1]; -/******/ var runtime = data[2]; -/******/ // add "moreModules" to the modules object, -/******/ // then flag all "chunkIds" as loaded and fire callback -/******/ var moduleId, chunkId, i = 0; -/******/ if(chunkIds.some((id) => (installedChunks[id] !== 0))) { -/******/ for(moduleId in moreModules) { -/******/ if(__webpack_require__.o(moreModules, moduleId)) { -/******/ __webpack_require__.m[moduleId] = moreModules[moduleId]; -/******/ } -/******/ } -/******/ if(runtime) var result = runtime(__webpack_require__); -/******/ } -/******/ if(parentChunkLoadingFunction) parentChunkLoadingFunction(data); -/******/ for(;i < chunkIds.length; i++) { -/******/ chunkId = chunkIds[i]; -/******/ if(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) { -/******/ installedChunks[chunkId][0](); -/******/ } -/******/ installedChunks[chunkId] = 0; -/******/ } -/******/ return __webpack_require__.O(result); -/******/ } -/******/ -/******/ var chunkLoadingGlobal = self["webpackChunkwporg_plugins_2024"] = self["webpackChunkwporg_plugins_2024"] || []; -/******/ chunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0)); -/******/ chunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal)); -/******/ })(); -/******/ -/************************************************************************/ -/******/ -/******/ // startup -/******/ // Load entry module and return exports -/******/ // This entry module depends on other loaded chunks and execution need to be delayed -/******/ var __webpack_exports__ = __webpack_require__.O(undefined, ["blocks/release-status/style-index"], () => (__webpack_require__("./src/blocks/release-status/index.js"))) -/******/ __webpack_exports__ = __webpack_require__.O(__webpack_exports__); -/******/ -/******/ })() -; -//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status/render.php deleted file mode 100644 index a4012c0db0..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status/render.php +++ /dev/null @@ -1,19 +0,0 @@ -context['postId'] ) { - return; -} - -$release_post = get_post( $block->context['postId'] ); -if ( ! $release_post ) { - return; -} - -if ( 'draft' != $release_post->post_status ) { - return; -} -?> - -
    > - post_status )->label; ?> -
    diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status/style-index.css b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status/style-index.css deleted file mode 100644 index 3a9fab5125..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-status/style-index.css +++ /dev/null @@ -1,11 +0,0 @@ -/*!*************************************************************************************************************************************************************************************************************************************************************!*\ - !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/blocks/release-status/style.scss ***! - \*************************************************************************************************************************************************************************************************************************************************************/ -.wp-block-wporg-release-status { - padding: 2px 10px; - border: 1px solid var(--wp--preset--color--blueberry-3); - font-size: var(--wp--preset--font-size--extra-small); - border-radius: var(--wp--custom--button--border--radius); -} - -/*# sourceMappingURL=style-index.css.map*/ \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/functions.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/functions.php index 424fcce2c7..4e38ba3d20 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/functions.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/functions.php @@ -543,9 +543,13 @@ function get_releases() { * * @return string|null The previous version of the plugin. */ -function get_previous_version( $release_post, $releases ) { +function get_previous_version( $release_post, $releases = array() ) { $previous_version = null; + if ( empty( $releases ) ) { + $releases = get_releases(); + } + if ( empty( $releases ) ) { return $previous_version; } diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-menu-options/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-menu-options/render.php index 61f288f3e5..4a107ad235 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-menu-options/render.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-menu-options/render.php @@ -5,7 +5,7 @@ * @package wporg-plugins */ -use function WordPressdotorg\Plugin_Directory\Theme\{get_releases, get_previous_version, get_trac_changeset_link, get_blueprint_url, get_download_link}; +use function WordPressdotorg\Plugin_Directory\Theme\{get_previous_version, get_trac_changeset_link, get_blueprint_url, get_download_link}; if ( ! $block->context['postId'] ) { return; @@ -16,8 +16,8 @@ return; } -$current_version = get_post_meta( $release_post->ID, 'release_version', true ); -$download_link = get_download_link( $release_post->post_parent, $current_version ); +$current_version = get_post_meta( $release_post->ID, 'release_version', true ); +$download_link = get_download_link( $release_post->post_parent, $current_version ); $download_link_html = sprintf( '', __( 'Download', 'wporg-plugins' ), @@ -30,9 +30,8 @@ esc_url( get_blueprint_url( get_download_link( $current_version ) ) ) ); -$changes_link_html = ''; -$releases = get_releases(); -$previous_version = get_previous_version( $release_post, $releases ); +$changes_link_html = ''; +$previous_version = get_previous_version( $release_post ); if ( null !== $previous_version ) { $changes_link_html = sprintf( From 059248f600f5409d13ad26178d085a5f140551b3 Mon Sep 17 00:00:00 2001 From: StevenDufresne Date: Tue, 10 Dec 2024 02:38:40 +0000 Subject: [PATCH 50/84] Fix download link. --- .../src/blocks/release-menu-options/render.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-menu-options/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-menu-options/render.php index 4a107ad235..a3c19eaccb 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-menu-options/render.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-menu-options/render.php @@ -17,7 +17,7 @@ } $current_version = get_post_meta( $release_post->ID, 'release_version', true ); -$download_link = get_download_link( $release_post->post_parent, $current_version ); +$download_link = get_download_link( $current_version ); $download_link_html = sprintf( '', __( 'Download', 'wporg-plugins' ), From e14dd08401d237bb8359cf5e658a3e14071c5fcf Mon Sep 17 00:00:00 2001 From: StevenDufresne Date: Tue, 10 Dec 2024 05:58:45 +0000 Subject: [PATCH 51/84] Update trunk title. --- .../build/blocks/archive-page/index.asset.php | 2 +- .../build/blocks/archive-page/index.js | 184 ++++++++++- .../build/blocks/card/index.asset.php | 2 +- .../build/blocks/card/index.js | 299 +++++++++++++++++- .../build/blocks/card/style-index.css | 9 +- .../category-navigation/index.asset.php | 2 +- .../build/blocks/category-navigation/index.js | 184 ++++++++++- .../build/blocks/filter-bar/index.asset.php | 2 +- .../build/blocks/filter-bar/index.js | 184 ++++++++++- .../build/blocks/front-page/index.asset.php | 2 +- .../build/blocks/front-page/index.js | 184 ++++++++++- .../build/blocks/plugin-card/index.asset.php | 2 +- .../build/blocks/plugin-card/index.js | 184 ++++++++++- .../build/blocks/plugin-card/view.asset.php | 2 +- .../build/blocks/plugin-card/view.js | 37 ++- .../blocks/release-checks/index.asset.php | 2 +- .../build/blocks/release-checks/index.js | 299 +++++++++++++++++- .../blocks/release-checks/style-index.css | 13 +- .../blocks/release-commits/index.asset.php | 2 +- .../build/blocks/release-commits/index.js | 299 +++++++++++++++++- .../blocks/release-commits/style-index.css | 36 ++- .../blocks/release-draft/index.asset.php | 2 +- .../build/blocks/release-draft/index.js | 299 +++++++++++++++++- .../build/blocks/release-draft/render.php | 13 +- .../blocks/release-draft/style-index.css | 9 +- .../blocks/release-flags/index.asset.php | 2 +- .../build/blocks/release-flags/index.js | 184 ++++++++++- .../release-menu-options/index.asset.php | 2 +- .../blocks/release-menu-options/index.js | 299 +++++++++++++++++- .../blocks/release-menu-options/render.php | 2 +- .../release-menu-options/style-index.css | 41 ++- .../build/blocks/release-page/index.asset.php | 2 +- .../build/blocks/release-page/index.js | 299 +++++++++++++++++- .../build/blocks/release-page/style-index.css | 13 +- .../build/blocks/release-page/view.asset.php | 2 +- .../build/blocks/release-page/view.js | 88 +++++- .../blocks/release-publish/index.asset.php | 2 +- .../build/blocks/release-publish/index.js | 299 +++++++++++++++++- .../blocks/release-publish/style-index.css | 31 +- .../blocks/release-publish/view.asset.php | 2 +- .../build/blocks/release-publish/view.js | 142 ++++++++- .../release-result-item/index.asset.php | 2 +- .../build/blocks/release-result-item/index.js | 299 +++++++++++++++++- .../release-result-item/style-index.css | 22 +- .../build/blocks/search-page/index.asset.php | 2 +- .../build/blocks/search-page/index.js | 184 ++++++++++- .../blocks/single-plugin/index.asset.php | 2 +- .../build/blocks/single-plugin/index.js | 184 ++++++++++- .../src/blocks/release-draft/render.php | 13 +- 49 files changed, 4316 insertions(+), 55 deletions(-) diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/archive-page/index.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/archive-page/index.asset.php index d7b228686a..9202f58eda 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/archive-page/index.asset.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/archive-page/index.asset.php @@ -1 +1 @@ - array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => '8627e1da9b24373a1f90'); + array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => '7f26875761f01d13f9dd'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/archive-page/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/archive-page/index.js index 1b86a728bd..772b3d2c7e 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/archive-page/index.js +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/archive-page/index.js @@ -1 +1,183 @@ -(()=>{"use strict";var e={n:t=>{var r=t&&t.__esModule?()=>t.default:()=>t;return e.d(r,{a:r}),r},d:(t,r)=>{for(var o in r)e.o(r,o)&&!e.o(t,o)&&Object.defineProperty(t,o,{enumerable:!0,get:r[o]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t)};const t=window.React,r=window.wp.components,o=window.wp.blocks,n=window.wp.serverSideRender;var a=e.n(n);const c=window.wp.blockEditor,i=JSON.parse('{"u2":"wporg/archive-page"}');(0,o.registerBlockType)(i.u2,{edit:function({attributes:e,name:o}){return(0,t.createElement)("div",{...(0,c.useBlockProps)()},(0,t.createElement)(r.Disabled,null,(0,t.createElement)(a(),{block:o,attributes:e})))},save:()=>null})})(); \ No newline at end of file +/******/ (() => { // webpackBootstrap +/******/ "use strict"; +/******/ var __webpack_modules__ = ({ + +/***/ "react": +/*!************************!*\ + !*** external "React" ***! + \************************/ +/***/ ((module) => { + +module.exports = window["React"]; + +/***/ }), + +/***/ "@wordpress/block-editor": +/*!*************************************!*\ + !*** external ["wp","blockEditor"] ***! + \*************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["blockEditor"]; + +/***/ }), + +/***/ "@wordpress/blocks": +/*!********************************!*\ + !*** external ["wp","blocks"] ***! + \********************************/ +/***/ ((module) => { + +module.exports = window["wp"]["blocks"]; + +/***/ }), + +/***/ "@wordpress/components": +/*!************************************!*\ + !*** external ["wp","components"] ***! + \************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["components"]; + +/***/ }), + +/***/ "@wordpress/server-side-render": +/*!******************************************!*\ + !*** external ["wp","serverSideRender"] ***! + \******************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["serverSideRender"]; + +/***/ }), + +/***/ "./src/blocks/archive-page/block.json": +/*!********************************************!*\ + !*** ./src/blocks/archive-page/block.json ***! + \********************************************/ +/***/ ((module) => { + +module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"wporg/archive-page","version":"0.1.0","title":"Archive Page Content","category":"design","icon":"","description":"A block that displays the archive page content","textdomain":"wporg","attributes":{},"supports":{"html":false},"editorScript":"file:./index.js","render":"file:./render.php"}'); + +/***/ }) + +/******/ }); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ // no module.id needed +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/************************************************************************/ +/******/ /* webpack/runtime/compat get default export */ +/******/ (() => { +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = (module) => { +/******/ var getter = module && module.__esModule ? +/******/ () => (module['default']) : +/******/ () => (module); +/******/ __webpack_require__.d(getter, { a: getter }); +/******/ return getter; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/define property getters */ +/******/ (() => { +/******/ // define getter functions for harmony exports +/******/ __webpack_require__.d = (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 */ +/******/ (() => { +/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) +/******/ })(); +/******/ +/******/ /* webpack/runtime/make namespace object */ +/******/ (() => { +/******/ // define __esModule on exports +/******/ __webpack_require__.r = (exports) => { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ })(); +/******/ +/************************************************************************/ +var __webpack_exports__ = {}; +// This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk. +(() => { +/*!******************************************!*\ + !*** ./src/blocks/archive-page/index.js ***! + \******************************************/ +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); +/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/blocks */ "@wordpress/blocks"); +/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/server-side-render */ "@wordpress/server-side-render"); +/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/block-editor */ "@wordpress/block-editor"); +/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__); +/* harmony import */ var _block_json__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./block.json */ "./src/blocks/archive-page/block.json"); + +/** + * WordPress dependencies + */ + + + + + +/** + * Internal dependencies + */ + +function Edit({ + attributes, + name +}) { + return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", { + ...(0,_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__.useBlockProps)() + }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Disabled, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)((_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default()), { + block: name, + attributes: attributes + }))); +} +(0,_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__.registerBlockType)(_block_json__WEBPACK_IMPORTED_MODULE_5__.name, { + edit: Edit, + save: () => null +}); +})(); + +/******/ })() +; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/card/index.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/card/index.asset.php index cc0120678c..459c076b07 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/card/index.asset.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/card/index.asset.php @@ -1 +1 @@ - array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => '046977664ec5b2f853f7'); + array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => '47e3efb31a2fd6ac5818'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/card/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/card/index.js index 8e83f8ed24..bd122c23df 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/card/index.js +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/card/index.js @@ -1 +1,298 @@ -(()=>{"use strict";var e,r={594:(e,r,n)=>{const o=window.React,t=window.wp.components,i=window.wp.blocks,a=window.wp.serverSideRender;var l=n.n(a);const s=window.wp.blockEditor;(0,i.registerBlockType)("wporg/card",{edit:function({attributes:e,name:r}){return(0,o.createElement)("div",{...(0,s.useBlockProps)()},(0,o.createElement)(t.Disabled,null,(0,o.createElement)(l(),{block:r,attributes:e})))},save:()=>null})}},n={};function o(e){var t=n[e];if(void 0!==t)return t.exports;var i=n[e]={exports:{}};return r[e](i,i.exports,o),i.exports}o.m=r,e=[],o.O=(r,n,t,i)=>{if(!n){var a=1/0;for(c=0;c=i)&&Object.keys(o.O).every((e=>o.O[e](n[s])))?n.splice(s--,1):(l=!1,i0&&e[c-1][2]>i;c--)e[c]=e[c-1];e[c]=[n,t,i]},o.n=e=>{var r=e&&e.__esModule?()=>e.default:()=>e;return o.d(r,{a:r}),r},o.d=(e,r)=>{for(var n in r)o.o(r,n)&&!o.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),(()=>{var e={816:0,294:0};o.O.j=r=>0===e[r];var r=(r,n)=>{var t,i,a=n[0],l=n[1],s=n[2],p=0;if(a.some((r=>0!==e[r]))){for(t in l)o.o(l,t)&&(o.m[t]=l[t]);if(s)var c=s(o)}for(r&&r(n);po(594)));t=o.O(t)})(); \ No newline at end of file +/******/ (() => { // webpackBootstrap +/******/ "use strict"; +/******/ var __webpack_modules__ = ({ + +/***/ "./src/blocks/card/index.js": +/*!**********************************!*\ + !*** ./src/blocks/card/index.js ***! + \**********************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); +/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/blocks */ "@wordpress/blocks"); +/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/server-side-render */ "@wordpress/server-side-render"); +/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/block-editor */ "@wordpress/block-editor"); +/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__); +/* harmony import */ var _block_json__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./block.json */ "./src/blocks/card/block.json"); +/* harmony import */ var _style_scss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./style.scss */ "./src/blocks/card/style.scss"); + +/** + * WordPress dependencies + */ + + + + + +/** + * Internal dependencies + */ + + +function Edit({ + attributes, + name +}) { + return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", { + ...(0,_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__.useBlockProps)() + }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Disabled, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)((_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default()), { + block: name, + attributes: attributes + }))); +} +(0,_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__.registerBlockType)(_block_json__WEBPACK_IMPORTED_MODULE_5__.name, { + edit: Edit, + save: () => null +}); + +/***/ }), + +/***/ "./src/blocks/card/style.scss": +/*!************************************!*\ + !*** ./src/blocks/card/style.scss ***! + \************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +// extracted by mini-css-extract-plugin + + +/***/ }), + +/***/ "react": +/*!************************!*\ + !*** external "React" ***! + \************************/ +/***/ ((module) => { + +module.exports = window["React"]; + +/***/ }), + +/***/ "@wordpress/block-editor": +/*!*************************************!*\ + !*** external ["wp","blockEditor"] ***! + \*************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["blockEditor"]; + +/***/ }), + +/***/ "@wordpress/blocks": +/*!********************************!*\ + !*** external ["wp","blocks"] ***! + \********************************/ +/***/ ((module) => { + +module.exports = window["wp"]["blocks"]; + +/***/ }), + +/***/ "@wordpress/components": +/*!************************************!*\ + !*** external ["wp","components"] ***! + \************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["components"]; + +/***/ }), + +/***/ "@wordpress/server-side-render": +/*!******************************************!*\ + !*** external ["wp","serverSideRender"] ***! + \******************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["serverSideRender"]; + +/***/ }), + +/***/ "./src/blocks/card/block.json": +/*!************************************!*\ + !*** ./src/blocks/card/block.json ***! + \************************************/ +/***/ ((module) => { + +module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"wporg/card","version":"0.1.0","title":"Release Card","category":"design","icon":"","description":"A block to display a card.","textdomain":"wporg","attributes":{"title":{"type":"string","default":""}},"supports":{"html":false,"interactivity":true},"usesContext":["postId"],"editorScript":"file:./index.js","render":"file:./render.php","style":"file:./style-index.css"}'); + +/***/ }) + +/******/ }); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ // no module.id needed +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = __webpack_modules__; +/******/ +/************************************************************************/ +/******/ /* webpack/runtime/chunk loaded */ +/******/ (() => { +/******/ var deferred = []; +/******/ __webpack_require__.O = (result, chunkIds, fn, priority) => { +/******/ if(chunkIds) { +/******/ priority = priority || 0; +/******/ for(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1]; +/******/ deferred[i] = [chunkIds, fn, priority]; +/******/ return; +/******/ } +/******/ var notFulfilled = Infinity; +/******/ for (var i = 0; i < deferred.length; i++) { +/******/ var chunkIds = deferred[i][0]; +/******/ var fn = deferred[i][1]; +/******/ var priority = deferred[i][2]; +/******/ var fulfilled = true; +/******/ for (var j = 0; j < chunkIds.length; j++) { +/******/ if ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) { +/******/ chunkIds.splice(j--, 1); +/******/ } else { +/******/ fulfilled = false; +/******/ if(priority < notFulfilled) notFulfilled = priority; +/******/ } +/******/ } +/******/ if(fulfilled) { +/******/ deferred.splice(i--, 1) +/******/ var r = fn(); +/******/ if (r !== undefined) result = r; +/******/ } +/******/ } +/******/ return result; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/compat get default export */ +/******/ (() => { +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = (module) => { +/******/ var getter = module && module.__esModule ? +/******/ () => (module['default']) : +/******/ () => (module); +/******/ __webpack_require__.d(getter, { a: getter }); +/******/ return getter; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/define property getters */ +/******/ (() => { +/******/ // define getter functions for harmony exports +/******/ __webpack_require__.d = (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 */ +/******/ (() => { +/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) +/******/ })(); +/******/ +/******/ /* webpack/runtime/make namespace object */ +/******/ (() => { +/******/ // define __esModule on exports +/******/ __webpack_require__.r = (exports) => { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/jsonp chunk loading */ +/******/ (() => { +/******/ // no baseURI +/******/ +/******/ // object to store loaded and loading chunks +/******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched +/******/ // [resolve, reject, Promise] = chunk loading, 0 = chunk loaded +/******/ var installedChunks = { +/******/ "blocks/card/index": 0, +/******/ "blocks/card/style-index": 0 +/******/ }; +/******/ +/******/ // no chunk on demand loading +/******/ +/******/ // no prefetching +/******/ +/******/ // no preloaded +/******/ +/******/ // no HMR +/******/ +/******/ // no HMR manifest +/******/ +/******/ __webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0); +/******/ +/******/ // install a JSONP callback for chunk loading +/******/ var webpackJsonpCallback = (parentChunkLoadingFunction, data) => { +/******/ var chunkIds = data[0]; +/******/ var moreModules = data[1]; +/******/ var runtime = data[2]; +/******/ // add "moreModules" to the modules object, +/******/ // then flag all "chunkIds" as loaded and fire callback +/******/ var moduleId, chunkId, i = 0; +/******/ if(chunkIds.some((id) => (installedChunks[id] !== 0))) { +/******/ for(moduleId in moreModules) { +/******/ if(__webpack_require__.o(moreModules, moduleId)) { +/******/ __webpack_require__.m[moduleId] = moreModules[moduleId]; +/******/ } +/******/ } +/******/ if(runtime) var result = runtime(__webpack_require__); +/******/ } +/******/ if(parentChunkLoadingFunction) parentChunkLoadingFunction(data); +/******/ for(;i < chunkIds.length; i++) { +/******/ chunkId = chunkIds[i]; +/******/ if(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) { +/******/ installedChunks[chunkId][0](); +/******/ } +/******/ installedChunks[chunkId] = 0; +/******/ } +/******/ return __webpack_require__.O(result); +/******/ } +/******/ +/******/ var chunkLoadingGlobal = self["webpackChunkwporg_plugins_2024"] = self["webpackChunkwporg_plugins_2024"] || []; +/******/ chunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0)); +/******/ chunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal)); +/******/ })(); +/******/ +/************************************************************************/ +/******/ +/******/ // startup +/******/ // Load entry module and return exports +/******/ // This entry module depends on other loaded chunks and execution need to be delayed +/******/ var __webpack_exports__ = __webpack_require__.O(undefined, ["blocks/card/style-index"], () => (__webpack_require__("./src/blocks/card/index.js"))) +/******/ __webpack_exports__ = __webpack_require__.O(__webpack_exports__); +/******/ +/******/ })() +; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/card/style-index.css b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/card/style-index.css index f58c926420..9de758353f 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/card/style-index.css +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/card/style-index.css @@ -1 +1,8 @@ -.wp-block-wporg-release-draft{font-size:var(--wp--preset--font-size--small)} +/*!***************************************************************************************************************************************************************************************************************************************************!*\ + !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/blocks/card/style.scss ***! + \***************************************************************************************************************************************************************************************************************************************************/ +.wp-block-wporg-release-draft { + font-size: var(--wp--preset--font-size--small); +} + +/*# sourceMappingURL=style-index.css.map*/ \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/category-navigation/index.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/category-navigation/index.asset.php index ab2fb9f31a..94878f12bf 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/category-navigation/index.asset.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/category-navigation/index.asset.php @@ -1 +1 @@ - array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => '6bce91817a063cdf476d'); + array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => '9b7cfda9379a258a4745'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/category-navigation/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/category-navigation/index.js index e8e14d7ec6..a639fdc3e3 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/category-navigation/index.js +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/category-navigation/index.js @@ -1 +1,183 @@ -(()=>{"use strict";var e={n:t=>{var r=t&&t.__esModule?()=>t.default:()=>t;return e.d(r,{a:r}),r},d:(t,r)=>{for(var o in r)e.o(r,o)&&!e.o(t,o)&&Object.defineProperty(t,o,{enumerable:!0,get:r[o]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t)};const t=window.React,r=window.wp.components,o=window.wp.blocks,n=window.wp.serverSideRender;var a=e.n(n);const i=window.wp.blockEditor,c=JSON.parse('{"u2":"wporg/category-navigation"}');(0,o.registerBlockType)(c.u2,{edit:function({attributes:e,name:o}){return(0,t.createElement)("div",{...(0,i.useBlockProps)()},(0,t.createElement)(r.Disabled,null,(0,t.createElement)(a(),{block:o,attributes:e})))},save:()=>null})})(); \ No newline at end of file +/******/ (() => { // webpackBootstrap +/******/ "use strict"; +/******/ var __webpack_modules__ = ({ + +/***/ "react": +/*!************************!*\ + !*** external "React" ***! + \************************/ +/***/ ((module) => { + +module.exports = window["React"]; + +/***/ }), + +/***/ "@wordpress/block-editor": +/*!*************************************!*\ + !*** external ["wp","blockEditor"] ***! + \*************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["blockEditor"]; + +/***/ }), + +/***/ "@wordpress/blocks": +/*!********************************!*\ + !*** external ["wp","blocks"] ***! + \********************************/ +/***/ ((module) => { + +module.exports = window["wp"]["blocks"]; + +/***/ }), + +/***/ "@wordpress/components": +/*!************************************!*\ + !*** external ["wp","components"] ***! + \************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["components"]; + +/***/ }), + +/***/ "@wordpress/server-side-render": +/*!******************************************!*\ + !*** external ["wp","serverSideRender"] ***! + \******************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["serverSideRender"]; + +/***/ }), + +/***/ "./src/blocks/category-navigation/block.json": +/*!***************************************************!*\ + !*** ./src/blocks/category-navigation/block.json ***! + \***************************************************/ +/***/ ((module) => { + +module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"wporg/category-navigation","version":"0.2.0","title":"Category Navigation","category":"design","icon":"","description":"Adds the category navigation menu","textdomain":"wporg","attributes":{},"supports":{"html":false},"editorScript":"file:./index.js","render":"file:./render.php"}'); + +/***/ }) + +/******/ }); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ // no module.id needed +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/************************************************************************/ +/******/ /* webpack/runtime/compat get default export */ +/******/ (() => { +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = (module) => { +/******/ var getter = module && module.__esModule ? +/******/ () => (module['default']) : +/******/ () => (module); +/******/ __webpack_require__.d(getter, { a: getter }); +/******/ return getter; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/define property getters */ +/******/ (() => { +/******/ // define getter functions for harmony exports +/******/ __webpack_require__.d = (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 */ +/******/ (() => { +/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) +/******/ })(); +/******/ +/******/ /* webpack/runtime/make namespace object */ +/******/ (() => { +/******/ // define __esModule on exports +/******/ __webpack_require__.r = (exports) => { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ })(); +/******/ +/************************************************************************/ +var __webpack_exports__ = {}; +// This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk. +(() => { +/*!*************************************************!*\ + !*** ./src/blocks/category-navigation/index.js ***! + \*************************************************/ +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); +/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/blocks */ "@wordpress/blocks"); +/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/server-side-render */ "@wordpress/server-side-render"); +/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/block-editor */ "@wordpress/block-editor"); +/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__); +/* harmony import */ var _block_json__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./block.json */ "./src/blocks/category-navigation/block.json"); + +/** + * WordPress dependencies + */ + + + + + +/** + * Internal dependencies + */ + +function Edit({ + attributes, + name +}) { + return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", { + ...(0,_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__.useBlockProps)() + }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Disabled, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)((_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default()), { + block: name, + attributes: attributes + }))); +} +(0,_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__.registerBlockType)(_block_json__WEBPACK_IMPORTED_MODULE_5__.name, { + edit: Edit, + save: () => null +}); +})(); + +/******/ })() +; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/filter-bar/index.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/filter-bar/index.asset.php index 32cfe90ff5..922b695350 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/filter-bar/index.asset.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/filter-bar/index.asset.php @@ -1 +1 @@ - array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => '4e25fbe50d772f6a1559'); + array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => 'fe9a74e9340bde2c89fa'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/filter-bar/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/filter-bar/index.js index 3662ea6f71..1d81e7ca65 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/filter-bar/index.js +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/filter-bar/index.js @@ -1 +1,183 @@ -(()=>{"use strict";var e={n:t=>{var r=t&&t.__esModule?()=>t.default:()=>t;return e.d(r,{a:r}),r},d:(t,r)=>{for(var o in r)e.o(r,o)&&!e.o(t,o)&&Object.defineProperty(t,o,{enumerable:!0,get:r[o]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t)};const t=window.React,r=window.wp.components,o=window.wp.blocks,n=window.wp.serverSideRender;var a=e.n(n);const l=window.wp.blockEditor,i=JSON.parse('{"u2":"wporg/filter-bar"}');(0,o.registerBlockType)(i.u2,{edit:function({attributes:e,name:o}){return(0,t.createElement)("div",{...(0,l.useBlockProps)()},(0,t.createElement)(r.Disabled,null,(0,t.createElement)(a(),{block:o,attributes:e})))},save:()=>null})})(); \ No newline at end of file +/******/ (() => { // webpackBootstrap +/******/ "use strict"; +/******/ var __webpack_modules__ = ({ + +/***/ "react": +/*!************************!*\ + !*** external "React" ***! + \************************/ +/***/ ((module) => { + +module.exports = window["React"]; + +/***/ }), + +/***/ "@wordpress/block-editor": +/*!*************************************!*\ + !*** external ["wp","blockEditor"] ***! + \*************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["blockEditor"]; + +/***/ }), + +/***/ "@wordpress/blocks": +/*!********************************!*\ + !*** external ["wp","blocks"] ***! + \********************************/ +/***/ ((module) => { + +module.exports = window["wp"]["blocks"]; + +/***/ }), + +/***/ "@wordpress/components": +/*!************************************!*\ + !*** external ["wp","components"] ***! + \************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["components"]; + +/***/ }), + +/***/ "@wordpress/server-side-render": +/*!******************************************!*\ + !*** external ["wp","serverSideRender"] ***! + \******************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["serverSideRender"]; + +/***/ }), + +/***/ "./src/blocks/filter-bar/block.json": +/*!******************************************!*\ + !*** ./src/blocks/filter-bar/block.json ***! + \******************************************/ +/***/ ((module) => { + +module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"wporg/filter-bar","version":"0.2.0","title":"Filter Bar","category":"design","icon":"","description":"Adds a filter bar","textdomain":"wporg","attributes":{},"supports":{"html":false},"editorScript":"file:./index.js","render":"file:./render.php"}'); + +/***/ }) + +/******/ }); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ // no module.id needed +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/************************************************************************/ +/******/ /* webpack/runtime/compat get default export */ +/******/ (() => { +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = (module) => { +/******/ var getter = module && module.__esModule ? +/******/ () => (module['default']) : +/******/ () => (module); +/******/ __webpack_require__.d(getter, { a: getter }); +/******/ return getter; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/define property getters */ +/******/ (() => { +/******/ // define getter functions for harmony exports +/******/ __webpack_require__.d = (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 */ +/******/ (() => { +/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) +/******/ })(); +/******/ +/******/ /* webpack/runtime/make namespace object */ +/******/ (() => { +/******/ // define __esModule on exports +/******/ __webpack_require__.r = (exports) => { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ })(); +/******/ +/************************************************************************/ +var __webpack_exports__ = {}; +// This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk. +(() => { +/*!****************************************!*\ + !*** ./src/blocks/filter-bar/index.js ***! + \****************************************/ +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); +/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/blocks */ "@wordpress/blocks"); +/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/server-side-render */ "@wordpress/server-side-render"); +/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/block-editor */ "@wordpress/block-editor"); +/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__); +/* harmony import */ var _block_json__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./block.json */ "./src/blocks/filter-bar/block.json"); + +/** + * WordPress dependencies + */ + + + + + +/** + * Internal dependencies + */ + +function Edit({ + attributes, + name +}) { + return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", { + ...(0,_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__.useBlockProps)() + }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Disabled, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)((_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default()), { + block: name, + attributes: attributes + }))); +} +(0,_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__.registerBlockType)(_block_json__WEBPACK_IMPORTED_MODULE_5__.name, { + edit: Edit, + save: () => null +}); +})(); + +/******/ })() +; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/front-page/index.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/front-page/index.asset.php index 09684019c7..264faed9d3 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/front-page/index.asset.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/front-page/index.asset.php @@ -1 +1 @@ - array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => '3f3755bbf3697bb808f8'); + array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => 'b4c88578d4fb8d783dd4'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/front-page/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/front-page/index.js index 7a3c8b2166..7136a3f573 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/front-page/index.js +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/front-page/index.js @@ -1 +1,183 @@ -(()=>{"use strict";var e={n:t=>{var r=t&&t.__esModule?()=>t.default:()=>t;return e.d(r,{a:r}),r},d:(t,r)=>{for(var o in r)e.o(r,o)&&!e.o(t,o)&&Object.defineProperty(t,o,{enumerable:!0,get:r[o]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t)};const t=window.React,r=window.wp.components,o=window.wp.blocks,n=window.wp.serverSideRender;var a=e.n(n);const l=window.wp.blockEditor,c=JSON.parse('{"u2":"wporg/front-page"}');(0,o.registerBlockType)(c.u2,{edit:function({attributes:e,name:o}){return(0,t.createElement)("div",{...(0,l.useBlockProps)()},(0,t.createElement)(r.Disabled,null,(0,t.createElement)(a(),{block:o,attributes:e})))},save:()=>null})})(); \ No newline at end of file +/******/ (() => { // webpackBootstrap +/******/ "use strict"; +/******/ var __webpack_modules__ = ({ + +/***/ "react": +/*!************************!*\ + !*** external "React" ***! + \************************/ +/***/ ((module) => { + +module.exports = window["React"]; + +/***/ }), + +/***/ "@wordpress/block-editor": +/*!*************************************!*\ + !*** external ["wp","blockEditor"] ***! + \*************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["blockEditor"]; + +/***/ }), + +/***/ "@wordpress/blocks": +/*!********************************!*\ + !*** external ["wp","blocks"] ***! + \********************************/ +/***/ ((module) => { + +module.exports = window["wp"]["blocks"]; + +/***/ }), + +/***/ "@wordpress/components": +/*!************************************!*\ + !*** external ["wp","components"] ***! + \************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["components"]; + +/***/ }), + +/***/ "@wordpress/server-side-render": +/*!******************************************!*\ + !*** external ["wp","serverSideRender"] ***! + \******************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["serverSideRender"]; + +/***/ }), + +/***/ "./src/blocks/front-page/block.json": +/*!******************************************!*\ + !*** ./src/blocks/front-page/block.json ***! + \******************************************/ +/***/ ((module) => { + +module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"wporg/front-page","version":"0.1.0","title":"Front Page Content","category":"design","icon":"","description":"A block that displays the front page content","textdomain":"wporg","attributes":{},"supports":{"html":false},"editorScript":"file:./index.js","render":"file:./render.php"}'); + +/***/ }) + +/******/ }); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ // no module.id needed +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/************************************************************************/ +/******/ /* webpack/runtime/compat get default export */ +/******/ (() => { +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = (module) => { +/******/ var getter = module && module.__esModule ? +/******/ () => (module['default']) : +/******/ () => (module); +/******/ __webpack_require__.d(getter, { a: getter }); +/******/ return getter; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/define property getters */ +/******/ (() => { +/******/ // define getter functions for harmony exports +/******/ __webpack_require__.d = (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 */ +/******/ (() => { +/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) +/******/ })(); +/******/ +/******/ /* webpack/runtime/make namespace object */ +/******/ (() => { +/******/ // define __esModule on exports +/******/ __webpack_require__.r = (exports) => { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ })(); +/******/ +/************************************************************************/ +var __webpack_exports__ = {}; +// This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk. +(() => { +/*!****************************************!*\ + !*** ./src/blocks/front-page/index.js ***! + \****************************************/ +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); +/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/blocks */ "@wordpress/blocks"); +/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/server-side-render */ "@wordpress/server-side-render"); +/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/block-editor */ "@wordpress/block-editor"); +/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__); +/* harmony import */ var _block_json__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./block.json */ "./src/blocks/front-page/block.json"); + +/** + * WordPress dependencies + */ + + + + + +/** + * Internal dependencies + */ + +function Edit({ + attributes, + name +}) { + return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", { + ...(0,_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__.useBlockProps)() + }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Disabled, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)((_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default()), { + block: name, + attributes: attributes + }))); +} +(0,_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__.registerBlockType)(_block_json__WEBPACK_IMPORTED_MODULE_5__.name, { + edit: Edit, + save: () => null +}); +})(); + +/******/ })() +; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/plugin-card/index.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/plugin-card/index.asset.php index f1dd1a21c9..b579c818ac 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/plugin-card/index.asset.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/plugin-card/index.asset.php @@ -1 +1 @@ - array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => '58f6f779c22873c960e8'); + array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => '26ed8b457f67063bbcbe'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/plugin-card/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/plugin-card/index.js index 3f9a8e7de5..77b892a7b3 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/plugin-card/index.js +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/plugin-card/index.js @@ -1 +1,183 @@ -(()=>{"use strict";var e={n:t=>{var r=t&&t.__esModule?()=>t.default:()=>t;return e.d(r,{a:r}),r},d:(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:(e,t)=>Object.prototype.hasOwnProperty.call(e,t)};const t=window.React,r=window.wp.components,n=window.wp.blocks,o=window.wp.serverSideRender;var a=e.n(o);const l=window.wp.blockEditor,c=JSON.parse('{"u2":"wporg/plugin-card"}');(0,n.registerBlockType)(c.u2,{edit:function({attributes:e,name:n}){return(0,t.createElement)("div",{...(0,l.useBlockProps)()},(0,t.createElement)(r.Disabled,null,(0,t.createElement)(a(),{block:n,attributes:e})))},save:()=>null})})(); \ No newline at end of file +/******/ (() => { // webpackBootstrap +/******/ "use strict"; +/******/ var __webpack_modules__ = ({ + +/***/ "react": +/*!************************!*\ + !*** external "React" ***! + \************************/ +/***/ ((module) => { + +module.exports = window["React"]; + +/***/ }), + +/***/ "@wordpress/block-editor": +/*!*************************************!*\ + !*** external ["wp","blockEditor"] ***! + \*************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["blockEditor"]; + +/***/ }), + +/***/ "@wordpress/blocks": +/*!********************************!*\ + !*** external ["wp","blocks"] ***! + \********************************/ +/***/ ((module) => { + +module.exports = window["wp"]["blocks"]; + +/***/ }), + +/***/ "@wordpress/components": +/*!************************************!*\ + !*** external ["wp","components"] ***! + \************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["components"]; + +/***/ }), + +/***/ "@wordpress/server-side-render": +/*!******************************************!*\ + !*** external ["wp","serverSideRender"] ***! + \******************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["serverSideRender"]; + +/***/ }), + +/***/ "./src/blocks/plugin-card/block.json": +/*!*******************************************!*\ + !*** ./src/blocks/plugin-card/block.json ***! + \*******************************************/ +/***/ ((module) => { + +module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"wporg/plugin-card","version":"0.1.0","title":"Plugin Card for Archive Pages","category":"design","icon":"","description":"A block that displays a plugin card.","textdomain":"wporg","attributes":{},"supports":{"html":false},"editorScript":"file:./index.js","render":"file:./render.php","viewScript":"file:./view.js"}'); + +/***/ }) + +/******/ }); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ // no module.id needed +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/************************************************************************/ +/******/ /* webpack/runtime/compat get default export */ +/******/ (() => { +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = (module) => { +/******/ var getter = module && module.__esModule ? +/******/ () => (module['default']) : +/******/ () => (module); +/******/ __webpack_require__.d(getter, { a: getter }); +/******/ return getter; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/define property getters */ +/******/ (() => { +/******/ // define getter functions for harmony exports +/******/ __webpack_require__.d = (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 */ +/******/ (() => { +/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) +/******/ })(); +/******/ +/******/ /* webpack/runtime/make namespace object */ +/******/ (() => { +/******/ // define __esModule on exports +/******/ __webpack_require__.r = (exports) => { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ })(); +/******/ +/************************************************************************/ +var __webpack_exports__ = {}; +// This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk. +(() => { +/*!*****************************************!*\ + !*** ./src/blocks/plugin-card/index.js ***! + \*****************************************/ +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); +/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/blocks */ "@wordpress/blocks"); +/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/server-side-render */ "@wordpress/server-side-render"); +/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/block-editor */ "@wordpress/block-editor"); +/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__); +/* harmony import */ var _block_json__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./block.json */ "./src/blocks/plugin-card/block.json"); + +/** + * WordPress dependencies + */ + + + + + +/** + * Internal dependencies + */ + +function Edit({ + attributes, + name +}) { + return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", { + ...(0,_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__.useBlockProps)() + }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Disabled, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)((_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default()), { + block: name, + attributes: attributes + }))); +} +(0,_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__.registerBlockType)(_block_json__WEBPACK_IMPORTED_MODULE_5__.name, { + edit: Edit, + save: () => null +}); +})(); + +/******/ })() +; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/plugin-card/view.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/plugin-card/view.asset.php index a451d28c8a..0dd4c71ab5 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/plugin-card/view.asset.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/plugin-card/view.asset.php @@ -1 +1 @@ - array(), 'version' => 'f221373b7e38d2ff3d7c'); + array(), 'version' => '038d83c28b7b82ea64d9'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/plugin-card/view.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/plugin-card/view.js index f3234f94de..a0ec1ebc4a 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/plugin-card/view.js +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/plugin-card/view.js @@ -1 +1,36 @@ -document.addEventListener("DOMContentLoaded",(function(){var e=document.querySelectorAll(".plugin-cards li");e&&e.forEach((function(e){e.addEventListener("click",(function(t){var n=window.getSelection().toString();if("a"!==t.target.tagName.toLowerCase()&&""===n){var o=e.querySelector("a");if(o){var r=o.getAttribute("href");window.location.href=r}}}))}))})); \ No newline at end of file +/******/ (() => { // webpackBootstrap +var __webpack_exports__ = {}; +/*!****************************************!*\ + !*** ./src/blocks/plugin-card/view.js ***! + \****************************************/ +/** + * Binds click events to navigate on plugin card click. + */ +document.addEventListener('DOMContentLoaded', function () { + var cards = document.querySelectorAll('.plugin-cards li'); + if (cards) { + cards.forEach(function (card) { + card.addEventListener('click', function (event) { + var selectedText = window.getSelection().toString(); + + // Keep regular anchor tag function + if ('a' === event.target.tagName.toLowerCase()) { + return; + } + + // If they are selecting text, let's not navigate. + if ('' !== selectedText) { + return; + } + var anchorTag = card.querySelector('a'); + if (anchorTag) { + var link = anchorTag.getAttribute('href'); + window.location.href = link; + } + }); + }); + } +}); +/******/ })() +; +//# sourceMappingURL=view.js.map \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks/index.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks/index.asset.php index 3c2ca53022..a727359a89 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks/index.asset.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks/index.asset.php @@ -1 +1 @@ - array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => 'a977c41b397d84605650'); + array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => 'e264093d240f158ddead'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks/index.js index 1739398679..406f7ccc3c 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks/index.js +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks/index.js @@ -1 +1,298 @@ -(()=>{"use strict";var e,r={651:(e,r,n)=>{const o=window.React,t=window.wp.components,a=window.wp.blocks,i=window.wp.serverSideRender;var l=n.n(i);const s=window.wp.blockEditor,p=JSON.parse('{"u2":"wporg/release-checks"}');(0,a.registerBlockType)(p.u2,{edit:function({attributes:e,name:r}){return(0,o.createElement)("div",{...(0,s.useBlockProps)()},(0,o.createElement)(t.Disabled,null,(0,o.createElement)(l(),{block:r,attributes:e})))},save:()=>null})}},n={};function o(e){var t=n[e];if(void 0!==t)return t.exports;var a=n[e]={exports:{}};return r[e](a,a.exports,o),a.exports}o.m=r,e=[],o.O=(r,n,t,a)=>{if(!n){var i=1/0;for(u=0;u=a)&&Object.keys(o.O).every((e=>o.O[e](n[s])))?n.splice(s--,1):(l=!1,a0&&e[u-1][2]>a;u--)e[u]=e[u-1];e[u]=[n,t,a]},o.n=e=>{var r=e&&e.__esModule?()=>e.default:()=>e;return o.d(r,{a:r}),r},o.d=(e,r)=>{for(var n in r)o.o(r,n)&&!o.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),(()=>{var e={361:0,276:0};o.O.j=r=>0===e[r];var r=(r,n)=>{var t,a,i=n[0],l=n[1],s=n[2],p=0;if(i.some((r=>0!==e[r]))){for(t in l)o.o(l,t)&&(o.m[t]=l[t]);if(s)var u=s(o)}for(r&&r(n);po(651)));t=o.O(t)})(); \ No newline at end of file +/******/ (() => { // webpackBootstrap +/******/ "use strict"; +/******/ var __webpack_modules__ = ({ + +/***/ "./src/blocks/release-checks/index.js": +/*!********************************************!*\ + !*** ./src/blocks/release-checks/index.js ***! + \********************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); +/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/blocks */ "@wordpress/blocks"); +/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/server-side-render */ "@wordpress/server-side-render"); +/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/block-editor */ "@wordpress/block-editor"); +/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__); +/* harmony import */ var _block_json__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./block.json */ "./src/blocks/release-checks/block.json"); +/* harmony import */ var _style_scss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./style.scss */ "./src/blocks/release-checks/style.scss"); + +/** + * WordPress dependencies + */ + + + + + +/** + * Internal dependencies + */ + + +function Edit({ + attributes, + name +}) { + return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", { + ...(0,_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__.useBlockProps)() + }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Disabled, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)((_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default()), { + block: name, + attributes: attributes + }))); +} +(0,_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__.registerBlockType)(_block_json__WEBPACK_IMPORTED_MODULE_5__.name, { + edit: Edit, + save: () => null +}); + +/***/ }), + +/***/ "./src/blocks/release-checks/style.scss": +/*!**********************************************!*\ + !*** ./src/blocks/release-checks/style.scss ***! + \**********************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +// extracted by mini-css-extract-plugin + + +/***/ }), + +/***/ "react": +/*!************************!*\ + !*** external "React" ***! + \************************/ +/***/ ((module) => { + +module.exports = window["React"]; + +/***/ }), + +/***/ "@wordpress/block-editor": +/*!*************************************!*\ + !*** external ["wp","blockEditor"] ***! + \*************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["blockEditor"]; + +/***/ }), + +/***/ "@wordpress/blocks": +/*!********************************!*\ + !*** external ["wp","blocks"] ***! + \********************************/ +/***/ ((module) => { + +module.exports = window["wp"]["blocks"]; + +/***/ }), + +/***/ "@wordpress/components": +/*!************************************!*\ + !*** external ["wp","components"] ***! + \************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["components"]; + +/***/ }), + +/***/ "@wordpress/server-side-render": +/*!******************************************!*\ + !*** external ["wp","serverSideRender"] ***! + \******************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["serverSideRender"]; + +/***/ }), + +/***/ "./src/blocks/release-checks/block.json": +/*!**********************************************!*\ + !*** ./src/blocks/release-checks/block.json ***! + \**********************************************/ +/***/ ((module) => { + +module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"wporg/release-checks","version":"0.1.0","title":"Release checks.","category":"design","icon":"","description":"A block to display release checks.","textdomain":"wporg","attributes":{},"supports":{"html":false},"usesContext":["postId"],"editorScript":"file:./index.js","render":"file:./render.php","style":"file:./style-index.css"}'); + +/***/ }) + +/******/ }); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ // no module.id needed +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = __webpack_modules__; +/******/ +/************************************************************************/ +/******/ /* webpack/runtime/chunk loaded */ +/******/ (() => { +/******/ var deferred = []; +/******/ __webpack_require__.O = (result, chunkIds, fn, priority) => { +/******/ if(chunkIds) { +/******/ priority = priority || 0; +/******/ for(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1]; +/******/ deferred[i] = [chunkIds, fn, priority]; +/******/ return; +/******/ } +/******/ var notFulfilled = Infinity; +/******/ for (var i = 0; i < deferred.length; i++) { +/******/ var chunkIds = deferred[i][0]; +/******/ var fn = deferred[i][1]; +/******/ var priority = deferred[i][2]; +/******/ var fulfilled = true; +/******/ for (var j = 0; j < chunkIds.length; j++) { +/******/ if ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) { +/******/ chunkIds.splice(j--, 1); +/******/ } else { +/******/ fulfilled = false; +/******/ if(priority < notFulfilled) notFulfilled = priority; +/******/ } +/******/ } +/******/ if(fulfilled) { +/******/ deferred.splice(i--, 1) +/******/ var r = fn(); +/******/ if (r !== undefined) result = r; +/******/ } +/******/ } +/******/ return result; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/compat get default export */ +/******/ (() => { +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = (module) => { +/******/ var getter = module && module.__esModule ? +/******/ () => (module['default']) : +/******/ () => (module); +/******/ __webpack_require__.d(getter, { a: getter }); +/******/ return getter; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/define property getters */ +/******/ (() => { +/******/ // define getter functions for harmony exports +/******/ __webpack_require__.d = (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 */ +/******/ (() => { +/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) +/******/ })(); +/******/ +/******/ /* webpack/runtime/make namespace object */ +/******/ (() => { +/******/ // define __esModule on exports +/******/ __webpack_require__.r = (exports) => { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/jsonp chunk loading */ +/******/ (() => { +/******/ // no baseURI +/******/ +/******/ // object to store loaded and loading chunks +/******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched +/******/ // [resolve, reject, Promise] = chunk loading, 0 = chunk loaded +/******/ var installedChunks = { +/******/ "blocks/release-checks/index": 0, +/******/ "blocks/release-checks/style-index": 0 +/******/ }; +/******/ +/******/ // no chunk on demand loading +/******/ +/******/ // no prefetching +/******/ +/******/ // no preloaded +/******/ +/******/ // no HMR +/******/ +/******/ // no HMR manifest +/******/ +/******/ __webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0); +/******/ +/******/ // install a JSONP callback for chunk loading +/******/ var webpackJsonpCallback = (parentChunkLoadingFunction, data) => { +/******/ var chunkIds = data[0]; +/******/ var moreModules = data[1]; +/******/ var runtime = data[2]; +/******/ // add "moreModules" to the modules object, +/******/ // then flag all "chunkIds" as loaded and fire callback +/******/ var moduleId, chunkId, i = 0; +/******/ if(chunkIds.some((id) => (installedChunks[id] !== 0))) { +/******/ for(moduleId in moreModules) { +/******/ if(__webpack_require__.o(moreModules, moduleId)) { +/******/ __webpack_require__.m[moduleId] = moreModules[moduleId]; +/******/ } +/******/ } +/******/ if(runtime) var result = runtime(__webpack_require__); +/******/ } +/******/ if(parentChunkLoadingFunction) parentChunkLoadingFunction(data); +/******/ for(;i < chunkIds.length; i++) { +/******/ chunkId = chunkIds[i]; +/******/ if(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) { +/******/ installedChunks[chunkId][0](); +/******/ } +/******/ installedChunks[chunkId] = 0; +/******/ } +/******/ return __webpack_require__.O(result); +/******/ } +/******/ +/******/ var chunkLoadingGlobal = self["webpackChunkwporg_plugins_2024"] = self["webpackChunkwporg_plugins_2024"] || []; +/******/ chunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0)); +/******/ chunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal)); +/******/ })(); +/******/ +/************************************************************************/ +/******/ +/******/ // startup +/******/ // Load entry module and return exports +/******/ // This entry module depends on other loaded chunks and execution need to be delayed +/******/ var __webpack_exports__ = __webpack_require__.O(undefined, ["blocks/release-checks/style-index"], () => (__webpack_require__("./src/blocks/release-checks/index.js"))) +/******/ __webpack_exports__ = __webpack_require__.O(__webpack_exports__); +/******/ +/******/ })() +; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks/style-index.css b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks/style-index.css index 16cc7274a7..8206df05fe 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks/style-index.css +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks/style-index.css @@ -1 +1,12 @@ -.wp-block-wporg-release-checks-results{list-style:disc;margin-left:16px}.wp-block-wporg-release-checks-results li:not(:last-child){margin-bottom:8px} +/*!*************************************************************************************************************************************************************************************************************************************************************!*\ + !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/blocks/release-checks/style.scss ***! + \*************************************************************************************************************************************************************************************************************************************************************/ +.wp-block-wporg-release-checks-results { + margin-left: 16px; + list-style: disc; +} +.wp-block-wporg-release-checks-results li:not(:last-child) { + margin-bottom: 8px; +} + +/*# sourceMappingURL=style-index.css.map*/ \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-commits/index.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-commits/index.asset.php index b010de5546..c7ee00d1f1 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-commits/index.asset.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-commits/index.asset.php @@ -1 +1 @@ - array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => 'fca13e6bda13f7954aae'); + array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => '5b31c659da768cc49abf'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-commits/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-commits/index.js index eac7869c9f..5b053c073b 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-commits/index.js +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-commits/index.js @@ -1 +1,298 @@ -(()=>{"use strict";var e,r={948:(e,r,o)=>{const t=window.React,n=window.wp.components,i=window.wp.blocks,a=window.wp.serverSideRender;var l=o.n(a);const s=window.wp.blockEditor,p=JSON.parse('{"u2":"wporg/release-commits"}');(0,i.registerBlockType)(p.u2,{edit:function({attributes:e,name:r}){return(0,t.createElement)("div",{...(0,s.useBlockProps)()},(0,t.createElement)(n.Disabled,null,(0,t.createElement)(l(),{block:r,attributes:e})))},save:()=>null})}},o={};function t(e){var n=o[e];if(void 0!==n)return n.exports;var i=o[e]={exports:{}};return r[e](i,i.exports,t),i.exports}t.m=r,e=[],t.O=(r,o,n,i)=>{if(!o){var a=1/0;for(u=0;u=i)&&Object.keys(t.O).every((e=>t.O[e](o[s])))?o.splice(s--,1):(l=!1,i0&&e[u-1][2]>i;u--)e[u]=e[u-1];e[u]=[o,n,i]},t.n=e=>{var r=e&&e.__esModule?()=>e.default:()=>e;return t.d(r,{a:r}),r},t.d=(e,r)=>{for(var o in r)t.o(r,o)&&!t.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:r[o]})},t.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),(()=>{var e={99:0,85:0};t.O.j=r=>0===e[r];var r=(r,o)=>{var n,i,a=o[0],l=o[1],s=o[2],p=0;if(a.some((r=>0!==e[r]))){for(n in l)t.o(l,n)&&(t.m[n]=l[n]);if(s)var u=s(t)}for(r&&r(o);pt(948)));n=t.O(n)})(); \ No newline at end of file +/******/ (() => { // webpackBootstrap +/******/ "use strict"; +/******/ var __webpack_modules__ = ({ + +/***/ "./src/blocks/release-commits/index.js": +/*!*********************************************!*\ + !*** ./src/blocks/release-commits/index.js ***! + \*********************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); +/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/blocks */ "@wordpress/blocks"); +/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/server-side-render */ "@wordpress/server-side-render"); +/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/block-editor */ "@wordpress/block-editor"); +/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__); +/* harmony import */ var _block_json__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./block.json */ "./src/blocks/release-commits/block.json"); +/* harmony import */ var _style_scss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./style.scss */ "./src/blocks/release-commits/style.scss"); + +/** + * WordPress dependencies + */ + + + + + +/** + * Internal dependencies + */ + + +function Edit({ + attributes, + name +}) { + return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", { + ...(0,_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__.useBlockProps)() + }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Disabled, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)((_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default()), { + block: name, + attributes: attributes + }))); +} +(0,_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__.registerBlockType)(_block_json__WEBPACK_IMPORTED_MODULE_5__.name, { + edit: Edit, + save: () => null +}); + +/***/ }), + +/***/ "./src/blocks/release-commits/style.scss": +/*!***********************************************!*\ + !*** ./src/blocks/release-commits/style.scss ***! + \***********************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +// extracted by mini-css-extract-plugin + + +/***/ }), + +/***/ "react": +/*!************************!*\ + !*** external "React" ***! + \************************/ +/***/ ((module) => { + +module.exports = window["React"]; + +/***/ }), + +/***/ "@wordpress/block-editor": +/*!*************************************!*\ + !*** external ["wp","blockEditor"] ***! + \*************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["blockEditor"]; + +/***/ }), + +/***/ "@wordpress/blocks": +/*!********************************!*\ + !*** external ["wp","blocks"] ***! + \********************************/ +/***/ ((module) => { + +module.exports = window["wp"]["blocks"]; + +/***/ }), + +/***/ "@wordpress/components": +/*!************************************!*\ + !*** external ["wp","components"] ***! + \************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["components"]; + +/***/ }), + +/***/ "@wordpress/server-side-render": +/*!******************************************!*\ + !*** external ["wp","serverSideRender"] ***! + \******************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["serverSideRender"]; + +/***/ }), + +/***/ "./src/blocks/release-commits/block.json": +/*!***********************************************!*\ + !*** ./src/blocks/release-commits/block.json ***! + \***********************************************/ +/***/ ((module) => { + +module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"wporg/release-commits","version":"0.1.0","title":"Release Commits","category":"design","icon":"","description":"A block to display release commits.","textdomain":"wporg","attributes":{},"supports":{"html":false},"usesContext":["postId"],"editorScript":"file:./index.js","render":"file:./render.php","style":"file:./style-index.css"}'); + +/***/ }) + +/******/ }); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ // no module.id needed +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = __webpack_modules__; +/******/ +/************************************************************************/ +/******/ /* webpack/runtime/chunk loaded */ +/******/ (() => { +/******/ var deferred = []; +/******/ __webpack_require__.O = (result, chunkIds, fn, priority) => { +/******/ if(chunkIds) { +/******/ priority = priority || 0; +/******/ for(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1]; +/******/ deferred[i] = [chunkIds, fn, priority]; +/******/ return; +/******/ } +/******/ var notFulfilled = Infinity; +/******/ for (var i = 0; i < deferred.length; i++) { +/******/ var chunkIds = deferred[i][0]; +/******/ var fn = deferred[i][1]; +/******/ var priority = deferred[i][2]; +/******/ var fulfilled = true; +/******/ for (var j = 0; j < chunkIds.length; j++) { +/******/ if ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) { +/******/ chunkIds.splice(j--, 1); +/******/ } else { +/******/ fulfilled = false; +/******/ if(priority < notFulfilled) notFulfilled = priority; +/******/ } +/******/ } +/******/ if(fulfilled) { +/******/ deferred.splice(i--, 1) +/******/ var r = fn(); +/******/ if (r !== undefined) result = r; +/******/ } +/******/ } +/******/ return result; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/compat get default export */ +/******/ (() => { +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = (module) => { +/******/ var getter = module && module.__esModule ? +/******/ () => (module['default']) : +/******/ () => (module); +/******/ __webpack_require__.d(getter, { a: getter }); +/******/ return getter; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/define property getters */ +/******/ (() => { +/******/ // define getter functions for harmony exports +/******/ __webpack_require__.d = (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 */ +/******/ (() => { +/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) +/******/ })(); +/******/ +/******/ /* webpack/runtime/make namespace object */ +/******/ (() => { +/******/ // define __esModule on exports +/******/ __webpack_require__.r = (exports) => { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/jsonp chunk loading */ +/******/ (() => { +/******/ // no baseURI +/******/ +/******/ // object to store loaded and loading chunks +/******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched +/******/ // [resolve, reject, Promise] = chunk loading, 0 = chunk loaded +/******/ var installedChunks = { +/******/ "blocks/release-commits/index": 0, +/******/ "blocks/release-commits/style-index": 0 +/******/ }; +/******/ +/******/ // no chunk on demand loading +/******/ +/******/ // no prefetching +/******/ +/******/ // no preloaded +/******/ +/******/ // no HMR +/******/ +/******/ // no HMR manifest +/******/ +/******/ __webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0); +/******/ +/******/ // install a JSONP callback for chunk loading +/******/ var webpackJsonpCallback = (parentChunkLoadingFunction, data) => { +/******/ var chunkIds = data[0]; +/******/ var moreModules = data[1]; +/******/ var runtime = data[2]; +/******/ // add "moreModules" to the modules object, +/******/ // then flag all "chunkIds" as loaded and fire callback +/******/ var moduleId, chunkId, i = 0; +/******/ if(chunkIds.some((id) => (installedChunks[id] !== 0))) { +/******/ for(moduleId in moreModules) { +/******/ if(__webpack_require__.o(moreModules, moduleId)) { +/******/ __webpack_require__.m[moduleId] = moreModules[moduleId]; +/******/ } +/******/ } +/******/ if(runtime) var result = runtime(__webpack_require__); +/******/ } +/******/ if(parentChunkLoadingFunction) parentChunkLoadingFunction(data); +/******/ for(;i < chunkIds.length; i++) { +/******/ chunkId = chunkIds[i]; +/******/ if(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) { +/******/ installedChunks[chunkId][0](); +/******/ } +/******/ installedChunks[chunkId] = 0; +/******/ } +/******/ return __webpack_require__.O(result); +/******/ } +/******/ +/******/ var chunkLoadingGlobal = self["webpackChunkwporg_plugins_2024"] = self["webpackChunkwporg_plugins_2024"] || []; +/******/ chunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0)); +/******/ chunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal)); +/******/ })(); +/******/ +/************************************************************************/ +/******/ +/******/ // startup +/******/ // Load entry module and return exports +/******/ // This entry module depends on other loaded chunks and execution need to be delayed +/******/ var __webpack_exports__ = __webpack_require__.O(undefined, ["blocks/release-commits/style-index"], () => (__webpack_require__("./src/blocks/release-commits/index.js"))) +/******/ __webpack_exports__ = __webpack_require__.O(__webpack_exports__); +/******/ +/******/ })() +; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-commits/style-index.css b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-commits/style-index.css index 6373502b42..017db2a6de 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-commits/style-index.css +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-commits/style-index.css @@ -1 +1,35 @@ -.wp-block-wporg-release-commits{margin-top:0!important}.wp-block-wporg-release-commit-list{display:flex;flex-direction:column;gap:8px;list-style:none}.wp-block-wporg-release-commit-list li{align-items:center;display:flex;gap:inherit}.wp-block-wporg-release-commit-author{align-items:center;display:flex;font-weight:500;gap:8px}.wp-block-wporg-release-commit-by-line{font-size:12px}.wp-block-wporg-release-commit-by-line,.wp-block-wporg-release-commit-by-line a{color:var(--wp--preset--color--charcoal-4)!important} +/*!**************************************************************************************************************************************************************************************************************************************************************!*\ + !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/blocks/release-commits/style.scss ***! + \**************************************************************************************************************************************************************************************************************************************************************/ +.wp-block-wporg-release-commits { + margin-top: 0 !important; +} + +.wp-block-wporg-release-commit-list { + display: flex; + flex-direction: column; + gap: 8px; + list-style: none; +} +.wp-block-wporg-release-commit-list li { + display: flex; + gap: inherit; + align-items: center; +} + +.wp-block-wporg-release-commit-author { + display: flex; + align-items: center; + gap: 8px; + font-weight: 500; +} + +.wp-block-wporg-release-commit-by-line { + color: var(--wp--preset--color--charcoal-4) !important; + font-size: 12px; +} +.wp-block-wporg-release-commit-by-line a { + color: var(--wp--preset--color--charcoal-4) !important; +} + +/*# sourceMappingURL=style-index.css.map*/ \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft/index.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft/index.asset.php index fa290c80b7..12b7e1303a 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft/index.asset.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft/index.asset.php @@ -1 +1 @@ - array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => '751493c9e75203fe2290'); + array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => '4e12b6eb8d27834cbced'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft/index.js index 5ab50814a7..8eecd7890d 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft/index.js +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft/index.js @@ -1 +1,298 @@ -(()=>{"use strict";var e,r={557:(e,r,t)=>{const n=window.React,o=window.wp.components,a=window.wp.blocks,i=window.wp.serverSideRender;var l=t.n(i);const s=window.wp.blockEditor,p=JSON.parse('{"u2":"wporg/release-draft"}');(0,a.registerBlockType)(p.u2,{edit:function({attributes:e,name:r}){return(0,n.createElement)("div",{...(0,s.useBlockProps)()},(0,n.createElement)(o.Disabled,null,(0,n.createElement)(l(),{block:r,attributes:e})))},save:()=>null})}},t={};function n(e){var o=t[e];if(void 0!==o)return o.exports;var a=t[e]={exports:{}};return r[e](a,a.exports,n),a.exports}n.m=r,e=[],n.O=(r,t,o,a)=>{if(!t){var i=1/0;for(u=0;u=a)&&Object.keys(n.O).every((e=>n.O[e](t[s])))?t.splice(s--,1):(l=!1,a0&&e[u-1][2]>a;u--)e[u]=e[u-1];e[u]=[t,o,a]},n.n=e=>{var r=e&&e.__esModule?()=>e.default:()=>e;return n.d(r,{a:r}),r},n.d=(e,r)=>{for(var t in r)n.o(r,t)&&!n.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:r[t]})},n.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),(()=>{var e={894:0,883:0};n.O.j=r=>0===e[r];var r=(r,t)=>{var o,a,i=t[0],l=t[1],s=t[2],p=0;if(i.some((r=>0!==e[r]))){for(o in l)n.o(l,o)&&(n.m[o]=l[o]);if(s)var u=s(n)}for(r&&r(t);pn(557)));o=n.O(o)})(); \ No newline at end of file +/******/ (() => { // webpackBootstrap +/******/ "use strict"; +/******/ var __webpack_modules__ = ({ + +/***/ "./src/blocks/release-draft/index.js": +/*!*******************************************!*\ + !*** ./src/blocks/release-draft/index.js ***! + \*******************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); +/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/blocks */ "@wordpress/blocks"); +/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/server-side-render */ "@wordpress/server-side-render"); +/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/block-editor */ "@wordpress/block-editor"); +/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__); +/* harmony import */ var _block_json__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./block.json */ "./src/blocks/release-draft/block.json"); +/* harmony import */ var _style_scss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./style.scss */ "./src/blocks/release-draft/style.scss"); + +/** + * WordPress dependencies + */ + + + + + +/** + * Internal dependencies + */ + + +function Edit({ + attributes, + name +}) { + return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", { + ...(0,_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__.useBlockProps)() + }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Disabled, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)((_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default()), { + block: name, + attributes: attributes + }))); +} +(0,_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__.registerBlockType)(_block_json__WEBPACK_IMPORTED_MODULE_5__.name, { + edit: Edit, + save: () => null +}); + +/***/ }), + +/***/ "./src/blocks/release-draft/style.scss": +/*!*********************************************!*\ + !*** ./src/blocks/release-draft/style.scss ***! + \*********************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +// extracted by mini-css-extract-plugin + + +/***/ }), + +/***/ "react": +/*!************************!*\ + !*** external "React" ***! + \************************/ +/***/ ((module) => { + +module.exports = window["React"]; + +/***/ }), + +/***/ "@wordpress/block-editor": +/*!*************************************!*\ + !*** external ["wp","blockEditor"] ***! + \*************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["blockEditor"]; + +/***/ }), + +/***/ "@wordpress/blocks": +/*!********************************!*\ + !*** external ["wp","blocks"] ***! + \********************************/ +/***/ ((module) => { + +module.exports = window["wp"]["blocks"]; + +/***/ }), + +/***/ "@wordpress/components": +/*!************************************!*\ + !*** external ["wp","components"] ***! + \************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["components"]; + +/***/ }), + +/***/ "@wordpress/server-side-render": +/*!******************************************!*\ + !*** external ["wp","serverSideRender"] ***! + \******************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["serverSideRender"]; + +/***/ }), + +/***/ "./src/blocks/release-draft/block.json": +/*!*********************************************!*\ + !*** ./src/blocks/release-draft/block.json ***! + \*********************************************/ +/***/ ((module) => { + +module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"wporg/release-draft","version":"0.1.0","title":"Release Draft","category":"design","icon":"","description":"A block to display release draft.","textdomain":"wporg","attributes":{},"supports":{"html":false,"interactivity":true},"usesContext":["postId"],"editorScript":"file:./index.js","render":"file:./render.php","style":"file:./style-index.css"}'); + +/***/ }) + +/******/ }); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ // no module.id needed +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = __webpack_modules__; +/******/ +/************************************************************************/ +/******/ /* webpack/runtime/chunk loaded */ +/******/ (() => { +/******/ var deferred = []; +/******/ __webpack_require__.O = (result, chunkIds, fn, priority) => { +/******/ if(chunkIds) { +/******/ priority = priority || 0; +/******/ for(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1]; +/******/ deferred[i] = [chunkIds, fn, priority]; +/******/ return; +/******/ } +/******/ var notFulfilled = Infinity; +/******/ for (var i = 0; i < deferred.length; i++) { +/******/ var chunkIds = deferred[i][0]; +/******/ var fn = deferred[i][1]; +/******/ var priority = deferred[i][2]; +/******/ var fulfilled = true; +/******/ for (var j = 0; j < chunkIds.length; j++) { +/******/ if ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) { +/******/ chunkIds.splice(j--, 1); +/******/ } else { +/******/ fulfilled = false; +/******/ if(priority < notFulfilled) notFulfilled = priority; +/******/ } +/******/ } +/******/ if(fulfilled) { +/******/ deferred.splice(i--, 1) +/******/ var r = fn(); +/******/ if (r !== undefined) result = r; +/******/ } +/******/ } +/******/ return result; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/compat get default export */ +/******/ (() => { +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = (module) => { +/******/ var getter = module && module.__esModule ? +/******/ () => (module['default']) : +/******/ () => (module); +/******/ __webpack_require__.d(getter, { a: getter }); +/******/ return getter; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/define property getters */ +/******/ (() => { +/******/ // define getter functions for harmony exports +/******/ __webpack_require__.d = (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 */ +/******/ (() => { +/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) +/******/ })(); +/******/ +/******/ /* webpack/runtime/make namespace object */ +/******/ (() => { +/******/ // define __esModule on exports +/******/ __webpack_require__.r = (exports) => { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/jsonp chunk loading */ +/******/ (() => { +/******/ // no baseURI +/******/ +/******/ // object to store loaded and loading chunks +/******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched +/******/ // [resolve, reject, Promise] = chunk loading, 0 = chunk loaded +/******/ var installedChunks = { +/******/ "blocks/release-draft/index": 0, +/******/ "blocks/release-draft/style-index": 0 +/******/ }; +/******/ +/******/ // no chunk on demand loading +/******/ +/******/ // no prefetching +/******/ +/******/ // no preloaded +/******/ +/******/ // no HMR +/******/ +/******/ // no HMR manifest +/******/ +/******/ __webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0); +/******/ +/******/ // install a JSONP callback for chunk loading +/******/ var webpackJsonpCallback = (parentChunkLoadingFunction, data) => { +/******/ var chunkIds = data[0]; +/******/ var moreModules = data[1]; +/******/ var runtime = data[2]; +/******/ // add "moreModules" to the modules object, +/******/ // then flag all "chunkIds" as loaded and fire callback +/******/ var moduleId, chunkId, i = 0; +/******/ if(chunkIds.some((id) => (installedChunks[id] !== 0))) { +/******/ for(moduleId in moreModules) { +/******/ if(__webpack_require__.o(moreModules, moduleId)) { +/******/ __webpack_require__.m[moduleId] = moreModules[moduleId]; +/******/ } +/******/ } +/******/ if(runtime) var result = runtime(__webpack_require__); +/******/ } +/******/ if(parentChunkLoadingFunction) parentChunkLoadingFunction(data); +/******/ for(;i < chunkIds.length; i++) { +/******/ chunkId = chunkIds[i]; +/******/ if(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) { +/******/ installedChunks[chunkId][0](); +/******/ } +/******/ installedChunks[chunkId] = 0; +/******/ } +/******/ return __webpack_require__.O(result); +/******/ } +/******/ +/******/ var chunkLoadingGlobal = self["webpackChunkwporg_plugins_2024"] = self["webpackChunkwporg_plugins_2024"] || []; +/******/ chunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0)); +/******/ chunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal)); +/******/ })(); +/******/ +/************************************************************************/ +/******/ +/******/ // startup +/******/ // Load entry module and return exports +/******/ // This entry module depends on other loaded chunks and execution need to be delayed +/******/ var __webpack_exports__ = __webpack_require__.O(undefined, ["blocks/release-draft/style-index"], () => (__webpack_require__("./src/blocks/release-draft/index.js"))) +/******/ __webpack_exports__ = __webpack_require__.O(__webpack_exports__); +/******/ +/******/ })() +; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft/render.php index e753c05f55..9b69c9e027 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft/render.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft/render.php @@ -40,10 +40,15 @@ // Fetch the latest draft post. $latest_draft_query->the_post(); -$post_title = __( 'Trunk', 'wporg-plugins' ); -$intro_text = __( 'There are unpublished changes in your trunk folder.', 'wporg-plugins' ); -$button_text = __( 'Create release', 'wporg-plugins' ); -$publish_title = __( 'Create release', 'wporg-plugins' ); +$new_version = get_post_meta( get_the_ID(), 'release_version', true ); + +$post_title = sprintf( + __( 'Trunk (v.%s)', 'wporg-plugins' ), + $new_version +); +$intro_text = __( 'There are unpublished changes in your trunk folder.', 'wporg-plugins' ); +$button_text = __( 'Create release', 'wporg-plugins' ); +$publish_title = __( 'Create release', 'wporg-plugins' ); $markup = << diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft/style-index.css b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft/style-index.css index f58c926420..9358999193 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft/style-index.css +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft/style-index.css @@ -1 +1,8 @@ -.wp-block-wporg-release-draft{font-size:var(--wp--preset--font-size--small)} +/*!************************************************************************************************************************************************************************************************************************************************************!*\ + !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/blocks/release-draft/style.scss ***! + \************************************************************************************************************************************************************************************************************************************************************/ +.wp-block-wporg-release-draft { + font-size: var(--wp--preset--font-size--small); +} + +/*# sourceMappingURL=style-index.css.map*/ \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-flags/index.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-flags/index.asset.php index e0553317b8..eb4ddec36a 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-flags/index.asset.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-flags/index.asset.php @@ -1 +1 @@ - array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => '4781f29298609c4d254e'); + array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => '990d288e4c52e5e38e55'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-flags/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-flags/index.js index fb4a906b0f..4808f9f376 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-flags/index.js +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-flags/index.js @@ -1 +1,183 @@ -(()=>{"use strict";var e={n:t=>{var r=t&&t.__esModule?()=>t.default:()=>t;return e.d(r,{a:r}),r},d:(t,r)=>{for(var o in r)e.o(r,o)&&!e.o(t,o)&&Object.defineProperty(t,o,{enumerable:!0,get:r[o]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t)};const t=window.React,r=window.wp.components,o=window.wp.blocks,n=window.wp.serverSideRender;var a=e.n(n);const l=window.wp.blockEditor,s=JSON.parse('{"u2":"wporg/release-flags"}');(0,o.registerBlockType)(s.u2,{edit:function({attributes:e,name:o}){return(0,t.createElement)("div",{...(0,l.useBlockProps)()},(0,t.createElement)(r.Disabled,null,(0,t.createElement)(a(),{block:o,attributes:e})))},save:()=>null})})(); \ No newline at end of file +/******/ (() => { // webpackBootstrap +/******/ "use strict"; +/******/ var __webpack_modules__ = ({ + +/***/ "react": +/*!************************!*\ + !*** external "React" ***! + \************************/ +/***/ ((module) => { + +module.exports = window["React"]; + +/***/ }), + +/***/ "@wordpress/block-editor": +/*!*************************************!*\ + !*** external ["wp","blockEditor"] ***! + \*************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["blockEditor"]; + +/***/ }), + +/***/ "@wordpress/blocks": +/*!********************************!*\ + !*** external ["wp","blocks"] ***! + \********************************/ +/***/ ((module) => { + +module.exports = window["wp"]["blocks"]; + +/***/ }), + +/***/ "@wordpress/components": +/*!************************************!*\ + !*** external ["wp","components"] ***! + \************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["components"]; + +/***/ }), + +/***/ "@wordpress/server-side-render": +/*!******************************************!*\ + !*** external ["wp","serverSideRender"] ***! + \******************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["serverSideRender"]; + +/***/ }), + +/***/ "./src/blocks/release-flags/block.json": +/*!*********************************************!*\ + !*** ./src/blocks/release-flags/block.json ***! + \*********************************************/ +/***/ ((module) => { + +module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"wporg/release-flags","version":"0.1.0","title":"Release Flags","category":"design","icon":"","description":"A block to display release flags.","textdomain":"wporg","attributes":{},"supports":{"html":false},"usesContext":["postId"],"editorScript":"file:./index.js","render":"file:./render.php","style":"file:./style-index.css"}'); + +/***/ }) + +/******/ }); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ // no module.id needed +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/************************************************************************/ +/******/ /* webpack/runtime/compat get default export */ +/******/ (() => { +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = (module) => { +/******/ var getter = module && module.__esModule ? +/******/ () => (module['default']) : +/******/ () => (module); +/******/ __webpack_require__.d(getter, { a: getter }); +/******/ return getter; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/define property getters */ +/******/ (() => { +/******/ // define getter functions for harmony exports +/******/ __webpack_require__.d = (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 */ +/******/ (() => { +/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) +/******/ })(); +/******/ +/******/ /* webpack/runtime/make namespace object */ +/******/ (() => { +/******/ // define __esModule on exports +/******/ __webpack_require__.r = (exports) => { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ })(); +/******/ +/************************************************************************/ +var __webpack_exports__ = {}; +// This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk. +(() => { +/*!*******************************************!*\ + !*** ./src/blocks/release-flags/index.js ***! + \*******************************************/ +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); +/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/blocks */ "@wordpress/blocks"); +/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/server-side-render */ "@wordpress/server-side-render"); +/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/block-editor */ "@wordpress/block-editor"); +/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__); +/* harmony import */ var _block_json__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./block.json */ "./src/blocks/release-flags/block.json"); + +/** + * WordPress dependencies + */ + + + + + +/** + * Internal dependencies + */ + +function Edit({ + attributes, + name +}) { + return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", { + ...(0,_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__.useBlockProps)() + }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Disabled, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)((_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default()), { + block: name, + attributes: attributes + }))); +} +(0,_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__.registerBlockType)(_block_json__WEBPACK_IMPORTED_MODULE_5__.name, { + edit: Edit, + save: () => null +}); +})(); + +/******/ })() +; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-menu-options/index.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-menu-options/index.asset.php index 1d2e47f31b..77921bd0a1 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-menu-options/index.asset.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-menu-options/index.asset.php @@ -1 +1 @@ - array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => '4d3b8e2e1241325b9148'); + array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => 'a82fb3da1323cd72755b'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-menu-options/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-menu-options/index.js index 788e017c89..ec4a594e7e 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-menu-options/index.js +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-menu-options/index.js @@ -1 +1,298 @@ -(()=>{"use strict";var e,r={356:(e,r,n)=>{const o=window.React,t=window.wp.components,i=window.wp.blocks,a=window.wp.serverSideRender;var l=n.n(a);const s=window.wp.blockEditor,p=JSON.parse('{"u2":"wporg/release-menu-options"}');(0,i.registerBlockType)(p.u2,{edit:function({attributes:e,name:r}){return(0,o.createElement)("div",{...(0,s.useBlockProps)()},(0,o.createElement)(t.Disabled,null,(0,o.createElement)(l(),{block:r,attributes:e})))},save:()=>null})}},n={};function o(e){var t=n[e];if(void 0!==t)return t.exports;var i=n[e]={exports:{}};return r[e](i,i.exports,o),i.exports}o.m=r,e=[],o.O=(r,n,t,i)=>{if(!n){var a=1/0;for(u=0;u=i)&&Object.keys(o.O).every((e=>o.O[e](n[s])))?n.splice(s--,1):(l=!1,i0&&e[u-1][2]>i;u--)e[u]=e[u-1];e[u]=[n,t,i]},o.n=e=>{var r=e&&e.__esModule?()=>e.default:()=>e;return o.d(r,{a:r}),r},o.d=(e,r)=>{for(var n in r)o.o(r,n)&&!o.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),(()=>{var e={980:0,161:0};o.O.j=r=>0===e[r];var r=(r,n)=>{var t,i,a=n[0],l=n[1],s=n[2],p=0;if(a.some((r=>0!==e[r]))){for(t in l)o.o(l,t)&&(o.m[t]=l[t]);if(s)var u=s(o)}for(r&&r(n);po(356)));t=o.O(t)})(); \ No newline at end of file +/******/ (() => { // webpackBootstrap +/******/ "use strict"; +/******/ var __webpack_modules__ = ({ + +/***/ "./src/blocks/release-menu-options/index.js": +/*!**************************************************!*\ + !*** ./src/blocks/release-menu-options/index.js ***! + \**************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); +/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/blocks */ "@wordpress/blocks"); +/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/server-side-render */ "@wordpress/server-side-render"); +/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/block-editor */ "@wordpress/block-editor"); +/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__); +/* harmony import */ var _block_json__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./block.json */ "./src/blocks/release-menu-options/block.json"); +/* harmony import */ var _style_scss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./style.scss */ "./src/blocks/release-menu-options/style.scss"); + +/** + * WordPress dependencies + */ + + + + + +/** + * Internal dependencies + */ + + +function Edit({ + attributes, + name +}) { + return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", { + ...(0,_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__.useBlockProps)() + }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Disabled, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)((_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default()), { + block: name, + attributes: attributes + }))); +} +(0,_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__.registerBlockType)(_block_json__WEBPACK_IMPORTED_MODULE_5__.name, { + edit: Edit, + save: () => null +}); + +/***/ }), + +/***/ "./src/blocks/release-menu-options/style.scss": +/*!****************************************************!*\ + !*** ./src/blocks/release-menu-options/style.scss ***! + \****************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +// extracted by mini-css-extract-plugin + + +/***/ }), + +/***/ "react": +/*!************************!*\ + !*** external "React" ***! + \************************/ +/***/ ((module) => { + +module.exports = window["React"]; + +/***/ }), + +/***/ "@wordpress/block-editor": +/*!*************************************!*\ + !*** external ["wp","blockEditor"] ***! + \*************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["blockEditor"]; + +/***/ }), + +/***/ "@wordpress/blocks": +/*!********************************!*\ + !*** external ["wp","blocks"] ***! + \********************************/ +/***/ ((module) => { + +module.exports = window["wp"]["blocks"]; + +/***/ }), + +/***/ "@wordpress/components": +/*!************************************!*\ + !*** external ["wp","components"] ***! + \************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["components"]; + +/***/ }), + +/***/ "@wordpress/server-side-render": +/*!******************************************!*\ + !*** external ["wp","serverSideRender"] ***! + \******************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["serverSideRender"]; + +/***/ }), + +/***/ "./src/blocks/release-menu-options/block.json": +/*!****************************************************!*\ + !*** ./src/blocks/release-menu-options/block.json ***! + \****************************************************/ +/***/ ((module) => { + +module.exports = JSON.parse('{"apiVersion":2,"name":"wporg/release-menu-options","title":"Release Menu Options","category":"widgets","icon":"menu","description":"Display the dropdown menu option for a release.","supports":{"html":false},"usesContext":["postId"],"textdomain":"wporg","editorScript":"file:./index.js","style":"file:./style-index.css","render":"file:./render.php"}'); + +/***/ }) + +/******/ }); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ // no module.id needed +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = __webpack_modules__; +/******/ +/************************************************************************/ +/******/ /* webpack/runtime/chunk loaded */ +/******/ (() => { +/******/ var deferred = []; +/******/ __webpack_require__.O = (result, chunkIds, fn, priority) => { +/******/ if(chunkIds) { +/******/ priority = priority || 0; +/******/ for(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1]; +/******/ deferred[i] = [chunkIds, fn, priority]; +/******/ return; +/******/ } +/******/ var notFulfilled = Infinity; +/******/ for (var i = 0; i < deferred.length; i++) { +/******/ var chunkIds = deferred[i][0]; +/******/ var fn = deferred[i][1]; +/******/ var priority = deferred[i][2]; +/******/ var fulfilled = true; +/******/ for (var j = 0; j < chunkIds.length; j++) { +/******/ if ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) { +/******/ chunkIds.splice(j--, 1); +/******/ } else { +/******/ fulfilled = false; +/******/ if(priority < notFulfilled) notFulfilled = priority; +/******/ } +/******/ } +/******/ if(fulfilled) { +/******/ deferred.splice(i--, 1) +/******/ var r = fn(); +/******/ if (r !== undefined) result = r; +/******/ } +/******/ } +/******/ return result; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/compat get default export */ +/******/ (() => { +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = (module) => { +/******/ var getter = module && module.__esModule ? +/******/ () => (module['default']) : +/******/ () => (module); +/******/ __webpack_require__.d(getter, { a: getter }); +/******/ return getter; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/define property getters */ +/******/ (() => { +/******/ // define getter functions for harmony exports +/******/ __webpack_require__.d = (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 */ +/******/ (() => { +/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) +/******/ })(); +/******/ +/******/ /* webpack/runtime/make namespace object */ +/******/ (() => { +/******/ // define __esModule on exports +/******/ __webpack_require__.r = (exports) => { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/jsonp chunk loading */ +/******/ (() => { +/******/ // no baseURI +/******/ +/******/ // object to store loaded and loading chunks +/******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched +/******/ // [resolve, reject, Promise] = chunk loading, 0 = chunk loaded +/******/ var installedChunks = { +/******/ "blocks/release-menu-options/index": 0, +/******/ "blocks/release-menu-options/style-index": 0 +/******/ }; +/******/ +/******/ // no chunk on demand loading +/******/ +/******/ // no prefetching +/******/ +/******/ // no preloaded +/******/ +/******/ // no HMR +/******/ +/******/ // no HMR manifest +/******/ +/******/ __webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0); +/******/ +/******/ // install a JSONP callback for chunk loading +/******/ var webpackJsonpCallback = (parentChunkLoadingFunction, data) => { +/******/ var chunkIds = data[0]; +/******/ var moreModules = data[1]; +/******/ var runtime = data[2]; +/******/ // add "moreModules" to the modules object, +/******/ // then flag all "chunkIds" as loaded and fire callback +/******/ var moduleId, chunkId, i = 0; +/******/ if(chunkIds.some((id) => (installedChunks[id] !== 0))) { +/******/ for(moduleId in moreModules) { +/******/ if(__webpack_require__.o(moreModules, moduleId)) { +/******/ __webpack_require__.m[moduleId] = moreModules[moduleId]; +/******/ } +/******/ } +/******/ if(runtime) var result = runtime(__webpack_require__); +/******/ } +/******/ if(parentChunkLoadingFunction) parentChunkLoadingFunction(data); +/******/ for(;i < chunkIds.length; i++) { +/******/ chunkId = chunkIds[i]; +/******/ if(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) { +/******/ installedChunks[chunkId][0](); +/******/ } +/******/ installedChunks[chunkId] = 0; +/******/ } +/******/ return __webpack_require__.O(result); +/******/ } +/******/ +/******/ var chunkLoadingGlobal = self["webpackChunkwporg_plugins_2024"] = self["webpackChunkwporg_plugins_2024"] || []; +/******/ chunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0)); +/******/ chunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal)); +/******/ })(); +/******/ +/************************************************************************/ +/******/ +/******/ // startup +/******/ // Load entry module and return exports +/******/ // This entry module depends on other loaded chunks and execution need to be delayed +/******/ var __webpack_exports__ = __webpack_require__.O(undefined, ["blocks/release-menu-options/style-index"], () => (__webpack_require__("./src/blocks/release-menu-options/index.js"))) +/******/ __webpack_exports__ = __webpack_require__.O(__webpack_exports__); +/******/ +/******/ })() +; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-menu-options/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-menu-options/render.php index 4a107ad235..a3c19eaccb 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-menu-options/render.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-menu-options/render.php @@ -17,7 +17,7 @@ } $current_version = get_post_meta( $release_post->ID, 'release_version', true ); -$download_link = get_download_link( $release_post->post_parent, $current_version ); +$download_link = get_download_link( $current_version ); $download_link_html = sprintf( '', __( 'Download', 'wporg-plugins' ), diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-menu-options/style-index.css b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-menu-options/style-index.css index 12af1e2ea3..3bd0eec271 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-menu-options/style-index.css +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-menu-options/style-index.css @@ -1 +1,40 @@ -.wporg-release-menu-options .wp-block-navigation__submenu-container{left:auto!important;right:0!important;top:calc(100% + 4px)!important}.wporg-release-menu-options .wp-block-navigation-item{background-color:initial}.wporg-release-menu-options .wp-block-navigation__submenu-icon{display:none}.wporg-release-menu-options button>.wp-block-navigation-item__label{word-wrap:normal!important;border:0;clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.wporg-release-menu-options button{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 width=%2724%27 height=%2724%27 aria-hidden=%27true%27%3E%3Cpath d=%27M13 19h-2v-2h2zm0-6h-2v-2h2zm0-6h-2V5h2z%27/%3E%3C/svg%3E");background-position:50%;background-repeat:no-repeat;content:"";height:32px;width:32px} +/*!*******************************************************************************************************************************************************************************************************************************************************************!*\ + !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/blocks/release-menu-options/style.scss ***! + \*******************************************************************************************************************************************************************************************************************************************************************/ +.wporg-release-menu-options { + /* Manually apply screen reader text styles */ +} +.wporg-release-menu-options .wp-block-navigation__submenu-container { + top: calc(100% + 4px) !important; + right: 0 !important; + left: auto !important; +} +.wporg-release-menu-options .wp-block-navigation-item { + background-color: initial; + /* Stops the hidden overflow on focus */ +} +.wporg-release-menu-options .wp-block-navigation__submenu-icon { + display: none; + /* Hide dropdown caret */ +} +.wporg-release-menu-options button > .wp-block-navigation-item__label { + word-wrap: normal !important; + border: 0; + clip-path: inset(50%); + height: 1px; + margin: -1px; + overflow: hidden; + padding: 0; + position: absolute; + width: 1px; +} +.wporg-release-menu-options button { + content: ""; + background-image: url("data:image/svg+xml,"); + background-repeat: no-repeat; + background-position: center; + width: 32px; + height: 32px; +} + +/*# sourceMappingURL=style-index.css.map*/ \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-page/index.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-page/index.asset.php index bf580ddc47..fac12a13c3 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-page/index.asset.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-page/index.asset.php @@ -1 +1 @@ - array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => 'fe31a17499547ee6e413'); + array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => '865d514ec640755ece87'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-page/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-page/index.js index 4a4f3fa6ce..0f6a4e1cac 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-page/index.js +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-page/index.js @@ -1 +1,298 @@ -(()=>{"use strict";var e,r={601:(e,r,n)=>{const o=window.React,t=window.wp.components,a=window.wp.blocks,i=window.wp.serverSideRender;var l=n.n(i);const s=window.wp.blockEditor,p=JSON.parse('{"u2":"wporg/release-page"}');(0,a.registerBlockType)(p.u2,{edit:function({attributes:e,name:r}){return(0,o.createElement)("div",{...(0,s.useBlockProps)()},(0,o.createElement)(t.Disabled,null,(0,o.createElement)(l(),{block:r,attributes:e})))},save:()=>null})}},n={};function o(e){var t=n[e];if(void 0!==t)return t.exports;var a=n[e]={exports:{}};return r[e](a,a.exports,o),a.exports}o.m=r,e=[],o.O=(r,n,t,a)=>{if(!n){var i=1/0;for(u=0;u=a)&&Object.keys(o.O).every((e=>o.O[e](n[s])))?n.splice(s--,1):(l=!1,a0&&e[u-1][2]>a;u--)e[u]=e[u-1];e[u]=[n,t,a]},o.n=e=>{var r=e&&e.__esModule?()=>e.default:()=>e;return o.d(r,{a:r}),r},o.d=(e,r)=>{for(var n in r)o.o(r,n)&&!o.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),(()=>{var e={43:0,162:0};o.O.j=r=>0===e[r];var r=(r,n)=>{var t,a,i=n[0],l=n[1],s=n[2],p=0;if(i.some((r=>0!==e[r]))){for(t in l)o.o(l,t)&&(o.m[t]=l[t]);if(s)var u=s(o)}for(r&&r(n);po(601)));t=o.O(t)})(); \ No newline at end of file +/******/ (() => { // webpackBootstrap +/******/ "use strict"; +/******/ var __webpack_modules__ = ({ + +/***/ "./src/blocks/release-page/index.js": +/*!******************************************!*\ + !*** ./src/blocks/release-page/index.js ***! + \******************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); +/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/blocks */ "@wordpress/blocks"); +/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/server-side-render */ "@wordpress/server-side-render"); +/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/block-editor */ "@wordpress/block-editor"); +/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__); +/* harmony import */ var _block_json__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./block.json */ "./src/blocks/release-page/block.json"); +/* harmony import */ var _style_scss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./style.scss */ "./src/blocks/release-page/style.scss"); + +/** + * WordPress dependencies + */ + + + + + +/** + * Internal dependencies + */ + + +function Edit({ + attributes, + name +}) { + return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", { + ...(0,_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__.useBlockProps)() + }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Disabled, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)((_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default()), { + block: name, + attributes: attributes + }))); +} +(0,_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__.registerBlockType)(_block_json__WEBPACK_IMPORTED_MODULE_5__.name, { + edit: Edit, + save: () => null +}); + +/***/ }), + +/***/ "./src/blocks/release-page/style.scss": +/*!********************************************!*\ + !*** ./src/blocks/release-page/style.scss ***! + \********************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +// extracted by mini-css-extract-plugin + + +/***/ }), + +/***/ "react": +/*!************************!*\ + !*** external "React" ***! + \************************/ +/***/ ((module) => { + +module.exports = window["React"]; + +/***/ }), + +/***/ "@wordpress/block-editor": +/*!*************************************!*\ + !*** external ["wp","blockEditor"] ***! + \*************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["blockEditor"]; + +/***/ }), + +/***/ "@wordpress/blocks": +/*!********************************!*\ + !*** external ["wp","blocks"] ***! + \********************************/ +/***/ ((module) => { + +module.exports = window["wp"]["blocks"]; + +/***/ }), + +/***/ "@wordpress/components": +/*!************************************!*\ + !*** external ["wp","components"] ***! + \************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["components"]; + +/***/ }), + +/***/ "@wordpress/server-side-render": +/*!******************************************!*\ + !*** external ["wp","serverSideRender"] ***! + \******************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["serverSideRender"]; + +/***/ }), + +/***/ "./src/blocks/release-page/block.json": +/*!********************************************!*\ + !*** ./src/blocks/release-page/block.json ***! + \********************************************/ +/***/ ((module) => { + +module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"wporg/release-page","version":"0.1.0","title":"Release Page","category":"design","icon":"","description":"A block to display release page.","textdomain":"wporg","attributes":{},"supports":{"html":false,"interactivity":true},"usesContext":["postId"],"editorScript":"file:./index.js","render":"file:./render.php","style":"file:./style-index.css","viewScriptModule":"file:./view.js"}'); + +/***/ }) + +/******/ }); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ // no module.id needed +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = __webpack_modules__; +/******/ +/************************************************************************/ +/******/ /* webpack/runtime/chunk loaded */ +/******/ (() => { +/******/ var deferred = []; +/******/ __webpack_require__.O = (result, chunkIds, fn, priority) => { +/******/ if(chunkIds) { +/******/ priority = priority || 0; +/******/ for(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1]; +/******/ deferred[i] = [chunkIds, fn, priority]; +/******/ return; +/******/ } +/******/ var notFulfilled = Infinity; +/******/ for (var i = 0; i < deferred.length; i++) { +/******/ var chunkIds = deferred[i][0]; +/******/ var fn = deferred[i][1]; +/******/ var priority = deferred[i][2]; +/******/ var fulfilled = true; +/******/ for (var j = 0; j < chunkIds.length; j++) { +/******/ if ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) { +/******/ chunkIds.splice(j--, 1); +/******/ } else { +/******/ fulfilled = false; +/******/ if(priority < notFulfilled) notFulfilled = priority; +/******/ } +/******/ } +/******/ if(fulfilled) { +/******/ deferred.splice(i--, 1) +/******/ var r = fn(); +/******/ if (r !== undefined) result = r; +/******/ } +/******/ } +/******/ return result; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/compat get default export */ +/******/ (() => { +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = (module) => { +/******/ var getter = module && module.__esModule ? +/******/ () => (module['default']) : +/******/ () => (module); +/******/ __webpack_require__.d(getter, { a: getter }); +/******/ return getter; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/define property getters */ +/******/ (() => { +/******/ // define getter functions for harmony exports +/******/ __webpack_require__.d = (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 */ +/******/ (() => { +/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) +/******/ })(); +/******/ +/******/ /* webpack/runtime/make namespace object */ +/******/ (() => { +/******/ // define __esModule on exports +/******/ __webpack_require__.r = (exports) => { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/jsonp chunk loading */ +/******/ (() => { +/******/ // no baseURI +/******/ +/******/ // object to store loaded and loading chunks +/******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched +/******/ // [resolve, reject, Promise] = chunk loading, 0 = chunk loaded +/******/ var installedChunks = { +/******/ "blocks/release-page/index": 0, +/******/ "blocks/release-page/style-index": 0 +/******/ }; +/******/ +/******/ // no chunk on demand loading +/******/ +/******/ // no prefetching +/******/ +/******/ // no preloaded +/******/ +/******/ // no HMR +/******/ +/******/ // no HMR manifest +/******/ +/******/ __webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0); +/******/ +/******/ // install a JSONP callback for chunk loading +/******/ var webpackJsonpCallback = (parentChunkLoadingFunction, data) => { +/******/ var chunkIds = data[0]; +/******/ var moreModules = data[1]; +/******/ var runtime = data[2]; +/******/ // add "moreModules" to the modules object, +/******/ // then flag all "chunkIds" as loaded and fire callback +/******/ var moduleId, chunkId, i = 0; +/******/ if(chunkIds.some((id) => (installedChunks[id] !== 0))) { +/******/ for(moduleId in moreModules) { +/******/ if(__webpack_require__.o(moreModules, moduleId)) { +/******/ __webpack_require__.m[moduleId] = moreModules[moduleId]; +/******/ } +/******/ } +/******/ if(runtime) var result = runtime(__webpack_require__); +/******/ } +/******/ if(parentChunkLoadingFunction) parentChunkLoadingFunction(data); +/******/ for(;i < chunkIds.length; i++) { +/******/ chunkId = chunkIds[i]; +/******/ if(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) { +/******/ installedChunks[chunkId][0](); +/******/ } +/******/ installedChunks[chunkId] = 0; +/******/ } +/******/ return __webpack_require__.O(result); +/******/ } +/******/ +/******/ var chunkLoadingGlobal = self["webpackChunkwporg_plugins_2024"] = self["webpackChunkwporg_plugins_2024"] || []; +/******/ chunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0)); +/******/ chunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal)); +/******/ })(); +/******/ +/************************************************************************/ +/******/ +/******/ // startup +/******/ // Load entry module and return exports +/******/ // This entry module depends on other loaded chunks and execution need to be delayed +/******/ var __webpack_exports__ = __webpack_require__.O(undefined, ["blocks/release-page/style-index"], () => (__webpack_require__("./src/blocks/release-page/index.js"))) +/******/ __webpack_exports__ = __webpack_require__.O(__webpack_exports__); +/******/ +/******/ })() +; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-page/style-index.css b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-page/style-index.css index 23f16bbaf3..324dbabc5e 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-page/style-index.css +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-page/style-index.css @@ -1 +1,12 @@ -.wp-block-wporg-release-draft{font-size:var(--wp--preset--font-size--small)}.wp-block-wporg-release-draft ul{margin-top:var(--wp--preset--spacing--10);padding:0} +/*!***********************************************************************************************************************************************************************************************************************************************************!*\ + !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/blocks/release-page/style.scss ***! + \***********************************************************************************************************************************************************************************************************************************************************/ +.wp-block-wporg-release-draft { + font-size: var(--wp--preset--font-size--small); +} +.wp-block-wporg-release-draft ul { + margin-top: var(--wp--preset--spacing--10); + padding: 0; +} + +/*# sourceMappingURL=style-index.css.map*/ \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-page/view.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-page/view.asset.php index 7d8fb67d0e..5af485fdc6 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-page/view.asset.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-page/view.asset.php @@ -1 +1 @@ - array('@wordpress/interactivity'), 'version' => '2e3d21c6eee2c7a8d302', 'type' => 'module'); + array('@wordpress/interactivity'), 'version' => '1fd327936eb075a65867', 'type' => 'module'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-page/view.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-page/view.js index 60d8c74e42..a09e9f24bf 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-page/view.js +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-page/view.js @@ -1 +1,87 @@ -import*as e from"@wordpress/interactivity";var t={d:(e,r)=>{for(var o in r)t.o(r,o)&&!t.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:r[o]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t)};const r=(a={store:()=>e.store},n={},t.d(n,a),n),{state:o}=(0,r.store)("async-action-block",{actions:{handlePreSubmit(e){e.preventDefault(),o.isCreatingRelease=!0;const t=document.querySelector(".wp-block-wporg-release-page");t&&t.scrollIntoView({behavior:"instant",block:"center"})}}});var a,n; \ No newline at end of file +import * as __WEBPACK_EXTERNAL_MODULE__wordpress_interactivity_8e89b257__ from "@wordpress/interactivity"; +/******/ var __webpack_modules__ = ({ + +/***/ "@wordpress/interactivity": +/*!*******************************************!*\ + !*** external "@wordpress/interactivity" ***! + \*******************************************/ +/***/ ((module) => { + +var x = y => { var x = {}; __webpack_require__.d(x, y); return x; } +var y = x => () => x +module.exports = __WEBPACK_EXTERNAL_MODULE__wordpress_interactivity_8e89b257__; + +/***/ }) + +/******/ }); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ // no module.id needed +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/************************************************************************/ +/******/ /* webpack/runtime/make namespace object */ +/******/ (() => { +/******/ // define __esModule on exports +/******/ __webpack_require__.r = (exports) => { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ })(); +/******/ +/************************************************************************/ +var __webpack_exports__ = {}; +// This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk. +(() => { +/*!*****************************************!*\ + !*** ./src/blocks/release-page/view.js ***! + \*****************************************/ +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _wordpress_interactivity__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/interactivity */ "@wordpress/interactivity"); +/** + * WordPress dependencies + */ + +const { + state +} = (0,_wordpress_interactivity__WEBPACK_IMPORTED_MODULE_0__.store)('async-action-block', { + actions: { + handlePreSubmit(event) { + event.preventDefault(); + state.isCreatingRelease = true; + const element = document.querySelector('.wp-block-wporg-release-page'); + if (element) { + element.scrollIntoView({ + behavior: 'instant', + block: 'center' + }); + } + } + } +}); +})(); + + +//# sourceMappingURL=view.js.map \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish/index.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish/index.asset.php index 3bf552e298..fe935aba92 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish/index.asset.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish/index.asset.php @@ -1 +1 @@ - array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => 'c37441b414ae0b07be03'); + array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => 'e00dfec27a5fe6143f0a'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish/index.js index b521724922..aeebd77ba9 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish/index.js +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish/index.js @@ -1 +1,298 @@ -(()=>{"use strict";var e,r={977:(e,r,n)=>{const o=window.React,t=window.wp.components,i=window.wp.blocks,a=window.wp.serverSideRender;var l=n.n(a);const s=window.wp.blockEditor,p=JSON.parse('{"u2":"wporg/release-publish"}');(0,i.registerBlockType)(p.u2,{edit:function({attributes:e,name:r}){return(0,o.createElement)("div",{...(0,s.useBlockProps)()},(0,o.createElement)(t.Disabled,null,(0,o.createElement)(l(),{block:r,attributes:e})))},save:()=>null})}},n={};function o(e){var t=n[e];if(void 0!==t)return t.exports;var i=n[e]={exports:{}};return r[e](i,i.exports,o),i.exports}o.m=r,e=[],o.O=(r,n,t,i)=>{if(!n){var a=1/0;for(u=0;u=i)&&Object.keys(o.O).every((e=>o.O[e](n[s])))?n.splice(s--,1):(l=!1,i0&&e[u-1][2]>i;u--)e[u]=e[u-1];e[u]=[n,t,i]},o.n=e=>{var r=e&&e.__esModule?()=>e.default:()=>e;return o.d(r,{a:r}),r},o.d=(e,r)=>{for(var n in r)o.o(r,n)&&!o.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),(()=>{var e={374:0,535:0};o.O.j=r=>0===e[r];var r=(r,n)=>{var t,i,a=n[0],l=n[1],s=n[2],p=0;if(a.some((r=>0!==e[r]))){for(t in l)o.o(l,t)&&(o.m[t]=l[t]);if(s)var u=s(o)}for(r&&r(n);po(977)));t=o.O(t)})(); \ No newline at end of file +/******/ (() => { // webpackBootstrap +/******/ "use strict"; +/******/ var __webpack_modules__ = ({ + +/***/ "./src/blocks/release-publish/index.js": +/*!*********************************************!*\ + !*** ./src/blocks/release-publish/index.js ***! + \*********************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); +/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/blocks */ "@wordpress/blocks"); +/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/server-side-render */ "@wordpress/server-side-render"); +/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/block-editor */ "@wordpress/block-editor"); +/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__); +/* harmony import */ var _block_json__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./block.json */ "./src/blocks/release-publish/block.json"); +/* harmony import */ var _style_scss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./style.scss */ "./src/blocks/release-publish/style.scss"); + +/** + * WordPress dependencies + */ + + + + + +/** + * Internal dependencies + */ + + +function Edit({ + attributes, + name +}) { + return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", { + ...(0,_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__.useBlockProps)() + }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Disabled, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)((_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default()), { + block: name, + attributes: attributes + }))); +} +(0,_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__.registerBlockType)(_block_json__WEBPACK_IMPORTED_MODULE_5__.name, { + edit: Edit, + save: () => null +}); + +/***/ }), + +/***/ "./src/blocks/release-publish/style.scss": +/*!***********************************************!*\ + !*** ./src/blocks/release-publish/style.scss ***! + \***********************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +// extracted by mini-css-extract-plugin + + +/***/ }), + +/***/ "react": +/*!************************!*\ + !*** external "React" ***! + \************************/ +/***/ ((module) => { + +module.exports = window["React"]; + +/***/ }), + +/***/ "@wordpress/block-editor": +/*!*************************************!*\ + !*** external ["wp","blockEditor"] ***! + \*************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["blockEditor"]; + +/***/ }), + +/***/ "@wordpress/blocks": +/*!********************************!*\ + !*** external ["wp","blocks"] ***! + \********************************/ +/***/ ((module) => { + +module.exports = window["wp"]["blocks"]; + +/***/ }), + +/***/ "@wordpress/components": +/*!************************************!*\ + !*** external ["wp","components"] ***! + \************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["components"]; + +/***/ }), + +/***/ "@wordpress/server-side-render": +/*!******************************************!*\ + !*** external ["wp","serverSideRender"] ***! + \******************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["serverSideRender"]; + +/***/ }), + +/***/ "./src/blocks/release-publish/block.json": +/*!***********************************************!*\ + !*** ./src/blocks/release-publish/block.json ***! + \***********************************************/ +/***/ ((module) => { + +module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"wporg/release-publish","version":"0.1.0","title":"Release Publish","category":"design","icon":"","description":"A block to display release publish view.","textdomain":"wporg","attributes":{},"supports":{"html":false,"interactivity":true},"usesContext":["postId","pluginSlug"],"editorScript":"file:./index.js","render":"file:./render.php","style":"file:./style-index.css","viewScriptModule":"file:./view.js"}'); + +/***/ }) + +/******/ }); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ // no module.id needed +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = __webpack_modules__; +/******/ +/************************************************************************/ +/******/ /* webpack/runtime/chunk loaded */ +/******/ (() => { +/******/ var deferred = []; +/******/ __webpack_require__.O = (result, chunkIds, fn, priority) => { +/******/ if(chunkIds) { +/******/ priority = priority || 0; +/******/ for(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1]; +/******/ deferred[i] = [chunkIds, fn, priority]; +/******/ return; +/******/ } +/******/ var notFulfilled = Infinity; +/******/ for (var i = 0; i < deferred.length; i++) { +/******/ var chunkIds = deferred[i][0]; +/******/ var fn = deferred[i][1]; +/******/ var priority = deferred[i][2]; +/******/ var fulfilled = true; +/******/ for (var j = 0; j < chunkIds.length; j++) { +/******/ if ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) { +/******/ chunkIds.splice(j--, 1); +/******/ } else { +/******/ fulfilled = false; +/******/ if(priority < notFulfilled) notFulfilled = priority; +/******/ } +/******/ } +/******/ if(fulfilled) { +/******/ deferred.splice(i--, 1) +/******/ var r = fn(); +/******/ if (r !== undefined) result = r; +/******/ } +/******/ } +/******/ return result; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/compat get default export */ +/******/ (() => { +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = (module) => { +/******/ var getter = module && module.__esModule ? +/******/ () => (module['default']) : +/******/ () => (module); +/******/ __webpack_require__.d(getter, { a: getter }); +/******/ return getter; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/define property getters */ +/******/ (() => { +/******/ // define getter functions for harmony exports +/******/ __webpack_require__.d = (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 */ +/******/ (() => { +/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) +/******/ })(); +/******/ +/******/ /* webpack/runtime/make namespace object */ +/******/ (() => { +/******/ // define __esModule on exports +/******/ __webpack_require__.r = (exports) => { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/jsonp chunk loading */ +/******/ (() => { +/******/ // no baseURI +/******/ +/******/ // object to store loaded and loading chunks +/******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched +/******/ // [resolve, reject, Promise] = chunk loading, 0 = chunk loaded +/******/ var installedChunks = { +/******/ "blocks/release-publish/index": 0, +/******/ "blocks/release-publish/style-index": 0 +/******/ }; +/******/ +/******/ // no chunk on demand loading +/******/ +/******/ // no prefetching +/******/ +/******/ // no preloaded +/******/ +/******/ // no HMR +/******/ +/******/ // no HMR manifest +/******/ +/******/ __webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0); +/******/ +/******/ // install a JSONP callback for chunk loading +/******/ var webpackJsonpCallback = (parentChunkLoadingFunction, data) => { +/******/ var chunkIds = data[0]; +/******/ var moreModules = data[1]; +/******/ var runtime = data[2]; +/******/ // add "moreModules" to the modules object, +/******/ // then flag all "chunkIds" as loaded and fire callback +/******/ var moduleId, chunkId, i = 0; +/******/ if(chunkIds.some((id) => (installedChunks[id] !== 0))) { +/******/ for(moduleId in moreModules) { +/******/ if(__webpack_require__.o(moreModules, moduleId)) { +/******/ __webpack_require__.m[moduleId] = moreModules[moduleId]; +/******/ } +/******/ } +/******/ if(runtime) var result = runtime(__webpack_require__); +/******/ } +/******/ if(parentChunkLoadingFunction) parentChunkLoadingFunction(data); +/******/ for(;i < chunkIds.length; i++) { +/******/ chunkId = chunkIds[i]; +/******/ if(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) { +/******/ installedChunks[chunkId][0](); +/******/ } +/******/ installedChunks[chunkId] = 0; +/******/ } +/******/ return __webpack_require__.O(result); +/******/ } +/******/ +/******/ var chunkLoadingGlobal = self["webpackChunkwporg_plugins_2024"] = self["webpackChunkwporg_plugins_2024"] || []; +/******/ chunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0)); +/******/ chunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal)); +/******/ })(); +/******/ +/************************************************************************/ +/******/ +/******/ // startup +/******/ // Load entry module and return exports +/******/ // This entry module depends on other loaded chunks and execution need to be delayed +/******/ var __webpack_exports__ = __webpack_require__.O(undefined, ["blocks/release-publish/style-index"], () => (__webpack_require__("./src/blocks/release-publish/index.js"))) +/******/ __webpack_exports__ = __webpack_require__.O(__webpack_exports__); +/******/ +/******/ })() +; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish/style-index.css b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish/style-index.css index c7460969b7..b57828e9fa 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish/style-index.css +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish/style-index.css @@ -1 +1,30 @@ -.wp-block-wporg-release-publish label{display:block}.wp-block-wporg-release-publish .wp-block-wporg-release-result-item>div:last-child>div{color:var(--wp--preset--color--charcoal-4)}.wp-block-wporg-release-publish-actions,.wp-block-wporg-release-publish-user-confirm{margin-top:var(--wp--preset--spacing--20)}.wp-block-wporg-release-publish-actions{display:flex;gap:8px}.wp-block-wporg-release-publish-actions button[disabled]{opacity:.5}.wp-block-wporg-release-publish-spinner{align-items:center;display:flex;gap:6px} +/*!**************************************************************************************************************************************************************************************************************************************************************!*\ + !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/blocks/release-publish/style.scss ***! + \**************************************************************************************************************************************************************************************************************************************************************/ +.wp-block-wporg-release-publish label { + display: block; +} +.wp-block-wporg-release-publish .wp-block-wporg-release-result-item > div:last-child > div { + color: var(--wp--preset--color--charcoal-4); +} + +.wp-block-wporg-release-publish-user-confirm { + margin-top: var(--wp--preset--spacing--20); +} + +.wp-block-wporg-release-publish-actions { + display: flex; + margin-top: var(--wp--preset--spacing--20); + gap: 8px; +} +.wp-block-wporg-release-publish-actions button[disabled] { + opacity: 0.5; +} + +.wp-block-wporg-release-publish-spinner { + align-items: center; + display: flex; + gap: 6px; +} + +/*# sourceMappingURL=style-index.css.map*/ \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish/view.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish/view.asset.php index 27661128a2..99607bc3d0 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish/view.asset.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish/view.asset.php @@ -1 +1 @@ - array('@wordpress/interactivity'), 'version' => 'dbbce87a9cca7f549e5b', 'type' => 'module'); + array('@wordpress/interactivity'), 'version' => 'bbbe8e269ca99621503f', 'type' => 'module'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish/view.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish/view.js index 85539179ee..30b5cc3a47 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish/view.js +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish/view.js @@ -1 +1,141 @@ -import*as e from"@wordpress/interactivity";var t={d:(e,r)=>{for(var s in r)t.o(r,s)&&!t.o(e,s)&&Object.defineProperty(e,s,{enumerable:!0,get:r[s]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t)};const r=(i={getContext:()=>e.getContext,store:()=>e.store},n={},t.d(n,i),n),{state:s}=(0,r.store)("async-action-block",{state:{get userHasConfirmed(){return s.hasConfirmed},get isDefaultState(){return!s.isPublishing&&!s.isPublished&&!s.hasError},get isPublishingState(){return s.isPublishing},get isPublishedState(){return s.isPublished}},actions:{handleReleaseConfirm(){s.hasConfirmed=!s.hasConfirmed},handleBackClick(e){e.preventDefault(),s.isCreatingRelease=!1,s.hasConfirmed=!1},handlePageReload(){window.location.reload()},*handleSubmit(e){e.preventDefault(),s.isPublishing=!0,s.errorMessage="";const{pluginSlug:t,nonce:i,apiURL:n}=(0,r.getContext)();try{const e=yield fetch(n,{method:"POST",headers:{"Content-Type":"application/json","X-WP-Nonce":i},body:JSON.stringify({plugin_slug:t})});if(!e.ok)try{const t=yield e.json();throw new Error(t.message)}catch(e){throw new Error("An error occurred while publishing the release.")}s.isPublished=!0}catch(e){s.errorMessage=e.message,s.hasError=!0,s.isPublishing=!1}finally{s.isPublishing=!1}}}});var i,n; \ No newline at end of file +import * as __WEBPACK_EXTERNAL_MODULE__wordpress_interactivity_8e89b257__ from "@wordpress/interactivity"; +/******/ var __webpack_modules__ = ({ + +/***/ "@wordpress/interactivity": +/*!*******************************************!*\ + !*** external "@wordpress/interactivity" ***! + \*******************************************/ +/***/ ((module) => { + +var x = y => { var x = {}; __webpack_require__.d(x, y); return x; } +var y = x => () => x +module.exports = __WEBPACK_EXTERNAL_MODULE__wordpress_interactivity_8e89b257__; + +/***/ }) + +/******/ }); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ // no module.id needed +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/************************************************************************/ +/******/ /* webpack/runtime/make namespace object */ +/******/ (() => { +/******/ // define __esModule on exports +/******/ __webpack_require__.r = (exports) => { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ })(); +/******/ +/************************************************************************/ +var __webpack_exports__ = {}; +// This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk. +(() => { +/*!********************************************!*\ + !*** ./src/blocks/release-publish/view.js ***! + \********************************************/ +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _wordpress_interactivity__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/interactivity */ "@wordpress/interactivity"); +/** + * WordPress dependencies + */ + +const { + state +} = (0,_wordpress_interactivity__WEBPACK_IMPORTED_MODULE_0__.store)('async-action-block', { + state: { + get userHasConfirmed() { + return state.hasConfirmed; + }, + get isDefaultState() { + return !state.isPublishing && !state.isPublished && !state.hasError; + }, + get isPublishingState() { + return state.isPublishing; + }, + get isPublishedState() { + return state.isPublished; + } + }, + actions: { + handleReleaseConfirm() { + state.hasConfirmed = !state.hasConfirmed; + }, + handleBackClick(event) { + event.preventDefault(); + state.isCreatingRelease = false; + + // Make user reconfirm. + state.hasConfirmed = false; + }, + handlePageReload() { + window.location.reload(); + }, + *handleSubmit(event) { + event.preventDefault(); + state.isPublishing = true; + state.errorMessage = ''; + const { + pluginSlug, + nonce, + apiURL + } = (0,_wordpress_interactivity__WEBPACK_IMPORTED_MODULE_0__.getContext)(); + try { + const response = yield fetch(apiURL, { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + 'X-WP-Nonce': nonce + }, + body: JSON.stringify({ + plugin_slug: pluginSlug + }) + }); + if (!response.ok) { + try { + const error = yield response.json(); + throw new Error(error.message); + } catch (error) { + // Handle cases where json is not returned, like a gateway timeout. + throw new Error('An error occurred while publishing the release.'); + } + } + state.isPublished = true; + } catch (error) { + state.errorMessage = error.message; + state.hasError = true; + state.isPublishing = false; + } finally { + state.isPublishing = false; + } + } + } +}); +})(); + + +//# sourceMappingURL=view.js.map \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-item/index.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-item/index.asset.php index aea35ae04e..5d3dc0aed0 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-item/index.asset.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-item/index.asset.php @@ -1 +1 @@ - array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => '79bdfcb4f66a47121c4b'); + array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => '528aee9f7fbbffa602e3'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-item/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-item/index.js index 7f896da73f..e99ee21ff5 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-item/index.js +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-item/index.js @@ -1 +1,298 @@ -(()=>{"use strict";var e,r={659:(e,r,t)=>{const n=window.React,o=window.wp.components,i=window.wp.blocks,a=window.wp.serverSideRender;var l=t.n(a);const s=window.wp.blockEditor,u=JSON.parse('{"u2":"wporg/release-result-item"}');(0,i.registerBlockType)(u.u2,{edit:function({attributes:e,name:r}){return(0,n.createElement)("div",{...(0,s.useBlockProps)()},(0,n.createElement)(o.Disabled,null,(0,n.createElement)(l(),{block:r,attributes:e})))},save:()=>null})}},t={};function n(e){var o=t[e];if(void 0!==o)return o.exports;var i=t[e]={exports:{}};return r[e](i,i.exports,n),i.exports}n.m=r,e=[],n.O=(r,t,o,i)=>{if(!t){var a=1/0;for(p=0;p=i)&&Object.keys(n.O).every((e=>n.O[e](t[s])))?t.splice(s--,1):(l=!1,i0&&e[p-1][2]>i;p--)e[p]=e[p-1];e[p]=[t,o,i]},n.n=e=>{var r=e&&e.__esModule?()=>e.default:()=>e;return n.d(r,{a:r}),r},n.d=(e,r)=>{for(var t in r)n.o(r,t)&&!n.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:r[t]})},n.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),(()=>{var e={471:0,574:0};n.O.j=r=>0===e[r];var r=(r,t)=>{var o,i,a=t[0],l=t[1],s=t[2],u=0;if(a.some((r=>0!==e[r]))){for(o in l)n.o(l,o)&&(n.m[o]=l[o]);if(s)var p=s(n)}for(r&&r(t);un(659)));o=n.O(o)})(); \ No newline at end of file +/******/ (() => { // webpackBootstrap +/******/ "use strict"; +/******/ var __webpack_modules__ = ({ + +/***/ "./src/blocks/release-result-item/index.js": +/*!*************************************************!*\ + !*** ./src/blocks/release-result-item/index.js ***! + \*************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); +/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/blocks */ "@wordpress/blocks"); +/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/server-side-render */ "@wordpress/server-side-render"); +/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/block-editor */ "@wordpress/block-editor"); +/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__); +/* harmony import */ var _block_json__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./block.json */ "./src/blocks/release-result-item/block.json"); +/* harmony import */ var _style_scss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./style.scss */ "./src/blocks/release-result-item/style.scss"); + +/** + * WordPress dependencies + */ + + + + + +/** + * Internal dependencies + */ + + +function Edit({ + attributes, + name +}) { + return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", { + ...(0,_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__.useBlockProps)() + }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Disabled, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)((_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default()), { + block: name, + attributes: attributes + }))); +} +(0,_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__.registerBlockType)(_block_json__WEBPACK_IMPORTED_MODULE_5__.name, { + edit: Edit, + save: () => null +}); + +/***/ }), + +/***/ "./src/blocks/release-result-item/style.scss": +/*!***************************************************!*\ + !*** ./src/blocks/release-result-item/style.scss ***! + \***************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +// extracted by mini-css-extract-plugin + + +/***/ }), + +/***/ "react": +/*!************************!*\ + !*** external "React" ***! + \************************/ +/***/ ((module) => { + +module.exports = window["React"]; + +/***/ }), + +/***/ "@wordpress/block-editor": +/*!*************************************!*\ + !*** external ["wp","blockEditor"] ***! + \*************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["blockEditor"]; + +/***/ }), + +/***/ "@wordpress/blocks": +/*!********************************!*\ + !*** external ["wp","blocks"] ***! + \********************************/ +/***/ ((module) => { + +module.exports = window["wp"]["blocks"]; + +/***/ }), + +/***/ "@wordpress/components": +/*!************************************!*\ + !*** external ["wp","components"] ***! + \************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["components"]; + +/***/ }), + +/***/ "@wordpress/server-side-render": +/*!******************************************!*\ + !*** external ["wp","serverSideRender"] ***! + \******************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["serverSideRender"]; + +/***/ }), + +/***/ "./src/blocks/release-result-item/block.json": +/*!***************************************************!*\ + !*** ./src/blocks/release-result-item/block.json ***! + \***************************************************/ +/***/ ((module) => { + +module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"wporg/release-result-item","version":"0.1.0","title":"Release Result Item","category":"design","icon":"","description":"A block to display release draft result item.","textdomain":"wporg","attributes":{"status":{"type":"string","enum":["error","warning","success"]}},"supports":{"html":false},"editorScript":"file:./index.js","render":"file:./render.php","style":"file:./style-index.css"}'); + +/***/ }) + +/******/ }); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ // no module.id needed +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = __webpack_modules__; +/******/ +/************************************************************************/ +/******/ /* webpack/runtime/chunk loaded */ +/******/ (() => { +/******/ var deferred = []; +/******/ __webpack_require__.O = (result, chunkIds, fn, priority) => { +/******/ if(chunkIds) { +/******/ priority = priority || 0; +/******/ for(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1]; +/******/ deferred[i] = [chunkIds, fn, priority]; +/******/ return; +/******/ } +/******/ var notFulfilled = Infinity; +/******/ for (var i = 0; i < deferred.length; i++) { +/******/ var chunkIds = deferred[i][0]; +/******/ var fn = deferred[i][1]; +/******/ var priority = deferred[i][2]; +/******/ var fulfilled = true; +/******/ for (var j = 0; j < chunkIds.length; j++) { +/******/ if ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) { +/******/ chunkIds.splice(j--, 1); +/******/ } else { +/******/ fulfilled = false; +/******/ if(priority < notFulfilled) notFulfilled = priority; +/******/ } +/******/ } +/******/ if(fulfilled) { +/******/ deferred.splice(i--, 1) +/******/ var r = fn(); +/******/ if (r !== undefined) result = r; +/******/ } +/******/ } +/******/ return result; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/compat get default export */ +/******/ (() => { +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = (module) => { +/******/ var getter = module && module.__esModule ? +/******/ () => (module['default']) : +/******/ () => (module); +/******/ __webpack_require__.d(getter, { a: getter }); +/******/ return getter; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/define property getters */ +/******/ (() => { +/******/ // define getter functions for harmony exports +/******/ __webpack_require__.d = (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 */ +/******/ (() => { +/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) +/******/ })(); +/******/ +/******/ /* webpack/runtime/make namespace object */ +/******/ (() => { +/******/ // define __esModule on exports +/******/ __webpack_require__.r = (exports) => { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/jsonp chunk loading */ +/******/ (() => { +/******/ // no baseURI +/******/ +/******/ // object to store loaded and loading chunks +/******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched +/******/ // [resolve, reject, Promise] = chunk loading, 0 = chunk loaded +/******/ var installedChunks = { +/******/ "blocks/release-result-item/index": 0, +/******/ "blocks/release-result-item/style-index": 0 +/******/ }; +/******/ +/******/ // no chunk on demand loading +/******/ +/******/ // no prefetching +/******/ +/******/ // no preloaded +/******/ +/******/ // no HMR +/******/ +/******/ // no HMR manifest +/******/ +/******/ __webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0); +/******/ +/******/ // install a JSONP callback for chunk loading +/******/ var webpackJsonpCallback = (parentChunkLoadingFunction, data) => { +/******/ var chunkIds = data[0]; +/******/ var moreModules = data[1]; +/******/ var runtime = data[2]; +/******/ // add "moreModules" to the modules object, +/******/ // then flag all "chunkIds" as loaded and fire callback +/******/ var moduleId, chunkId, i = 0; +/******/ if(chunkIds.some((id) => (installedChunks[id] !== 0))) { +/******/ for(moduleId in moreModules) { +/******/ if(__webpack_require__.o(moreModules, moduleId)) { +/******/ __webpack_require__.m[moduleId] = moreModules[moduleId]; +/******/ } +/******/ } +/******/ if(runtime) var result = runtime(__webpack_require__); +/******/ } +/******/ if(parentChunkLoadingFunction) parentChunkLoadingFunction(data); +/******/ for(;i < chunkIds.length; i++) { +/******/ chunkId = chunkIds[i]; +/******/ if(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) { +/******/ installedChunks[chunkId][0](); +/******/ } +/******/ installedChunks[chunkId] = 0; +/******/ } +/******/ return __webpack_require__.O(result); +/******/ } +/******/ +/******/ var chunkLoadingGlobal = self["webpackChunkwporg_plugins_2024"] = self["webpackChunkwporg_plugins_2024"] || []; +/******/ chunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0)); +/******/ chunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal)); +/******/ })(); +/******/ +/************************************************************************/ +/******/ +/******/ // startup +/******/ // Load entry module and return exports +/******/ // This entry module depends on other loaded chunks and execution need to be delayed +/******/ var __webpack_exports__ = __webpack_require__.O(undefined, ["blocks/release-result-item/style-index"], () => (__webpack_require__("./src/blocks/release-result-item/index.js"))) +/******/ __webpack_exports__ = __webpack_require__.O(__webpack_exports__); +/******/ +/******/ })() +; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-item/style-index.css b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-item/style-index.css index 99903c7203..81b705ae23 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-item/style-index.css +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-item/style-index.css @@ -1 +1,21 @@ -.wp-block-wporg-release-result-item{display:flex;gap:8px;list-style:none;margin:0 0 12px!important;position:relative}.wp-block-wporg-release-result-item>div:first-child{align-items:center;display:flex;height:25px}ul .wp-block-wporg-release-result-item:last-child{margin-bottom:0} +/*!******************************************************************************************************************************************************************************************************************************************************************!*\ + !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/blocks/release-result-item/style.scss ***! + \******************************************************************************************************************************************************************************************************************************************************************/ +.wp-block-wporg-release-result-item { + display: flex; + margin: 0 0 12px !important; + position: relative; + gap: 8px; + list-style: none; +} +.wp-block-wporg-release-result-item > div:first-child { + height: 25px; + display: flex; + align-items: center; +} + +ul .wp-block-wporg-release-result-item:last-child { + margin-bottom: 0; +} + +/*# sourceMappingURL=style-index.css.map*/ \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/search-page/index.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/search-page/index.asset.php index 3874c78df8..324a1e825f 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/search-page/index.asset.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/search-page/index.asset.php @@ -1 +1 @@ - array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => '6b2f02802534bd210435'); + array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => '2932d78d72daed3eaacc'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/search-page/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/search-page/index.js index 66e06627aa..7e3f159885 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/search-page/index.js +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/search-page/index.js @@ -1 +1,183 @@ -(()=>{"use strict";var e={n:t=>{var r=t&&t.__esModule?()=>t.default:()=>t;return e.d(r,{a:r}),r},d:(t,r)=>{for(var o in r)e.o(r,o)&&!e.o(t,o)&&Object.defineProperty(t,o,{enumerable:!0,get:r[o]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t)};const t=window.React,r=window.wp.components,o=window.wp.blocks,n=window.wp.serverSideRender;var a=e.n(n);const c=window.wp.blockEditor,l=JSON.parse('{"u2":"wporg/search-page"}');(0,o.registerBlockType)(l.u2,{edit:function({attributes:e,name:o}){return(0,t.createElement)("div",{...(0,c.useBlockProps)()},(0,t.createElement)(r.Disabled,null,(0,t.createElement)(a(),{block:o,attributes:e})))},save:()=>null})})(); \ No newline at end of file +/******/ (() => { // webpackBootstrap +/******/ "use strict"; +/******/ var __webpack_modules__ = ({ + +/***/ "react": +/*!************************!*\ + !*** external "React" ***! + \************************/ +/***/ ((module) => { + +module.exports = window["React"]; + +/***/ }), + +/***/ "@wordpress/block-editor": +/*!*************************************!*\ + !*** external ["wp","blockEditor"] ***! + \*************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["blockEditor"]; + +/***/ }), + +/***/ "@wordpress/blocks": +/*!********************************!*\ + !*** external ["wp","blocks"] ***! + \********************************/ +/***/ ((module) => { + +module.exports = window["wp"]["blocks"]; + +/***/ }), + +/***/ "@wordpress/components": +/*!************************************!*\ + !*** external ["wp","components"] ***! + \************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["components"]; + +/***/ }), + +/***/ "@wordpress/server-side-render": +/*!******************************************!*\ + !*** external ["wp","serverSideRender"] ***! + \******************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["serverSideRender"]; + +/***/ }), + +/***/ "./src/blocks/search-page/block.json": +/*!*******************************************!*\ + !*** ./src/blocks/search-page/block.json ***! + \*******************************************/ +/***/ ((module) => { + +module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"wporg/search-page","version":"0.1.0","title":"Search Page Content","category":"design","icon":"","description":"A block that displays the search page content","textdomain":"wporg","attributes":{},"supports":{"html":false},"editorScript":"file:./index.js","render":"file:./render.php"}'); + +/***/ }) + +/******/ }); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ // no module.id needed +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/************************************************************************/ +/******/ /* webpack/runtime/compat get default export */ +/******/ (() => { +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = (module) => { +/******/ var getter = module && module.__esModule ? +/******/ () => (module['default']) : +/******/ () => (module); +/******/ __webpack_require__.d(getter, { a: getter }); +/******/ return getter; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/define property getters */ +/******/ (() => { +/******/ // define getter functions for harmony exports +/******/ __webpack_require__.d = (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 */ +/******/ (() => { +/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) +/******/ })(); +/******/ +/******/ /* webpack/runtime/make namespace object */ +/******/ (() => { +/******/ // define __esModule on exports +/******/ __webpack_require__.r = (exports) => { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ })(); +/******/ +/************************************************************************/ +var __webpack_exports__ = {}; +// This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk. +(() => { +/*!*****************************************!*\ + !*** ./src/blocks/search-page/index.js ***! + \*****************************************/ +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); +/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/blocks */ "@wordpress/blocks"); +/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/server-side-render */ "@wordpress/server-side-render"); +/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/block-editor */ "@wordpress/block-editor"); +/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__); +/* harmony import */ var _block_json__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./block.json */ "./src/blocks/search-page/block.json"); + +/** + * WordPress dependencies + */ + + + + + +/** + * Internal dependencies + */ + +function Edit({ + attributes, + name +}) { + return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", { + ...(0,_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__.useBlockProps)() + }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Disabled, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)((_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default()), { + block: name, + attributes: attributes + }))); +} +(0,_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__.registerBlockType)(_block_json__WEBPACK_IMPORTED_MODULE_5__.name, { + edit: Edit, + save: () => null +}); +})(); + +/******/ })() +; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/single-plugin/index.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/single-plugin/index.asset.php index cb40720c88..d35f709556 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/single-plugin/index.asset.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/single-plugin/index.asset.php @@ -1 +1 @@ - array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => '553d7b70458e5cb3fa39'); + array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => '1bb248b43dcc36e48747'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/single-plugin/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/single-plugin/index.js index 4d9a19fd2b..8c8d7df376 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/single-plugin/index.js +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/single-plugin/index.js @@ -1 +1,183 @@ -(()=>{"use strict";var e={n:t=>{var r=t&&t.__esModule?()=>t.default:()=>t;return e.d(r,{a:r}),r},d:(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:(e,t)=>Object.prototype.hasOwnProperty.call(e,t)};const t=window.React,r=window.wp.components,n=window.wp.blocks,o=window.wp.serverSideRender;var l=e.n(o);const a=window.wp.blockEditor,i=JSON.parse('{"u2":"wporg/single-plugin"}');(0,n.registerBlockType)(i.u2,{edit:function({attributes:e,name:n}){return(0,t.createElement)("div",{...(0,a.useBlockProps)()},(0,t.createElement)(r.Disabled,null,(0,t.createElement)(l(),{block:n,attributes:e})))},save:()=>null})})(); \ No newline at end of file +/******/ (() => { // webpackBootstrap +/******/ "use strict"; +/******/ var __webpack_modules__ = ({ + +/***/ "react": +/*!************************!*\ + !*** external "React" ***! + \************************/ +/***/ ((module) => { + +module.exports = window["React"]; + +/***/ }), + +/***/ "@wordpress/block-editor": +/*!*************************************!*\ + !*** external ["wp","blockEditor"] ***! + \*************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["blockEditor"]; + +/***/ }), + +/***/ "@wordpress/blocks": +/*!********************************!*\ + !*** external ["wp","blocks"] ***! + \********************************/ +/***/ ((module) => { + +module.exports = window["wp"]["blocks"]; + +/***/ }), + +/***/ "@wordpress/components": +/*!************************************!*\ + !*** external ["wp","components"] ***! + \************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["components"]; + +/***/ }), + +/***/ "@wordpress/server-side-render": +/*!******************************************!*\ + !*** external ["wp","serverSideRender"] ***! + \******************************************/ +/***/ ((module) => { + +module.exports = window["wp"]["serverSideRender"]; + +/***/ }), + +/***/ "./src/blocks/single-plugin/block.json": +/*!*********************************************!*\ + !*** ./src/blocks/single-plugin/block.json ***! + \*********************************************/ +/***/ ((module) => { + +module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"wporg/single-plugin","version":"0.1.0","title":"Single Plugin Content","category":"design","icon":"","description":"A block that displays the single plugin content","textdomain":"wporg","attributes":{},"supports":{"html":false},"usesContext":["postId"],"editorScript":"file:./index.js","render":"file:./render.php"}'); + +/***/ }) + +/******/ }); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ // no module.id needed +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/************************************************************************/ +/******/ /* webpack/runtime/compat get default export */ +/******/ (() => { +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = (module) => { +/******/ var getter = module && module.__esModule ? +/******/ () => (module['default']) : +/******/ () => (module); +/******/ __webpack_require__.d(getter, { a: getter }); +/******/ return getter; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/define property getters */ +/******/ (() => { +/******/ // define getter functions for harmony exports +/******/ __webpack_require__.d = (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 */ +/******/ (() => { +/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) +/******/ })(); +/******/ +/******/ /* webpack/runtime/make namespace object */ +/******/ (() => { +/******/ // define __esModule on exports +/******/ __webpack_require__.r = (exports) => { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ })(); +/******/ +/************************************************************************/ +var __webpack_exports__ = {}; +// This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk. +(() => { +/*!*******************************************!*\ + !*** ./src/blocks/single-plugin/index.js ***! + \*******************************************/ +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); +/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/blocks */ "@wordpress/blocks"); +/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/server-side-render */ "@wordpress/server-side-render"); +/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/block-editor */ "@wordpress/block-editor"); +/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__); +/* harmony import */ var _block_json__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./block.json */ "./src/blocks/single-plugin/block.json"); + +/** + * WordPress dependencies + */ + + + + + +/** + * Internal dependencies + */ + +function Edit({ + attributes, + name +}) { + return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", { + ...(0,_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__.useBlockProps)() + }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Disabled, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)((_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default()), { + block: name, + attributes: attributes + }))); +} +(0,_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__.registerBlockType)(_block_json__WEBPACK_IMPORTED_MODULE_5__.name, { + edit: Edit, + save: () => null +}); +})(); + +/******/ })() +; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-draft/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-draft/render.php index e753c05f55..9b69c9e027 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-draft/render.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-draft/render.php @@ -40,10 +40,15 @@ // Fetch the latest draft post. $latest_draft_query->the_post(); -$post_title = __( 'Trunk', 'wporg-plugins' ); -$intro_text = __( 'There are unpublished changes in your trunk folder.', 'wporg-plugins' ); -$button_text = __( 'Create release', 'wporg-plugins' ); -$publish_title = __( 'Create release', 'wporg-plugins' ); +$new_version = get_post_meta( get_the_ID(), 'release_version', true ); + +$post_title = sprintf( + __( 'Trunk (v.%s)', 'wporg-plugins' ), + $new_version +); +$intro_text = __( 'There are unpublished changes in your trunk folder.', 'wporg-plugins' ); +$button_text = __( 'Create release', 'wporg-plugins' ); +$publish_title = __( 'Create release', 'wporg-plugins' ); $markup = << From b990988aec6990ae692a858b40abb22870a9ff65 Mon Sep 17 00:00:00 2001 From: tellyworth Date: Wed, 11 Dec 2024 16:51:39 +1100 Subject: [PATCH 52/84] Store revision_final and revision_prior Intended for use in displaying diffs --- .../plugin-directory/class-plugin-release.php | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/wordpress.org/public_html/wp-content/plugins/plugin-directory/class-plugin-release.php b/wordpress.org/public_html/wp-content/plugins/plugin-directory/class-plugin-release.php index 57795a8f35..745fa31926 100644 --- a/wordpress.org/public_html/wp-content/plugins/plugin-directory/class-plugin-release.php +++ b/wordpress.org/public_html/wp-content/plugins/plugin-directory/class-plugin-release.php @@ -186,6 +186,8 @@ public function update_release( $release_id, $release ) { 'release_zips_built' => $release['zips_built'], 'release_confirmations_required' => $release['confirmations_required'], 'release_revision' => $release['revision'], + 'release_revision_final' => $release['revision_final'] ?? null, + 'release_revision_prior' => $release['revision_prior'] ?? null, 'release_commit_log' => $release['commit_log'] ?? null, 'release_tested' => $release['tested'] ?? null, 'release_requires_php' => $release['requires_php'] ?? null, @@ -276,7 +278,14 @@ public function update_releases( $plugin, $releases ) { $current_versions = wp_list_pluck( $current_releases, 'post_title', 'ID' ); // Add or update each release. - foreach ( $releases as $release ) { + // Go backwards so we can store the previous revision number for each. + foreach ( array_reverse( $releases ) as $release ) { + $release_revision = max( $release['revision'] ); + // revision_final is the svn rev number that corresponds to the release tag. + // revision_prior is the svn rev number of the previous release. + // revision_prior:revision_final is the range of svn rev numbers that are included in this release (noting that you'll need to be specific about paths) + $release['revision_final'] = $release_revision; + $release['revision_prior'] = $last_release_revision ?? null; // TODO: is there a reasonable way to get the initial import revision number? if ( ! in_array( $release['version'], $current_versions ) ) { // Add a CPT for the release if one does not yet exist. $r = $this->add_release( $plugin, $release ); @@ -296,6 +305,7 @@ public function update_releases( $plugin, $releases ) { } ++ $changed; } + $last_release_revision = $release_revision; } // Remove any releases that are no longer present. From c9ed3bee3d005d7a38c69c535f69a69e33eedcf9 Mon Sep 17 00:00:00 2001 From: tellyworth Date: Wed, 11 Dec 2024 17:14:03 +1100 Subject: [PATCH 53/84] Include commit log in all release cpts --- .../plugins/plugin-directory/class-plugin-release.php | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/wordpress.org/public_html/wp-content/plugins/plugin-directory/class-plugin-release.php b/wordpress.org/public_html/wp-content/plugins/plugin-directory/class-plugin-release.php index 745fa31926..254cb1c3d7 100644 --- a/wordpress.org/public_html/wp-content/plugins/plugin-directory/class-plugin-release.php +++ b/wordpress.org/public_html/wp-content/plugins/plugin-directory/class-plugin-release.php @@ -286,6 +286,14 @@ public function update_releases( $plugin, $releases ) { // revision_prior:revision_final is the range of svn rev numbers that are included in this release (noting that you'll need to be specific about paths) $release['revision_final'] = $release_revision; $release['revision_prior'] = $last_release_revision ?? null; // TODO: is there a reasonable way to get the initial import revision number? + + // FIXME: Is it safe to run this here? Should this be conditional on the context in which we're running? Only on add? Something else? + if ( $release['revision_final'] && $release['revision_prior'] ) { + $trunk_url = Import::PLUGIN_SVN_BASE . '/' . $plugin->post_name . '/trunk'; + $commit_log = SVN::log( $trunk_url, [ $release['revision_prior'], $release['revision_final'] ] ); + $release['commit_log'] = $commit_log['log'] ?? null; + } + if ( ! in_array( $release['version'], $current_versions ) ) { // Add a CPT for the release if one does not yet exist. $r = $this->add_release( $plugin, $release ); From 7f81b2d945ef1084b828a20565286158df227ed4 Mon Sep 17 00:00:00 2001 From: tellyworth Date: Wed, 11 Dec 2024 17:14:29 +1100 Subject: [PATCH 54/84] In get-release-info.php, display revision range and commit log --- .../plugins/plugin-directory/bin/get-release-info.php | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/wordpress.org/public_html/wp-content/plugins/plugin-directory/bin/get-release-info.php b/wordpress.org/public_html/wp-content/plugins/plugin-directory/bin/get-release-info.php index 9b541158a9..9df56c403d 100644 --- a/wordpress.org/public_html/wp-content/plugins/plugin-directory/bin/get-release-info.php +++ b/wordpress.org/public_html/wp-content/plugins/plugin-directory/bin/get-release-info.php @@ -89,7 +89,15 @@ echo "Committers: " . implode( ', ', $release->release_committer ) . "\n"; echo "Zips built: " . ( $release->release_zips_built ? 'Yes' : 'No' ) . "\n"; echo "Confirmations required: " . ( $release->release_confirmations_required ? 'Yes' : 'No' ) . "\n"; + echo "Release revision: " . $release->revision_final . "\n"; + echo "Previous version rev: " . $release->revision_prior . "\n"; echo "Revisions: " . implode( ',', $release->release_revisions ) . "\n"; + if ( $release->release_commit_log ) { + echo "Commit log:\n"; + foreach( array_reverse( $release->release_commit_log ) as $commit ) { + echo ( new \DateTime( '@' . $commit['date'] ) )->format( 'Y-m-d' ) . " - "; + echo $commit['author'] . ' r' . $commit['revision'] . " - " . \wp_trim_words( $commit['message'] ) . "\n"; + } + } echo "-----------------------------------\n"; - #var_dump( $release->release_commit_log ); } \ No newline at end of file From 59955cf8c461019177bf619a6110a86899050669 Mon Sep 17 00:00:00 2001 From: tellyworth Date: Wed, 11 Dec 2024 20:09:29 +1100 Subject: [PATCH 55/84] Improve update-release-cpt.php to use svn tag data directly This includes revision numbers, so data is more complete after running the update script now. Also, I changed it to use the backfill function, so its behaviour should be identical to what we'll eventually use as a one-time backfill. --- .../bin/update-release-cpt.php | 2 +- .../plugin-directory/class-plugin-release.php | 43 ++++++++++++++++--- 2 files changed, 38 insertions(+), 7 deletions(-) diff --git a/wordpress.org/public_html/wp-content/plugins/plugin-directory/bin/update-release-cpt.php b/wordpress.org/public_html/wp-content/plugins/plugin-directory/bin/update-release-cpt.php index 09a700e68d..d30e74b2d0 100644 --- a/wordpress.org/public_html/wp-content/plugins/plugin-directory/bin/update-release-cpt.php +++ b/wordpress.org/public_html/wp-content/plugins/plugin-directory/bin/update-release-cpt.php @@ -77,7 +77,7 @@ echo "Updating releases for $plugin_slug...\n"; -$updated = Plugin_Release::instance()->update_releases( $plugin, $plugin->releases ); +$updated = Plugin_Release::instance()->maybe_backfill_releases( $plugin, true ); // true = force update if ( is_wp_error( $updated ) ) { fwrite( STDERR, "Failed to update releases for $plugin_slug: " . $updated->get_error_message() . "\n" ); die(); diff --git a/wordpress.org/public_html/wp-content/plugins/plugin-directory/class-plugin-release.php b/wordpress.org/public_html/wp-content/plugins/plugin-directory/class-plugin-release.php index 254cb1c3d7..693228820a 100644 --- a/wordpress.org/public_html/wp-content/plugins/plugin-directory/class-plugin-release.php +++ b/wordpress.org/public_html/wp-content/plugins/plugin-directory/class-plugin-release.php @@ -83,24 +83,55 @@ public function has_releases( $plugin ) { /** * Backfill releases for a plugin, if none exist. This uses the releases postmeta to populate the CPTs. */ - public function maybe_backfill_releases( $plugin ) { + public function maybe_backfill_releases( $plugin, $force = false ) { $plugin = get_post( $plugin ); if ( !$plugin || 'plugin' !== $plugin->post_type ) { return new \WP_Error( 'invalid_plugin', 'Invalid plugin' ); } - // This will backfill the releases postmeta if needed. - $releases_postmeta = Plugin_Directory::get_releases( $plugin ); + if ( $this->has_releases( $plugin ) && ! $force ) { + return false; + } + + $releases_from_tags = $this->get_releases_from_svn_tags( $plugin ); - // Add or update the release CPTs using postmeta. - if ( $releases_postmeta && ! $this->has_releases( $plugin ) ) { - return $this->update_releases( $plugin, $releases_postmeta ); + // Add or update the release CPTs using the svn data. + if ( $releases_from_tags ) { + return $this->update_releases( $plugin, $releases_from_tags ); } return false; } + // This roughly mimics Plugin_Directory::prefill_releases_meta(), but includes a bit more detail. + public function get_releases_from_svn_tags( $plugin ) { + $plugin = get_post( $plugin ); + + if ( !$plugin || 'plugin' !== $plugin->post_type ) { + return new \WP_Error( 'invalid_plugin', 'Invalid plugin' ); + } + + $svn_tags = Tools\SVN::ls( "https://plugins.svn.wordpress.org/{$plugin->post_name}/tags/", true ) ?: []; + + $releases = []; + foreach ( $svn_tags as $tag ) { + if ( 'dir' !== $tag['kind'] ) { + continue; + } + + $releases[] = [ + 'date' => strtotime( $tag['date'] ), + 'tag' => $tag['filename'], + 'version' => $tag['filename'], + 'committer' => [ $tag['author'] ], + 'revision' => [ $tag['revision'] ], + ]; + } + + return $releases; + } + /** * Add release info for a plugin. */ From 887908deb0217d75f23ce6515af9bc3a60978e0c Mon Sep 17 00:00:00 2001 From: tellyworth Date: Wed, 11 Dec 2024 20:10:17 +1100 Subject: [PATCH 56/84] Improve the get-release-info script It now shows the commit log data if available (which it should be, if you re-run update-release-cpt.php first) --- .../plugin-directory/bin/get-release-info.php | 26 +++++++++---------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/wordpress.org/public_html/wp-content/plugins/plugin-directory/bin/get-release-info.php b/wordpress.org/public_html/wp-content/plugins/plugin-directory/bin/get-release-info.php index 9df56c403d..d48bcf95dc 100644 --- a/wordpress.org/public_html/wp-content/plugins/plugin-directory/bin/get-release-info.php +++ b/wordpress.org/public_html/wp-content/plugins/plugin-directory/bin/get-release-info.php @@ -79,24 +79,24 @@ } foreach( $releases as $release ) { - echo "ID: " . $release->ID . "\n"; - echo "Release version: " . $release->post_title . "\n"; - echo "Tag: " . $release->release_tag . "\n"; - echo "Post date GMT: " . $release->post_date_gmt . "\n"; + echo "ID: " . $release->ID . "\n"; + echo "Status: " . $release->post_status . "\n"; + echo "Release version: " . $release->post_title . "\n"; + echo "Tag: " . $release->release_tag . "\n"; + echo "Post date GMT: " . $release->post_date_gmt . "\n"; if ( $release->release_date ) { - echo "Date: " . ( new \DateTime( '@' . $release->release_date ) )->format( 'Y-m-d H:i:s' ) . "\n"; + echo "Date: " . ( new \DateTime( '@' . $release->release_date ) )->format( 'Y-m-d H:i:s' ) . "\n"; } - echo "Committers: " . implode( ', ', $release->release_committer ) . "\n"; - echo "Zips built: " . ( $release->release_zips_built ? 'Yes' : 'No' ) . "\n"; + echo "Committers: " . implode( ', ', $release->release_committer ) . "\n"; + echo "Zips built: " . ( $release->release_zips_built ? 'Yes' : 'No' ) . "\n"; echo "Confirmations required: " . ( $release->release_confirmations_required ? 'Yes' : 'No' ) . "\n"; - echo "Release revision: " . $release->revision_final . "\n"; - echo "Previous version rev: " . $release->revision_prior . "\n"; - echo "Revisions: " . implode( ',', $release->release_revisions ) . "\n"; + echo "Release revision: " . $release->revision_final . "\n"; + echo "Previous version rev: " . $release->revision_prior . "\n"; if ( $release->release_commit_log ) { echo "Commit log:\n"; - foreach( array_reverse( $release->release_commit_log ) as $commit ) { - echo ( new \DateTime( '@' . $commit['date'] ) )->format( 'Y-m-d' ) . " - "; - echo $commit['author'] . ' r' . $commit['revision'] . " - " . \wp_trim_words( $commit['message'] ) . "\n"; + foreach( $release->release_commit_log as $commit ) { + echo " " . ( new \DateTime( '@' . $commit['date'] ) )->format( 'Y-m-d' ) . " - "; + echo " " . $commit['author'] . ' r' . $commit['revision'] . " - " . \wp_trim_words( $commit['message'] ) . "\n"; } } echo "-----------------------------------\n"; From 08d911de426c264051b04dc77d668de6af7c605a Mon Sep 17 00:00:00 2001 From: StevenDufresne Date: Tue, 10 Dec 2024 06:00:43 +0000 Subject: [PATCH 57/84] Add translator message. --- .../src/blocks/release-draft/render.php | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-draft/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-draft/render.php index 9b69c9e027..1a0a987175 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-draft/render.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-draft/render.php @@ -42,13 +42,15 @@ $new_version = get_post_meta( get_the_ID(), 'release_version', true ); + +$intro_text = __( 'There are unpublished changes in your trunk folder.', 'wporg-plugins' ); +$button_text = __( 'Create release', 'wporg-plugins' ); +$publish_title = __( 'Create release', 'wporg-plugins' ); $post_title = sprintf( + /* translators: %s: New version number */ __( 'Trunk (v.%s)', 'wporg-plugins' ), $new_version ); -$intro_text = __( 'There are unpublished changes in your trunk folder.', 'wporg-plugins' ); -$button_text = __( 'Create release', 'wporg-plugins' ); -$publish_title = __( 'Create release', 'wporg-plugins' ); $markup = << From d209588850818aa981ea2cda8b740dc46070eb78 Mon Sep 17 00:00:00 2001 From: StevenDufresne Date: Tue, 10 Dec 2024 06:04:08 +0000 Subject: [PATCH 58/84] Clean up publish render. --- .../src/blocks/release-publish/render.php | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-publish/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-publish/render.php index 1f775eb1ea..21da591899 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-publish/render.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-publish/render.php @@ -20,7 +20,7 @@ } $current_version = get_post_meta( $block->context['postId'], 'release_version', true ); -$tested_up_to = '6.7';// get_post_meta( $block->context['postId'], 'release_tested', true ); +$tested_up_to = get_post_meta( $block->context['postId'], 'release_tested', true ); /** * Returns whether the tested_up_to value is recent. @@ -84,9 +84,6 @@ function get_release_check_item( $status, $content ) { /** * Generate the block content for the version number check item. * - * @param bool $verdict Whether the version number is valid. - * @param string $value The current version number. - * * @return string The block content. */ function get_changelog_check_item() { @@ -104,8 +101,7 @@ function get_changelog_check_item() { /** * Generate the block content for the version number check item. * - * @param bool $verdict Whether the version number is valid. - * @param string $value The current version number. + * @param bool $post Release post. * * @return string The block content. */ From 96b8549cff5a46097afcd92d6661280988b025de Mon Sep 17 00:00:00 2001 From: StevenDufresne Date: Thu, 12 Dec 2024 01:19:02 +0000 Subject: [PATCH 59/84] Run the linter. --- .../build/blocks/plugin-card/view.asset.php | 2 +- .../build/blocks/plugin-card/view.js | 2 +- .../build/blocks/release-checks/render.php | 36 ++- .../blocks/release-checks/style-index.css | 13 +- .../blocks/release-commits/style-index.css | 1 + .../build/blocks/release-draft/render.php | 10 +- .../build/blocks/release-flags/render.php | 24 -- .../build/blocks/release-page/render.php | 9 +- .../build/blocks/release-page/style-index.css | 1 - .../build/blocks/release-page/view.asset.php | 2 +- .../build/blocks/release-page/view.js | 2 +- .../build/blocks/release-publish/render.php | 284 +++++------------- .../blocks/release-publish/style-index.css | 3 + .../blocks/release-publish/view.asset.php | 2 +- .../build/blocks/release-publish/view.js | 5 +- .../blocks/release-result-item/render.php | 10 + .../pub/wporg-plugins-2024/functions.php | 131 ++------ .../pub/wporg-plugins-2024/package.json | 6 +- .../src/blocks/archive-page/block.json | 2 +- .../src/blocks/archive-page/index.js | 2 +- .../src/blocks/card/block.json | 2 +- .../src/blocks/card/index.js | 2 +- .../src/blocks/category-navigation/block.json | 2 +- .../src/blocks/category-navigation/index.js | 2 +- .../src/blocks/filter-bar/block.json | 2 +- .../src/blocks/filter-bar/index.js | 2 +- .../src/blocks/front-page/block.json | 2 +- .../src/blocks/front-page/index.js | 2 +- .../src/blocks/plugin-card/block.json | 2 +- .../src/blocks/plugin-card/index.js | 2 +- .../src/blocks/plugin-card/view.js | 10 +- .../src/blocks/release-checks/block.json | 2 +- .../src/blocks/release-checks/index.js | 2 +- .../src/blocks/release-checks/index.php | 97 ++++++ .../src/blocks/release-checks/render.php | 36 ++- .../src/blocks/release-checks/style.scss | 17 +- .../src/blocks/release-commits/block.json | 2 +- .../src/blocks/release-commits/index.js | 2 +- .../src/blocks/release-commits/style.scss | 1 + .../src/blocks/release-draft/block.json | 2 +- .../src/blocks/release-draft/index.js | 2 +- .../src/blocks/release-draft/render.php | 2 +- .../src/blocks/release-flags/block.json | 2 +- .../src/blocks/release-flags/index.js | 2 +- .../src/blocks/release-flags/render.php | 24 -- .../blocks/release-menu-options/block.json | 28 +- .../src/blocks/release-menu-options/index.js | 2 +- .../src/blocks/release-page/block.json | 2 +- .../src/blocks/release-page/index.js | 2 +- .../src/blocks/release-page/render.php | 9 +- .../src/blocks/release-page/style.scss | 1 - .../src/blocks/release-page/view.js | 14 +- .../src/blocks/release-publish/block.json | 2 +- .../src/blocks/release-publish/index.js | 2 +- .../src/blocks/release-publish/index.php | 179 +++++++++++ .../src/blocks/release-publish/render.php | 278 +++++------------ .../src/blocks/release-publish/style.scss | 4 + .../src/blocks/release-publish/view.js | 50 +-- .../src/blocks/release-result-item/block.json | 2 +- .../src/blocks/release-result-item/index.js | 2 +- .../src/blocks/release-result-item/render.php | 10 + .../src/blocks/search-page/block.json | 2 +- .../src/blocks/search-page/index.js | 2 +- .../src/blocks/single-plugin/index.js | 2 +- 64 files changed, 673 insertions(+), 690 deletions(-) diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/plugin-card/view.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/plugin-card/view.asset.php index 0dd4c71ab5..1b7e807077 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/plugin-card/view.asset.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/plugin-card/view.asset.php @@ -1 +1 @@ - array(), 'version' => '038d83c28b7b82ea64d9'); + array(), 'version' => 'e27494ba8e1b7f07e282'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/plugin-card/view.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/plugin-card/view.js index a0ec1ebc4a..1d9604facb 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/plugin-card/view.js +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/plugin-card/view.js @@ -4,7 +4,7 @@ var __webpack_exports__ = {}; !*** ./src/blocks/plugin-card/view.js ***! \****************************************/ /** - * Binds click events to navigate on plugin card click. + * Binds click events to navigate on plugin card click. */ document.addEventListener('DOMContentLoaded', function () { var cards = document.querySelectorAll('.plugin-cards li'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks/render.php index de7a1aa6b5..677afb712e 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks/render.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks/render.php @@ -4,8 +4,10 @@ * * @package wporg-plugins */ +use WordPressdotorg\Plugin_Directory\Readme\Validator as Readme_Validator; -use function WordPressdotorg\Plugin_Directory\Theme\{format_plugin_check_results, get_test_run_message}; +use function WordPressdotorg\Theme\Plugins_2024\ReleaseChecks\{format_plugin_check_results, get_test_run_message}; +use function WordPressdotorg\Plugin_Directory\Theme\{get_latest_release, get_plugin}; if ( ! current_user_can( 'plugin_admin_edit', $post ) ) { return; @@ -34,8 +36,36 @@ return; } +// Warnings are currently associated to the plugin post, not the release post. +$import_warnings = get_post_meta( get_plugin()->ID, '_import_warnings', true ); + +if ( $import_warnings ) { + // Back-compat; previously this was an array of numeric-indexed human-readable strings. + if ( ! wp_is_numeric_array( $import_warnings ) ) { + // error_code => error_data, convert to error_code => human_readable_error. + + foreach ( $import_warnings as $error_code => $error_data ) { + $import_warnings[ $error_code ] = Readme_Validator::instance()->translate_code_to_message( $error_code, $error_data ); + } + } + + $warnings = ''; + foreach ( $import_warnings as $error_code => $error_data ) { + + // Skip these warnings,they are not relevant to the release. + if ( in_array( $error_code, array( 'stable_tag_invalid_trunk_fallback', 'stable_tag_invalid' ), true ) ) { + continue; + } + + $blocks .= sprintf( + '
    %s
    ', + $error_data + ); + } +} + // Create a block with the overall status. -$status_block = sprintf( +$blocks = sprintf( '%2$s', $plugin_check_errors['verdict'] ? 'success' : 'warning', get_test_run_message( $plugin_check_errors ) @@ -44,5 +74,5 @@ printf( '
      %2$s
    ', wp_kses_data( get_block_wrapper_attributes() ), - do_blocks( $status_block ) // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped + do_blocks( $blocks ) // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks/style-index.css b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks/style-index.css index 8206df05fe..0843a9b7c9 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks/style-index.css +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks/style-index.css @@ -1,8 +1,19 @@ /*!*************************************************************************************************************************************************************************************************************************************************************!*\ !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/blocks/release-checks/style.scss ***! \*************************************************************************************************************************************************************************************************************************************************************/ +.wp-block-wporg-release-checks { + padding: 0; +} +.wp-block-wporg-release-checks .wp-block-heading { + font-weight: 500; + font-size: var(--wp--preset--font-size--small); +} + .wp-block-wporg-release-checks-results { - margin-left: 16px; + list-style: none; + padding-left: 0; +} +.wp-block-wporg-release-checks-results li ul { list-style: disc; } .wp-block-wporg-release-checks-results li:not(:last-child) { diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-commits/style-index.css b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-commits/style-index.css index 017db2a6de..f6286dc397 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-commits/style-index.css +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-commits/style-index.css @@ -10,6 +10,7 @@ flex-direction: column; gap: 8px; list-style: none; + padding: 0; } .wp-block-wporg-release-commit-list li { display: flex; diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft/render.php index 9b69c9e027..abd9c906d3 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft/render.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft/render.php @@ -42,13 +42,15 @@ $new_version = get_post_meta( get_the_ID(), 'release_version', true ); + +$intro_text = __( 'There are unpublished changes in your trunk folder.', 'wporg-plugins' ); +$button_text = __( 'Create release', 'wporg-plugins' ); +$publish_title = __( 'Create release', 'wporg-plugins' ); $post_title = sprintf( + /* translators: %s: New version number */ __( 'Trunk (v.%s)', 'wporg-plugins' ), $new_version ); -$intro_text = __( 'There are unpublished changes in your trunk folder.', 'wporg-plugins' ); -$button_text = __( 'Create release', 'wporg-plugins' ); -$publish_title = __( 'Create release', 'wporg-plugins' ); $markup = << @@ -81,7 +83,7 @@ printf( '
    %3$s
    ', - 'data-wp-interactive="async-action-block"', + 'data-wp-interactive="wporg/publish-draft"', wp_kses_data( get_block_wrapper_attributes() ), do_blocks( $markup ) // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-flags/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-flags/render.php index ead61b7095..ac2b084edd 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-flags/render.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-flags/render.php @@ -19,30 +19,6 @@ return; } -// Warnings are currently associated to the plugin post, not the release post. -$import_warnings = get_post_meta( $release_post->post_parent, '_import_warnings', true ); - -if ( ! $import_warnings ) { - return; -} - -// Back-compat; previously this was an array of numeric-indexed human-readable strings. -if ( ! wp_is_numeric_array( $import_warnings ) ) { - // error_code => error_data, convert to error_code => human_readable_error. - foreach ( $import_warnings as $error_code => $error_data ) { - $import_warnings[ $error_code ] = Readme_Validator::instance()->translate_code_to_message( $error_code, $error_data ); - } -} - -$warnings = ''; -foreach ( $import_warnings as $error_code => $error_data ) { - $warnings .= sprintf( - '

    %2$s

    ', - 'warning', - $error_data - ); -} - $heading = sprintf( '

    %s

    diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-page/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-page/render.php index f939f21d4b..9fae227ef5 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-page/render.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-page/render.php @@ -34,22 +34,21 @@ HTML; /** - * Create initial state for the async-action-block. + * Create initial state for the wporg/publish-draft. */ wp_interactivity_state( - 'async-action-block', + 'wporg/publish-draft', array( 'isCreatingRelease' => false, ) ); /** - * Create initial context for the async-action-block. + * Create initial context for the wporg/publish-draft. */ - printf( '
    %3$s
    ', wp_kses_data( get_block_wrapper_attributes() ), - 'data-wp-interactive="async-action-block"', + 'data-wp-interactive="wporg/publish-draft"', do_blocks( $markup ) // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-page/style-index.css b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-page/style-index.css index 324dbabc5e..e58004dae1 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-page/style-index.css +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-page/style-index.css @@ -6,7 +6,6 @@ } .wp-block-wporg-release-draft ul { margin-top: var(--wp--preset--spacing--10); - padding: 0; } /*# sourceMappingURL=style-index.css.map*/ \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-page/view.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-page/view.asset.php index 5af485fdc6..900248015c 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-page/view.asset.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-page/view.asset.php @@ -1 +1 @@ - array('@wordpress/interactivity'), 'version' => '1fd327936eb075a65867', 'type' => 'module'); + array('@wordpress/interactivity'), 'version' => 'a2935a64e4dd8c48133e', 'type' => 'module'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-page/view.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-page/view.js index a09e9f24bf..cb7cd72f5a 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-page/view.js +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-page/view.js @@ -66,7 +66,7 @@ __webpack_require__.r(__webpack_exports__); const { state -} = (0,_wordpress_interactivity__WEBPACK_IMPORTED_MODULE_0__.store)('async-action-block', { +} = (0,_wordpress_interactivity__WEBPACK_IMPORTED_MODULE_0__.store)('wporg/publish-draft', { actions: { handlePreSubmit(event) { event.preventDefault(); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish/render.php index 1f775eb1ea..e26547674f 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish/render.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish/render.php @@ -5,7 +5,9 @@ * @package WordPressdotorg\Plugin_Directory */ -use function WordPressdotorg\Plugin_Directory\Theme\{get_blueprint_url, get_latest_release, get_plugin_slug, get_revision_changeset_link}; +use WordPressdotorg\Plugin_Directory\Template; +use function WordPressdotorg\Plugin_Directory\Theme\{get_latest_release, get_plugin, get_plugin_slug}; +use function WordPressdotorg\Theme\Plugins_2024\ReleasePublish\{has_recently_been_tested, get_view_diff_check_item, get_changelog_check_item, get_tested_up_to_check_item, get_version_number_check_item}; // Ensure the block context has a valid post ID. if ( empty( $block->context['postId'] ) ) { @@ -20,187 +22,7 @@ } $current_version = get_post_meta( $block->context['postId'], 'release_version', true ); -$tested_up_to = '6.7';// get_post_meta( $block->context['postId'], 'release_tested', true ); - -/** - * Returns whether the tested_up_to value is recent. - * - * @param string $tested_up_to The tested up to value. - * - * @return bool Whether the tested up to value is recent. - */ -function has_recently_been_tested( $tested_up_to ) { - global $wp_version; - - // If the tested up to value is empty, it's not recent. - if ( empty( $tested_up_to ) ) { - return false; - } - - $latest_release = $wp_version; - - if ( defined( 'WP_CORE_STABLE_BRANCH' ) ) { - $latest_release = WP_CORE_STABLE_BRANCH; - } - - $tested_major = (int) explode( '.', $tested_up_to )[0]; - $latest_major = (int) explode( '.', $latest_release )[0]; - - return $tested_major >= $latest_major; -} - -/** - * Generate the HTML for a release item content block. - * - * @param string $label The label for the item. - * @param string $content The additional content or description. - * @return string The formatted HTML content for the release item. - */ -function get_release_item_content( $label, $content ) { - return sprintf( - '
    %1$s
    %2$s
    ', - esc_html( $label ), - wp_kses_post( $content ) - ); -} - -/** - * Generate a release check item block with a specific status. - * - * @param string $status The status of the check item ('success' or 'error'). - * @param string $content The content to display inside the block. - * @return string The formatted block content. - */ -function get_release_check_item( $status, $content ) { - return do_blocks( - sprintf( - '%2$s', - esc_attr( $status ), - $content - ) - ); -} - -/** - * Generate the block content for the version number check item. - * - * @param bool $verdict Whether the version number is valid. - * @param string $value The current version number. - * - * @return string The block content. - */ -function get_changelog_check_item() { - $label = __( 'Update your changelog with key changes.', 'wporg-plugins' ); - $info_text = sprintf( - 'Learn more about writing useful changelogs.', - esc_url( 'https://developer.wordpress.org/plugins/wordpress-org/plugin-developer-faq/#what-should-be-in-my-changelog' ), - ); - - $content = get_release_item_content( $label, $info_text ); - - return get_release_check_item( 'default', $content ); -} - -/** - * Generate the block content for the version number check item. - * - * @param bool $verdict Whether the version number is valid. - * @param string $value The current version number. - * - * @return string The block content. - */ -function get_view_diff_check_item( $post ) { - $label = __( 'Review your changes.', 'wporg-plugins' ); - $commits = get_post_meta( $post->ID, 'release_commit_log', true ); - $info_text = sprintf( - /* translators: %s: URL to the plugin in the Plugin Directory */ - __( 'Double-check your changeset before publishing.', 'wporg-plugins' ), - esc_url( get_revision_changeset_link( $commits ) ) - ); - $content = get_release_item_content( $label, $info_text ); - - return get_release_check_item( 'default', $content ); -} - -/** - * Generate the block content for the version number check item. - * - * @param bool $verdict Whether the version number is valid. - * @param string $value The current version number. - * - * @return string The block content. - */ -function get_version_number_check_item( $verdict, $value ) { - $label = __( 'Increment your version number.', 'wporg-plugins' ); - - $info_text = sprintf( - /* translators: %s: The current version number */ - __( 'New version: %s', 'wporg-plugins' ), - '' . $value . '', - ); - - $status = ''; - - if ( ! $verdict ) { - $status = 'error'; - $info_text = sprintf( - /* translators: %s: The current version number */ - __( 'Your plugin\'s version number %s must be incremented before you can publish.', 'wporg-plugins' ), - '' . $value . '', - ); - } - - $content = get_release_item_content( $label, $info_text ); - - return get_release_check_item( $status, $content ); -} - -/** - * Generate the block content for the "Tested up to" check item. - * - * @param bool $verdict Whether the tested up to value is recent. - * @param string $value The tested up to value. - * - * @return string The block content. - */ -function get_tested_up_to_check_item( $verdict, $value ) { - $label = __( - 'Test your plugin with the latest version of WordPress.', - 'wporg-plugins' - ); - $status = ''; - - $info_text = sprintf( - /* translators: %s: The Tested Up to value */ - __( 'Tested up to: %s', 'wporg-plugins' ), - '' . $value . '', - ); - - if ( empty( $value ) ) { - $value = __( 'Unknown', 'wporg-plugins' ); - $status = 'error'; - $info_text = __( 'We weren\'t able to determine your "Tested up to" value.', 'wporg-plugins' ); - } elseif ( ! $verdict ) { - $status = 'warning'; - $info_text = sprintf( - /* translators: %s: URL to the plugin in the Plugin Directory */ - __( 'Tested up to is %1$s. Test it now in Playground and update your readme.txt. ', 'wporg-plugins' ), - '' . $value . '', - esc_url( - get_blueprint_url( - sprintf( - 'https://downloads.wordpress.org/plugin/%s.zip', - get_plugin_slug(), - ) - ) - ) - ); - } - - $content = get_release_item_content( $label, $info_text ); - - return get_release_check_item( $status, $content ); -} +$tested_up_to = get_post_meta( $block->context['postId'], 'release_tested', true ); $latest_release = get_latest_release( $release_post->post_parent ); $last_version = get_post_meta( $latest_release->ID, 'release_version', true ); @@ -215,10 +37,10 @@ function get_tested_up_to_check_item( $verdict, $value ) { ); /** - * Create initial state for the async-action-block. + * Create initial state for the wporg/publish-draft. */ wp_interactivity_state( - 'async-action-block', + 'wporg/publish-draft', array( 'hasConfirmed' => false, 'isPublishing' => false, @@ -231,11 +53,24 @@ function get_tested_up_to_check_item( $verdict, $value ) { ?>
    >
    +
    + +
    +
    +

    +
    + ' + ); + ?> +
    + -
    @@ -314,37 +148,61 @@ class="wp-block-button__link wp-element-button"
    -

    -

    +

    + ' . esc_html( $current_version ) . '' + ); + ?> +

    +

    + +

      +
    • + + + + + : + +
    • +
    • + + + : + +
    • +
    • + Engage with your audience: Monitor your support forum and plugin reviews for feedback.', 'wporg-plugins' ), + esc_url( Template::get_support_url( get_plugin() ) ), + esc_url( 'https://wordpress.org/support/plugin/' . $plugin_slug . '/reviews/' ) + ); + ?> +
    • +
    + Plugin Developer FAQ or join the #pluginreview channel on Slack.', 'wporg-plugins' ), + esc_url( 'https://developer.wordpress.org/plugins/wordpress-org/plugin-developer-faq/' ), + esc_url( 'https://wordpress.slack.com/archives/C1LBM36LC ' ) + ); + ?> + +

    -
    +
    - -
    - -
    -
    -

    -
    - ' - ); - ?> -
    diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish/style-index.css b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish/style-index.css index b57828e9fa..2e619ecb84 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish/style-index.css +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish/style-index.css @@ -4,6 +4,9 @@ .wp-block-wporg-release-publish label { display: block; } +.wp-block-wporg-release-publish form ul { + padding: 0; +} .wp-block-wporg-release-publish .wp-block-wporg-release-result-item > div:last-child > div { color: var(--wp--preset--color--charcoal-4); } diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish/view.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish/view.asset.php index 99607bc3d0..228dc8c9e6 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish/view.asset.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish/view.asset.php @@ -1 +1 @@ - array('@wordpress/interactivity'), 'version' => 'bbbe8e269ca99621503f', 'type' => 'module'); + array('@wordpress/interactivity'), 'version' => 'ee57c0cd5fa39c2b11c8', 'type' => 'module'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish/view.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish/view.js index 30b5cc3a47..8f5e2a01e3 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish/view.js +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish/view.js @@ -66,13 +66,13 @@ __webpack_require__.r(__webpack_exports__); const { state -} = (0,_wordpress_interactivity__WEBPACK_IMPORTED_MODULE_0__.store)('async-action-block', { +} = (0,_wordpress_interactivity__WEBPACK_IMPORTED_MODULE_0__.store)('wporg/publish-draft', { state: { get userHasConfirmed() { return state.hasConfirmed; }, get isDefaultState() { - return !state.isPublishing && !state.isPublished && !state.hasError; + return !state.isPublishing && !state.isPublished; }, get isPublishingState() { return state.isPublishing; @@ -129,6 +129,7 @@ const { state.errorMessage = error.message; state.hasError = true; state.isPublishing = false; + state.hasConfirmed = false; } finally { state.isPublishing = false; } diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-item/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-item/render.php index d2a7346ba1..6ef2bce419 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-item/render.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-result-item/render.php @@ -1,3 +1,13 @@ + +
  • >
    attributes['status'] ) : ?> diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/functions.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/functions.php index 4e38ba3d20..5502513a26 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/functions.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/functions.php @@ -461,7 +461,6 @@ function update_archive_description( $description ) { } add_filter( 'get_the_archive_description', __NAMESPACE__ . '\update_archive_description' ); - /** * Get's the plugin post object. * @@ -492,32 +491,8 @@ function get_plugin_slug() { return $plugin->post_name; } -/** - * Generates a Trac changeset link for a plugin. - * - * @param string $previous_version The previous version of the plugin. - * @param string $current_version The current version of the plugin. Default is 'trunk'. - * - * @return string The Trac changeset link. - */ -function get_trac_changeset_link( $previous_version, $current_version = 'trunk' ) { - $plugin_slug = get_plugin_slug(); - - $current_path = ( 'trunk' === $current_version ) - ? 'trunk' - : 'tags/' . $current_version; - - return sprintf( - 'https://plugins.trac.wordpress.org/changeset?old_path=/%1$s/%2$s&new_path=/%1$s/tags/%3$s', - $plugin_slug, - $current_path, - $previous_version - ); -} - /** * Get the releases for a plugin. - * * @return WP_Post[] The releases for the plugin. */ @@ -650,6 +625,29 @@ function get_revision_log_link( $commits ) { ); } +/** + * Generates a Trac changeset link for a plugin. + * + * @param string $previous_version The previous version of the plugin. + * @param string $current_version The current version of the plugin. Default is 'trunk'. + * + * @return string The Trac changeset link. + */ +function get_trac_changeset_link( $previous_version, $current_version = 'trunk' ) { + $plugin_slug = get_plugin_slug(); + + $current_path = ( 'trunk' === $current_version ) + ? 'trunk' + : 'tags/' . $current_version; + + return sprintf( + 'https://plugins.trac.wordpress.org/changeset?old_path=/%1$s/%2$s&new_path=/%1$s/tags/%3$s', + $plugin_slug, + $current_path, + $previous_version + ); +} + /** * Get the link to the revision log for a set of commits. * @@ -658,11 +656,9 @@ function get_revision_log_link( $commits ) { * @return string The link to the revision log. */ function get_revision_changeset_link( $commits ) { - global $post; - $plugin_slug = get_plugin_slug(); - if ( count( $commits ) < 2 ) { + if ( empty( $commits ) || count( $commits ) < 2 ) { return sprintf( 'https://plugins.trac.wordpress.org/log/%s/trunk', $plugin_slug @@ -680,81 +676,6 @@ function get_revision_changeset_link( $commits ) { ); } -/** - * Formats plugin check results into an HTML list. - * - * @param array $results The plugin check results. - * @return string HTML formatted results. - */ -function format_plugin_check_results( $results ) { - if ( empty( $results ) ) { - return '

    ' . __( 'No issues found.', 'wporg-plugins' ) . '

    '; - } - - $output = '
      '; - - foreach ( $results as $result ) { - $type_class = isset( $result['type'] ) ? strtolower( $result['type'] ) : ''; - - $output .= sprintf( - '
    • %1$s %2$s
    • ', - esc_html( $result['message'] ), - ! empty( $result['docs'] ) - ? sprintf( - '%s', - esc_url( $result['docs'] ), - __( 'More Information', 'wporg-plugins' ) - ) - : '' - ); - } - - $output .= '
    '; - - return $output; -} - -/** - * Get the test run message. - * - * @param object $plugin_check_errors The plugin check errors. - * - * @return string The test run message. - */ -function get_test_run_message( $plugin_check_errors ) { - $plugin_check_link = sprintf( - '%s', - esc_url( 'https://wordpress.org/plugins/plugin-check' ), - esc_html__( 'Plugin Check (PCP)', 'wporg-plugins' ) - ); - - if ( $plugin_check_errors['verdict'] ) { - return sprintf( - /* translators: %1$s is a link to the Plugin Check (PCP) tool. */ - __( '%1$s found no issues.', 'wporg-plugins' ), - $plugin_check_link - ); - } - - $result_count = count( $plugin_check_errors['results'] ); - $message = sprintf( - /* translators: %s number of issues reported from test. */ - _n( '%s issue', '%s issues', $result_count, 'wporg-plugins' ), - $result_count - ); - - return sprintf( - '
    %1$s%2$s
    ', - sprintf( - /* translators: %1$s is a link to the Plugin Check (PCP) tool. */ - __( '%1$s completed with %2$s.', 'wporg-plugins' ), - $plugin_check_link, - $message - ), - format_plugin_check_results( $plugin_check_errors['results'] ), - ); -} - /** * Get the download link for a plugin. * @@ -765,5 +686,5 @@ function get_test_run_message( $plugin_check_errors ) { function get_download_link( $version ) { $plugin = get_plugin(); - return Template::download_link( $plugin , $version ); -} \ No newline at end of file + return Template::download_link( $plugin, $version ); +} diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/package.json b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/package.json index ccd69eb011..24d01477e6 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/package.json +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/package.json @@ -13,8 +13,10 @@ "build:old:js": "wp-scripts build client/theme.js --webpack-src-dir=client --output-path=js/build", "build:js": "wp-scripts build --experimental-modules", "build": "npm run build:css && npm run build:js", - "format:js": "wp-scripts format client", - "lint:js": "wp-scripts lint-js client", + "format:client": "wp-scripts format client", + "format:src": "wp-scripts format src", + "lint:client": "wp-scripts lint-js client", + "lint:src": "wp-scripts lint-js src", "test": "echo \"Error: no test specified\" && exit 1" }, "repository": { diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/archive-page/block.json b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/archive-page/block.json index bdd31bf359..458d519862 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/archive-page/block.json +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/archive-page/block.json @@ -14,4 +14,4 @@ }, "editorScript": "file:./index.js", "render": "file:./render.php" -} \ No newline at end of file +} diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/archive-page/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/archive-page/index.js index 9e4580b21f..caf55461d5 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/archive-page/index.js +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/archive-page/index.js @@ -24,4 +24,4 @@ function Edit( { attributes, name } ) { registerBlockType( metadata.name, { edit: Edit, save: () => null, -} ); \ No newline at end of file +} ); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/card/block.json b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/card/block.json index be5a2f5c8f..7227401f8e 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/card/block.json +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/card/block.json @@ -22,4 +22,4 @@ "editorScript": "file:./index.js", "render": "file:./render.php", "style": "file:./style-index.css" -} \ No newline at end of file +} diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/card/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/card/index.js index a52cd322ed..103ad6662a 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/card/index.js +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/card/index.js @@ -25,4 +25,4 @@ function Edit( { attributes, name } ) { registerBlockType( metadata.name, { edit: Edit, save: () => null, -} ); \ No newline at end of file +} ); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/category-navigation/block.json b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/category-navigation/block.json index 678ddafdd7..91ca6e8e55 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/category-navigation/block.json +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/category-navigation/block.json @@ -14,4 +14,4 @@ }, "editorScript": "file:./index.js", "render": "file:./render.php" -} \ No newline at end of file +} diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/category-navigation/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/category-navigation/index.js index 9e4580b21f..caf55461d5 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/category-navigation/index.js +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/category-navigation/index.js @@ -24,4 +24,4 @@ function Edit( { attributes, name } ) { registerBlockType( metadata.name, { edit: Edit, save: () => null, -} ); \ No newline at end of file +} ); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/filter-bar/block.json b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/filter-bar/block.json index 020c38909c..2728ee9c23 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/filter-bar/block.json +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/filter-bar/block.json @@ -14,4 +14,4 @@ }, "editorScript": "file:./index.js", "render": "file:./render.php" -} \ No newline at end of file +} diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/filter-bar/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/filter-bar/index.js index 9e4580b21f..caf55461d5 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/filter-bar/index.js +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/filter-bar/index.js @@ -24,4 +24,4 @@ function Edit( { attributes, name } ) { registerBlockType( metadata.name, { edit: Edit, save: () => null, -} ); \ No newline at end of file +} ); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/front-page/block.json b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/front-page/block.json index 930ac76239..a7c1b37f52 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/front-page/block.json +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/front-page/block.json @@ -14,4 +14,4 @@ }, "editorScript": "file:./index.js", "render": "file:./render.php" -} \ No newline at end of file +} diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/front-page/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/front-page/index.js index 9e4580b21f..caf55461d5 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/front-page/index.js +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/front-page/index.js @@ -24,4 +24,4 @@ function Edit( { attributes, name } ) { registerBlockType( metadata.name, { edit: Edit, save: () => null, -} ); \ No newline at end of file +} ); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/plugin-card/block.json b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/plugin-card/block.json index 772f05a5d6..8029d1c7de 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/plugin-card/block.json +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/plugin-card/block.json @@ -15,4 +15,4 @@ "editorScript": "file:./index.js", "render": "file:./render.php", "viewScript": "file:./view.js" -} \ No newline at end of file +} diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/plugin-card/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/plugin-card/index.js index 9e4580b21f..caf55461d5 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/plugin-card/index.js +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/plugin-card/index.js @@ -24,4 +24,4 @@ function Edit( { attributes, name } ) { registerBlockType( metadata.name, { edit: Edit, save: () => null, -} ); \ No newline at end of file +} ); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/plugin-card/view.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/plugin-card/view.js index e4f12819de..367515e0cd 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/plugin-card/view.js +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/plugin-card/view.js @@ -1,12 +1,12 @@ /** - * Binds click events to navigate on plugin card click. + * Binds click events to navigate on plugin card click. */ -document.addEventListener( 'DOMContentLoaded', function() { +document.addEventListener( 'DOMContentLoaded', function () { var cards = document.querySelectorAll( '.plugin-cards li' ); if ( cards ) { - cards.forEach( function( card ) { - card.addEventListener( 'click', function( event ) { + cards.forEach( function ( card ) { + card.addEventListener( 'click', function ( event ) { var selectedText = window.getSelection().toString(); // Keep regular anchor tag function @@ -25,6 +25,6 @@ document.addEventListener( 'DOMContentLoaded', function() { window.location.href = link; } } ); - } ) + } ); } } ); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-checks/block.json b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-checks/block.json index 3a05c8ccb4..ad4b2f98d5 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-checks/block.json +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-checks/block.json @@ -16,4 +16,4 @@ "editorScript": "file:./index.js", "render": "file:./render.php", "style": "file:./style-index.css" -} \ No newline at end of file +} diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-checks/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-checks/index.js index a52cd322ed..103ad6662a 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-checks/index.js +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-checks/index.js @@ -25,4 +25,4 @@ function Edit( { attributes, name } ) { registerBlockType( metadata.name, { edit: Edit, save: () => null, -} ); \ No newline at end of file +} ); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-checks/index.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-checks/index.php index e0ba3960fc..a1f31b1b7f 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-checks/index.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-checks/index.php @@ -20,3 +20,100 @@ function init() { register_block_type( __DIR__ . '/../../../build/blocks/release-checks' ); } + +/** + * Formats plugin check results into an HTML list. + * + * @param array $results The plugin check results. + * @return string HTML formatted results. + */ +function format_plugin_check_results( $results ) { + if ( empty( $results ) ) { + return '

    ' . __( 'No issues found.', 'wporg-plugins' ) . '

    '; + } + + $output = '
      '; + + $grouped_by_file = array(); + foreach ( $results as $plugin_error ) { + $grouped_by_file[ $plugin_error['file'] ][] = $plugin_error; + } + + // Loop through grouped errors and output them + foreach ( $grouped_by_file as $file_name => $list ) { + $output .= '
    • '; + + // For some reason, we need to render the block otherwise it won't render. + $output .= do_blocks( sprintf( + ' +
      %s
      + ', + esc_html( $file_name ) + ) ); + + $output .= '
        '; + + foreach ( $list as $plugin_error ) { + $type_class = isset( $plugin_error['type'] ) ? strtolower( $plugin_error['type'] ) : ''; + + $output .= '
      • '; + $output .= esc_html( $plugin_error['message'] ); + if ( ! empty( $plugin_error['docs'] ) ) { + $output .= sprintf( + ' %s', + esc_url( $plugin_error['docs'] ), + __( 'Learn more', 'wporg-plugins' ) + ); + } + $output .= '
      • '; + } + + $output .= '
      '; + $output .= '
    • '; + } + + $output .= '
    '; + + return $output; +} + +/** + * Get the test run message. + * + * @param object $plugin_check_errors The plugin check errors. + * + * @return string The test run message. + */ +function get_test_run_message( $plugin_check_errors ) { + $plugin_check_link = sprintf( + '%s', + esc_url( 'https://wordpress.org/plugins/plugin-check' ), + esc_html__( 'Static code analysis', 'wporg-plugins' ) + ); + + if ( $plugin_check_errors['verdict'] ) { + return sprintf( + /* translators: %1$s is a link to the code review ruleset. */ + __( '%1$s found no issues.', 'wporg-plugins' ), + $plugin_check_link + ); + } + + $result_count = count( $plugin_check_errors['results'] ); + $message = sprintf( + /* translators: %s number of issues reported from test. */ + _n( '%s issue', '%s issues', $result_count, 'wporg-plugins' ), + $result_count + ); + + return sprintf( + '
    %1$s%2$s
    ', + sprintf( + /* translators: %1$s is a link to the Plugin Check (PCP) tool. */ + __( '%1$s completed with %2$s.', 'wporg-plugins' ), + $plugin_check_link, + $message + ), + format_plugin_check_results( $plugin_check_errors['results'] ), + ); +} diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-checks/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-checks/render.php index de7a1aa6b5..677afb712e 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-checks/render.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-checks/render.php @@ -4,8 +4,10 @@ * * @package wporg-plugins */ +use WordPressdotorg\Plugin_Directory\Readme\Validator as Readme_Validator; -use function WordPressdotorg\Plugin_Directory\Theme\{format_plugin_check_results, get_test_run_message}; +use function WordPressdotorg\Theme\Plugins_2024\ReleaseChecks\{format_plugin_check_results, get_test_run_message}; +use function WordPressdotorg\Plugin_Directory\Theme\{get_latest_release, get_plugin}; if ( ! current_user_can( 'plugin_admin_edit', $post ) ) { return; @@ -34,8 +36,36 @@ return; } +// Warnings are currently associated to the plugin post, not the release post. +$import_warnings = get_post_meta( get_plugin()->ID, '_import_warnings', true ); + +if ( $import_warnings ) { + // Back-compat; previously this was an array of numeric-indexed human-readable strings. + if ( ! wp_is_numeric_array( $import_warnings ) ) { + // error_code => error_data, convert to error_code => human_readable_error. + + foreach ( $import_warnings as $error_code => $error_data ) { + $import_warnings[ $error_code ] = Readme_Validator::instance()->translate_code_to_message( $error_code, $error_data ); + } + } + + $warnings = ''; + foreach ( $import_warnings as $error_code => $error_data ) { + + // Skip these warnings,they are not relevant to the release. + if ( in_array( $error_code, array( 'stable_tag_invalid_trunk_fallback', 'stable_tag_invalid' ), true ) ) { + continue; + } + + $blocks .= sprintf( + '
    %s
    ', + $error_data + ); + } +} + // Create a block with the overall status. -$status_block = sprintf( +$blocks = sprintf( '%2$s', $plugin_check_errors['verdict'] ? 'success' : 'warning', get_test_run_message( $plugin_check_errors ) @@ -44,5 +74,5 @@ printf( '
      %2$s
    ', wp_kses_data( get_block_wrapper_attributes() ), - do_blocks( $status_block ) // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped + do_blocks( $blocks ) // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-checks/style.scss b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-checks/style.scss index ea945baa0f..8c73fefe48 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-checks/style.scss +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-checks/style.scss @@ -1,6 +1,19 @@ +.wp-block-wporg-release-checks { + padding: 0; + + .wp-block-heading { + font-weight: 500; + font-size: var(--wp--preset--font-size--small); + } +} + .wp-block-wporg-release-checks-results { - margin-left: 16px; - list-style: disc; + list-style: none; + padding-left: 0; + + li ul { + list-style: disc; + } li:not(:last-child) { margin-bottom: 8px; diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-commits/block.json b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-commits/block.json index cf617d9e76..fe568645ad 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-commits/block.json +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-commits/block.json @@ -16,4 +16,4 @@ "editorScript": "file:./index.js", "render": "file:./render.php", "style": "file:./style-index.css" -} \ No newline at end of file +} diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-commits/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-commits/index.js index a52cd322ed..103ad6662a 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-commits/index.js +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-commits/index.js @@ -25,4 +25,4 @@ function Edit( { attributes, name } ) { registerBlockType( metadata.name, { edit: Edit, save: () => null, -} ); \ No newline at end of file +} ); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-commits/style.scss b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-commits/style.scss index dde5a9ffd6..62ffd8829d 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-commits/style.scss +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-commits/style.scss @@ -7,6 +7,7 @@ flex-direction: column; gap: 8px; list-style: none; + padding: 0; li { display: flex; diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-draft/block.json b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-draft/block.json index 067f4303c5..74229b7186 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-draft/block.json +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-draft/block.json @@ -17,4 +17,4 @@ "editorScript": "file:./index.js", "render": "file:./render.php", "style": "file:./style-index.css" -} \ No newline at end of file +} diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-draft/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-draft/index.js index a52cd322ed..103ad6662a 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-draft/index.js +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-draft/index.js @@ -25,4 +25,4 @@ function Edit( { attributes, name } ) { registerBlockType( metadata.name, { edit: Edit, save: () => null, -} ); \ No newline at end of file +} ); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-draft/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-draft/render.php index 1a0a987175..abd9c906d3 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-draft/render.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-draft/render.php @@ -83,7 +83,7 @@ printf( '
    %3$s
    ', - 'data-wp-interactive="async-action-block"', + 'data-wp-interactive="wporg/publish-draft"', wp_kses_data( get_block_wrapper_attributes() ), do_blocks( $markup ) // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-flags/block.json b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-flags/block.json index e65204caa4..fc62236ca3 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-flags/block.json +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-flags/block.json @@ -16,4 +16,4 @@ "editorScript": "file:./index.js", "render": "file:./render.php", "style": "file:./style-index.css" -} \ No newline at end of file +} diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-flags/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-flags/index.js index 9e4580b21f..caf55461d5 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-flags/index.js +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-flags/index.js @@ -24,4 +24,4 @@ function Edit( { attributes, name } ) { registerBlockType( metadata.name, { edit: Edit, save: () => null, -} ); \ No newline at end of file +} ); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-flags/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-flags/render.php index ead61b7095..ac2b084edd 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-flags/render.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-flags/render.php @@ -19,30 +19,6 @@ return; } -// Warnings are currently associated to the plugin post, not the release post. -$import_warnings = get_post_meta( $release_post->post_parent, '_import_warnings', true ); - -if ( ! $import_warnings ) { - return; -} - -// Back-compat; previously this was an array of numeric-indexed human-readable strings. -if ( ! wp_is_numeric_array( $import_warnings ) ) { - // error_code => error_data, convert to error_code => human_readable_error. - foreach ( $import_warnings as $error_code => $error_data ) { - $import_warnings[ $error_code ] = Readme_Validator::instance()->translate_code_to_message( $error_code, $error_data ); - } -} - -$warnings = ''; -foreach ( $import_warnings as $error_code => $error_data ) { - $warnings .= sprintf( - '

    %2$s

    ', - 'warning', - $error_data - ); -} - $heading = sprintf( '

    %s

    diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-menu-options/block.json b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-menu-options/block.json index ea4f401984..d494f65b59 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-menu-options/block.json +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-menu-options/block.json @@ -1,16 +1,16 @@ { - "apiVersion": 2, - "name": "wporg/release-menu-options", - "title": "Release Menu Options", - "category": "widgets", - "icon": "menu", - "description": "Display the dropdown menu option for a release.", - "supports": { - "html": false - }, - "usesContext": [ "postId" ], - "textdomain": "wporg", - "editorScript": "file:./index.js", + "apiVersion": 2, + "name": "wporg/release-menu-options", + "title": "Release Menu Options", + "category": "widgets", + "icon": "menu", + "description": "Display the dropdown menu option for a release.", + "supports": { + "html": false + }, + "usesContext": [ "postId" ], + "textdomain": "wporg", + "editorScript": "file:./index.js", "style": "file:./style-index.css", - "render": "file:./render.php" -} \ No newline at end of file + "render": "file:./render.php" +} diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-menu-options/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-menu-options/index.js index a52cd322ed..103ad6662a 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-menu-options/index.js +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-menu-options/index.js @@ -25,4 +25,4 @@ function Edit( { attributes, name } ) { registerBlockType( metadata.name, { edit: Edit, save: () => null, -} ); \ No newline at end of file +} ); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-page/block.json b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-page/block.json index 4d6f5fc292..426def72d5 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-page/block.json +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-page/block.json @@ -18,4 +18,4 @@ "render": "file:./render.php", "style": "file:./style-index.css", "viewScriptModule": "file:./view.js" -} \ No newline at end of file +} diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-page/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-page/index.js index a52cd322ed..103ad6662a 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-page/index.js +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-page/index.js @@ -25,4 +25,4 @@ function Edit( { attributes, name } ) { registerBlockType( metadata.name, { edit: Edit, save: () => null, -} ); \ No newline at end of file +} ); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-page/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-page/render.php index f939f21d4b..9fae227ef5 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-page/render.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-page/render.php @@ -34,22 +34,21 @@ HTML; /** - * Create initial state for the async-action-block. + * Create initial state for the wporg/publish-draft. */ wp_interactivity_state( - 'async-action-block', + 'wporg/publish-draft', array( 'isCreatingRelease' => false, ) ); /** - * Create initial context for the async-action-block. + * Create initial context for the wporg/publish-draft. */ - printf( '
    %3$s
    ', wp_kses_data( get_block_wrapper_attributes() ), - 'data-wp-interactive="async-action-block"', + 'data-wp-interactive="wporg/publish-draft"', do_blocks( $markup ) // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-page/style.scss b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-page/style.scss index aca0d16f71..31d6b6c666 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-page/style.scss +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-page/style.scss @@ -3,6 +3,5 @@ ul { margin-top: var(--wp--preset--spacing--10); - padding: 0; } } \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-page/view.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-page/view.js index 5047ca83e2..66f187290c 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-page/view.js +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-page/view.js @@ -1,11 +1,11 @@ /** * WordPress dependencies */ -import { store, getContext } from '@wordpress/interactivity'; +import { store } from '@wordpress/interactivity'; -const { state } = store('async-action-block', { +const { state } = store( 'wporg/publish-draft', { actions: { - handlePreSubmit(event) { + handlePreSubmit( event ) { event.preventDefault(); state.isCreatingRelease = true; @@ -13,12 +13,12 @@ const { state } = store('async-action-block', { '.wp-block-wporg-release-page' ); - if (element) { - element.scrollIntoView({ + if ( element ) { + element.scrollIntoView( { behavior: 'instant', block: 'center', - }); + } ); } }, }, -}); +} ); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-publish/block.json b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-publish/block.json index 72cf2534ae..e7510d18ae 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-publish/block.json +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-publish/block.json @@ -18,4 +18,4 @@ "render": "file:./render.php", "style": "file:./style-index.css", "viewScriptModule": "file:./view.js" -} \ No newline at end of file +} diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-publish/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-publish/index.js index a52cd322ed..103ad6662a 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-publish/index.js +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-publish/index.js @@ -25,4 +25,4 @@ function Edit( { attributes, name } ) { registerBlockType( metadata.name, { edit: Edit, save: () => null, -} ); \ No newline at end of file +} ); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-publish/index.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-publish/index.php index 52957ada81..8052b033db 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-publish/index.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-publish/index.php @@ -8,6 +8,8 @@ namespace WordPressdotorg\Theme\Plugins_2024\ReleasePublish; +use function WordPressdotorg\Plugin_Directory\Theme\{get_blueprint_url, get_latest_release, get_plugin_slug, get_plugin, get_revision_changeset_link}; + add_action( 'init', __NAMESPACE__ . '\init' ); /** @@ -20,3 +22,180 @@ function init() { register_block_type( __DIR__ . '/../../../build/blocks/release-publish' ); } + + +/** + * Returns whether the tested_up_to value is recent. + * + * @param string $tested_up_to The tested up to value. + * + * @return bool Whether the tested up to value is recent. + */ +function has_recently_been_tested( $tested_up_to ) { + global $wp_version; + + // If the tested up to value is empty, it's not recent. + if ( empty( $tested_up_to ) ) { + return false; + } + + $latest_release = $wp_version; + + if ( defined( 'WP_CORE_STABLE_BRANCH' ) ) { + $latest_release = WP_CORE_STABLE_BRANCH; + } + + $tested_major = (int) explode( '.', $tested_up_to )[0]; + $latest_major = (int) explode( '.', $latest_release )[0]; + + return $tested_major >= $latest_major; +} + +/** + * Generate the HTML for a release item content block. + * + * @param string $label The label for the item. + * @param string $content The additional content or description. + * @return string The formatted HTML content for the release item. + */ +function get_release_item_content( $label, $content ) { + return sprintf( + '
    %1$s
    %2$s
    ', + esc_html( $label ), + wp_kses_post( $content ) + ); +} + +/** + * Generate a release check item block with a specific status. + * + * @param string $status The status of the check item ('success' or 'error'). + * @param string $content The content to display inside the block. + * @return string The formatted block content. + */ +function get_release_check_item( $status, $content ) { + return do_blocks( + sprintf( + '%2$s', + esc_attr( $status ), + $content + ) + ); +} + +/** + * Generate the block content for the version number check item. + * + * @return string The block content. + */ +function get_changelog_check_item() { + $label = __( 'Update your changelog with key changes.', 'wporg-plugins' ); + $info_text = sprintf( + 'Learn more about writing useful changelogs.', + esc_url( 'https://developer.wordpress.org/plugins/wordpress-org/plugin-developer-faq/#what-should-be-in-my-changelog' ), + ); + + $content = get_release_item_content( $label, $info_text ); + + return get_release_check_item( 'default', $content ); +} + +/** + * Generate the block content for the version number check item. + * + * @param bool $post Release post. + * + * @return string The block content. + */ +function get_view_diff_check_item( $post ) { + $label = __( 'Review your changes.', 'wporg-plugins' ); + $commits = get_post_meta( $post->ID, 'release_commit_log', true ); + $info_text = sprintf( + /* translators: %s: URL to the plugin in the Plugin Directory */ + __( 'Double-check your changeset before publishing.', 'wporg-plugins' ), + esc_url( get_revision_changeset_link( $commits ) ) + ); + $content = get_release_item_content( $label, $info_text ); + + return get_release_check_item( 'default', $content ); +} + +/** + * Generate the block content for the version number check item. + * + * @param bool $verdict Whether the version number is valid. + * @param string $value The current version number. + * + * @return string The block content. + */ +function get_version_number_check_item( $verdict, $value ) { + $label = __( 'Increment your version number.', 'wporg-plugins' ); + + $info_text = sprintf( + /* translators: %s: The current version number */ + __( 'New version: %s', 'wporg-plugins' ), + '' . $value . '', + ); + + $status = ''; + + if ( ! $verdict ) { + $status = 'error'; + $info_text = sprintf( + /* translators: %s: The current version number */ + __( 'Your plugin\'s version number %s must be incremented before you can publish.', 'wporg-plugins' ), + '' . $value . '', + ); + } + + $content = get_release_item_content( $label, $info_text ); + + return get_release_check_item( $status, $content ); +} + +/** + * Generate the block content for the "Tested up to" check item. + * + * @param bool $verdict Whether the tested up to value is recent. + * @param string $value The tested up to value. + * + * @return string The block content. + */ +function get_tested_up_to_check_item( $verdict, $value ) { + $label = __( + 'Test your plugin with the latest version of WordPress.', + 'wporg-plugins' + ); + $status = ''; + + $info_text = sprintf( + /* translators: %s: The Tested Up to value */ + __( 'Tested up to: %s', 'wporg-plugins' ), + '' . $value . '', + ); + + if ( empty( $value ) ) { + $value = __( 'Unknown', 'wporg-plugins' ); + $status = 'error'; + $info_text = __( 'We weren\'t able to determine your "Tested up to" value.', 'wporg-plugins' ); + } elseif ( ! $verdict ) { + $status = 'warning'; + $info_text = sprintf( + /* translators: %s: URL to the plugin in the Plugin Directory */ + __( 'Tested up to is %1$s. Test it now in Playground and update your readme.txt. ', 'wporg-plugins' ), + '' . $value . '', + esc_url( + get_blueprint_url( + sprintf( + 'https://downloads.wordpress.org/plugin/%s.zip', + get_plugin_slug(), + ) + ) + ) + ); + } + + $content = get_release_item_content( $label, $info_text ); + + return get_release_check_item( $status, $content ); +} diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-publish/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-publish/render.php index 21da591899..e26547674f 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-publish/render.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-publish/render.php @@ -5,7 +5,9 @@ * @package WordPressdotorg\Plugin_Directory */ -use function WordPressdotorg\Plugin_Directory\Theme\{get_blueprint_url, get_latest_release, get_plugin_slug, get_revision_changeset_link}; +use WordPressdotorg\Plugin_Directory\Template; +use function WordPressdotorg\Plugin_Directory\Theme\{get_latest_release, get_plugin, get_plugin_slug}; +use function WordPressdotorg\Theme\Plugins_2024\ReleasePublish\{has_recently_been_tested, get_view_diff_check_item, get_changelog_check_item, get_tested_up_to_check_item, get_version_number_check_item}; // Ensure the block context has a valid post ID. if ( empty( $block->context['postId'] ) ) { @@ -22,182 +24,6 @@ $current_version = get_post_meta( $block->context['postId'], 'release_version', true ); $tested_up_to = get_post_meta( $block->context['postId'], 'release_tested', true ); -/** - * Returns whether the tested_up_to value is recent. - * - * @param string $tested_up_to The tested up to value. - * - * @return bool Whether the tested up to value is recent. - */ -function has_recently_been_tested( $tested_up_to ) { - global $wp_version; - - // If the tested up to value is empty, it's not recent. - if ( empty( $tested_up_to ) ) { - return false; - } - - $latest_release = $wp_version; - - if ( defined( 'WP_CORE_STABLE_BRANCH' ) ) { - $latest_release = WP_CORE_STABLE_BRANCH; - } - - $tested_major = (int) explode( '.', $tested_up_to )[0]; - $latest_major = (int) explode( '.', $latest_release )[0]; - - return $tested_major >= $latest_major; -} - -/** - * Generate the HTML for a release item content block. - * - * @param string $label The label for the item. - * @param string $content The additional content or description. - * @return string The formatted HTML content for the release item. - */ -function get_release_item_content( $label, $content ) { - return sprintf( - '
    %1$s
    %2$s
    ', - esc_html( $label ), - wp_kses_post( $content ) - ); -} - -/** - * Generate a release check item block with a specific status. - * - * @param string $status The status of the check item ('success' or 'error'). - * @param string $content The content to display inside the block. - * @return string The formatted block content. - */ -function get_release_check_item( $status, $content ) { - return do_blocks( - sprintf( - '%2$s', - esc_attr( $status ), - $content - ) - ); -} - -/** - * Generate the block content for the version number check item. - * - * @return string The block content. - */ -function get_changelog_check_item() { - $label = __( 'Update your changelog with key changes.', 'wporg-plugins' ); - $info_text = sprintf( - 'Learn more about writing useful changelogs.', - esc_url( 'https://developer.wordpress.org/plugins/wordpress-org/plugin-developer-faq/#what-should-be-in-my-changelog' ), - ); - - $content = get_release_item_content( $label, $info_text ); - - return get_release_check_item( 'default', $content ); -} - -/** - * Generate the block content for the version number check item. - * - * @param bool $post Release post. - * - * @return string The block content. - */ -function get_view_diff_check_item( $post ) { - $label = __( 'Review your changes.', 'wporg-plugins' ); - $commits = get_post_meta( $post->ID, 'release_commit_log', true ); - $info_text = sprintf( - /* translators: %s: URL to the plugin in the Plugin Directory */ - __( 'Double-check your changeset before publishing.', 'wporg-plugins' ), - esc_url( get_revision_changeset_link( $commits ) ) - ); - $content = get_release_item_content( $label, $info_text ); - - return get_release_check_item( 'default', $content ); -} - -/** - * Generate the block content for the version number check item. - * - * @param bool $verdict Whether the version number is valid. - * @param string $value The current version number. - * - * @return string The block content. - */ -function get_version_number_check_item( $verdict, $value ) { - $label = __( 'Increment your version number.', 'wporg-plugins' ); - - $info_text = sprintf( - /* translators: %s: The current version number */ - __( 'New version: %s', 'wporg-plugins' ), - '' . $value . '', - ); - - $status = ''; - - if ( ! $verdict ) { - $status = 'error'; - $info_text = sprintf( - /* translators: %s: The current version number */ - __( 'Your plugin\'s version number %s must be incremented before you can publish.', 'wporg-plugins' ), - '' . $value . '', - ); - } - - $content = get_release_item_content( $label, $info_text ); - - return get_release_check_item( $status, $content ); -} - -/** - * Generate the block content for the "Tested up to" check item. - * - * @param bool $verdict Whether the tested up to value is recent. - * @param string $value The tested up to value. - * - * @return string The block content. - */ -function get_tested_up_to_check_item( $verdict, $value ) { - $label = __( - 'Test your plugin with the latest version of WordPress.', - 'wporg-plugins' - ); - $status = ''; - - $info_text = sprintf( - /* translators: %s: The Tested Up to value */ - __( 'Tested up to: %s', 'wporg-plugins' ), - '' . $value . '', - ); - - if ( empty( $value ) ) { - $value = __( 'Unknown', 'wporg-plugins' ); - $status = 'error'; - $info_text = __( 'We weren\'t able to determine your "Tested up to" value.', 'wporg-plugins' ); - } elseif ( ! $verdict ) { - $status = 'warning'; - $info_text = sprintf( - /* translators: %s: URL to the plugin in the Plugin Directory */ - __( 'Tested up to is %1$s. Test it now in Playground and update your readme.txt. ', 'wporg-plugins' ), - '' . $value . '', - esc_url( - get_blueprint_url( - sprintf( - 'https://downloads.wordpress.org/plugin/%s.zip', - get_plugin_slug(), - ) - ) - ) - ); - } - - $content = get_release_item_content( $label, $info_text ); - - return get_release_check_item( $status, $content ); -} - $latest_release = get_latest_release( $release_post->post_parent ); $last_version = get_post_meta( $latest_release->ID, 'release_version', true ); $version_pass = version_compare( $current_version, $last_version, '>' ); @@ -211,10 +37,10 @@ function get_tested_up_to_check_item( $verdict, $value ) { ); /** - * Create initial state for the async-action-block. + * Create initial state for the wporg/publish-draft. */ wp_interactivity_state( - 'async-action-block', + 'wporg/publish-draft', array( 'hasConfirmed' => false, 'isPublishing' => false, @@ -227,11 +53,24 @@ function get_tested_up_to_check_item( $verdict, $value ) { ?>
    >
    +
    + +
    +
    +

    +
    + ' + ); + ?> +
    + -
    @@ -310,37 +148,61 @@ class="wp-block-button__link wp-element-button"
    -

    -

    +

    + ' . esc_html( $current_version ) . '' + ); + ?> +

    +

    + +

      +
    • + + + + + : + +
    • +
    • + + + : + +
    • +
    • + Engage with your audience: Monitor your support forum and plugin reviews for feedback.', 'wporg-plugins' ), + esc_url( Template::get_support_url( get_plugin() ) ), + esc_url( 'https://wordpress.org/support/plugin/' . $plugin_slug . '/reviews/' ) + ); + ?> +
    • +
    + Plugin Developer FAQ or join the #pluginreview channel on Slack.', 'wporg-plugins' ), + esc_url( 'https://developer.wordpress.org/plugins/wordpress-org/plugin-developer-faq/' ), + esc_url( 'https://wordpress.slack.com/archives/C1LBM36LC ' ) + ); + ?> + +

    -
    +
    - -
    - -
    -
    -

    -
    - ' - ); - ?> -
    diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-publish/style.scss b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-publish/style.scss index c5b469231f..7c2675cc11 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-publish/style.scss +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-publish/style.scss @@ -3,6 +3,10 @@ display: block; } + form ul { + padding: 0; + } + .wp-block-wporg-release-result-item > div:last-child > div { color: var(--wp--preset--color--charcoal-4); } diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-publish/view.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-publish/view.js index 8e18cb48f0..c33e55dec0 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-publish/view.js +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-publish/view.js @@ -3,13 +3,13 @@ */ import { store, getContext } from '@wordpress/interactivity'; -const { state } = store('async-action-block', { +const { state } = store( 'wporg/publish-draft', { state: { get userHasConfirmed() { return state.hasConfirmed; }, get isDefaultState() { - return ! state.isPublishing && !state.isPublished && !state.hasError; + return ! state.isPublishing && ! state.isPublished; }, get isPublishingState() { return state.isPublishing; @@ -20,9 +20,9 @@ const { state } = store('async-action-block', { }, actions: { handleReleaseConfirm() { - state.hasConfirmed = !state.hasConfirmed; + state.hasConfirmed = ! state.hasConfirmed; }, - handleBackClick(event) { + handleBackClick( event ) { event.preventDefault(); state.isCreatingRelease = false; @@ -32,7 +32,7 @@ const { state } = store('async-action-block', { handlePageReload() { window.location.reload(); }, - *handleSubmit(event) { + *handleSubmit( event ) { event.preventDefault(); state.isPublishing = true; @@ -41,38 +41,38 @@ const { state } = store('async-action-block', { const { pluginSlug, nonce, apiURL } = getContext(); try { - const response = yield fetch( - apiURL, - { - method: 'POST', - headers: { - 'Content-Type': 'application/json', - 'X-WP-Nonce': nonce, - }, - body: JSON.stringify({ - plugin_slug: pluginSlug, - }), - } - ); + const response = yield fetch( apiURL, { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + 'X-WP-Nonce': nonce, + }, + body: JSON.stringify( { + plugin_slug: pluginSlug, + } ), + } ); - if( ! response.ok ) { + if ( ! response.ok ) { try { const error = yield response.json(); throw new Error( error.message ); - } catch ( error ) { // Handle cases where json is not returned, like a gateway timeout. - throw new Error( 'An error occurred while publishing the release.' ); + } catch ( error ) { + // Handle cases where json is not returned, like a gateway timeout. + throw new Error( + 'An error occurred while publishing the release.' + ); } } state.isPublished = true; - - } catch (error) { + } catch ( error ) { state.errorMessage = error.message; state.hasError = true; state.isPublishing = false; + state.hasConfirmed = false; } finally { state.isPublishing = false; } }, - } -}); + }, +} ); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-result-item/block.json b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-result-item/block.json index 047300ee75..efcd137521 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-result-item/block.json +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-result-item/block.json @@ -20,4 +20,4 @@ "editorScript": "file:./index.js", "render": "file:./render.php", "style": "file:./style-index.css" -} \ No newline at end of file +} diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-result-item/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-result-item/index.js index a52cd322ed..103ad6662a 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-result-item/index.js +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-result-item/index.js @@ -25,4 +25,4 @@ function Edit( { attributes, name } ) { registerBlockType( metadata.name, { edit: Edit, save: () => null, -} ); \ No newline at end of file +} ); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-result-item/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-result-item/render.php index d2a7346ba1..6ef2bce419 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-result-item/render.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-result-item/render.php @@ -1,3 +1,13 @@ + +
  • >
    attributes['status'] ) : ?> diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/search-page/block.json b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/search-page/block.json index 55a1b32766..feab8d3ef9 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/search-page/block.json +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/search-page/block.json @@ -14,4 +14,4 @@ }, "editorScript": "file:./index.js", "render": "file:./render.php" -} \ No newline at end of file +} diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/search-page/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/search-page/index.js index 9e4580b21f..caf55461d5 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/search-page/index.js +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/search-page/index.js @@ -24,4 +24,4 @@ function Edit( { attributes, name } ) { registerBlockType( metadata.name, { edit: Edit, save: () => null, -} ); \ No newline at end of file +} ); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/single-plugin/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/single-plugin/index.js index 9e4580b21f..caf55461d5 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/single-plugin/index.js +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/single-plugin/index.js @@ -24,4 +24,4 @@ function Edit( { attributes, name } ) { registerBlockType( metadata.name, { edit: Edit, save: () => null, -} ); \ No newline at end of file +} ); From 0fd427a7d6ff6acb246f840f9429a802e605f118 Mon Sep 17 00:00:00 2001 From: StevenDufresne Date: Thu, 12 Dec 2024 01:30:04 +0000 Subject: [PATCH 60/84] Move the error messge to context. --- .../build/blocks/release-publish/render.php | 7 ++++--- .../build/blocks/release-publish/view.asset.php | 2 +- .../build/blocks/release-publish/view.js | 5 +++-- .../src/blocks/release-publish/render.php | 7 ++++--- .../wporg-plugins-2024/src/blocks/release-publish/view.js | 4 ++-- 5 files changed, 14 insertions(+), 11 deletions(-) diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish/render.php index e26547674f..774b5406da 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish/render.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish/render.php @@ -31,9 +31,10 @@ $plugin_slug = get_plugin_slug(); $form_context = array( - 'pluginSlug' => $plugin_slug, - 'nonce' => wp_create_nonce( 'wp_rest' ), - 'apiURL' => esc_url( rest_url( 'plugins/v2/plugin/' . $plugin_slug . '/publish' ) ), + 'pluginSlug' => $plugin_slug, + 'nonce' => wp_create_nonce( 'wp_rest' ), + 'apiURL' => esc_url( rest_url( 'plugins/v2/plugin/' . $plugin_slug . '/publish' ) ), + 'genericErrorMessage' => __( 'An error occurred while publishing the release.', 'wporg-plugins' ), ); /** diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish/view.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish/view.asset.php index 228dc8c9e6..5c55fb1a42 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish/view.asset.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish/view.asset.php @@ -1 +1 @@ - array('@wordpress/interactivity'), 'version' => 'ee57c0cd5fa39c2b11c8', 'type' => 'module'); + array('@wordpress/interactivity'), 'version' => '37a70276480c6c756953', 'type' => 'module'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish/view.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish/view.js index 8f5e2a01e3..02c43c36c0 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish/view.js +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish/view.js @@ -102,7 +102,8 @@ const { const { pluginSlug, nonce, - apiURL + apiURL, + genericErrorMessage } = (0,_wordpress_interactivity__WEBPACK_IMPORTED_MODULE_0__.getContext)(); try { const response = yield fetch(apiURL, { @@ -121,7 +122,7 @@ const { throw new Error(error.message); } catch (error) { // Handle cases where json is not returned, like a gateway timeout. - throw new Error('An error occurred while publishing the release.'); + throw new Error(genericErrorMessage); } } state.isPublished = true; diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-publish/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-publish/render.php index e26547674f..774b5406da 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-publish/render.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-publish/render.php @@ -31,9 +31,10 @@ $plugin_slug = get_plugin_slug(); $form_context = array( - 'pluginSlug' => $plugin_slug, - 'nonce' => wp_create_nonce( 'wp_rest' ), - 'apiURL' => esc_url( rest_url( 'plugins/v2/plugin/' . $plugin_slug . '/publish' ) ), + 'pluginSlug' => $plugin_slug, + 'nonce' => wp_create_nonce( 'wp_rest' ), + 'apiURL' => esc_url( rest_url( 'plugins/v2/plugin/' . $plugin_slug . '/publish' ) ), + 'genericErrorMessage' => __( 'An error occurred while publishing the release.', 'wporg-plugins' ), ); /** diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-publish/view.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-publish/view.js index c33e55dec0..f4bdd843ad 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-publish/view.js +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-publish/view.js @@ -38,7 +38,7 @@ const { state } = store( 'wporg/publish-draft', { state.isPublishing = true; state.errorMessage = ''; - const { pluginSlug, nonce, apiURL } = getContext(); + const { pluginSlug, nonce, apiURL, genericErrorMessage } = getContext(); try { const response = yield fetch( apiURL, { @@ -59,7 +59,7 @@ const { state } = store( 'wporg/publish-draft', { } catch ( error ) { // Handle cases where json is not returned, like a gateway timeout. throw new Error( - 'An error occurred while publishing the release.' + genericErrorMessage ); } } From 4aa28a3853177f6dc57a90e83592e294d465d3ce Mon Sep 17 00:00:00 2001 From: StevenDufresne Date: Thu, 12 Dec 2024 02:18:15 +0000 Subject: [PATCH 61/84] merger import warnings into plugin check errors. --- .../build/blocks/release-checks/render.php | 27 +++++++++---------- .../build/blocks/release-draft/render.php | 25 ++++++++++------- .../blocks/release-draft/style-index.css | 1 + .../build/blocks/release-page/render.php | 4 --- .../build/blocks/release-publish/render.php | 6 ++++- .../pub/wporg-plugins-2024/functions.php | 15 +++++++++++ .../pub/wporg-plugins-2024/package.json | 4 +-- .../src/blocks/release-checks/index.php | 24 ++++++++--------- .../src/blocks/release-checks/render.php | 27 +++++++++---------- .../src/blocks/release-draft/render.php | 25 ++++++++++------- .../src/blocks/release-draft/style.scss | 2 +- .../src/blocks/release-page/render.php | 4 --- .../src/blocks/release-publish/render.php | 6 ++++- 13 files changed, 96 insertions(+), 74 deletions(-) diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks/render.php index 677afb712e..6e857fea12 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks/render.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks/render.php @@ -39,28 +39,27 @@ // Warnings are currently associated to the plugin post, not the release post. $import_warnings = get_post_meta( get_plugin()->ID, '_import_warnings', true ); -if ( $import_warnings ) { - // Back-compat; previously this was an array of numeric-indexed human-readable strings. - if ( ! wp_is_numeric_array( $import_warnings ) ) { - // error_code => error_data, convert to error_code => human_readable_error. +// Merge in warnings into the plugin check errors. +if ( ! empty( $import_warnings ) && ! wp_is_numeric_array( $import_warnings ) ) { - foreach ( $import_warnings as $error_code => $error_data ) { - $import_warnings[ $error_code ] = Readme_Validator::instance()->translate_code_to_message( $error_code, $error_data ); - } - } - - $warnings = ''; foreach ( $import_warnings as $error_code => $error_data ) { - // Skip these warnings,they are not relevant to the release. + // These warnings exist because they haven't release it. + // TODO: Remove the logic that sets those warnings. if ( in_array( $error_code, array( 'stable_tag_invalid_trunk_fallback', 'stable_tag_invalid' ), true ) ) { continue; } - $blocks .= sprintf( - '
    %s
    ', - $error_data + $plugin_check_errors['results'][] = array( + 'line' => 0, + 'column' => 0, + 'type' => 'WARNING', + 'code' => $error_code, + 'message' => Readme_Validator::instance()->translate_code_to_message( $error_code, $error_data ), + 'file' => 'readme.txt', ); + + $plugin_check_errors['verdict'] = false; } } diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft/render.php index abd9c906d3..10afaa0461 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft/render.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft/render.php @@ -5,7 +5,9 @@ * @package wporg-plugins */ -if ( ! current_user_can( 'plugin_admin_edit', $post ) ) { +use function WordPressdotorg\Plugin_Directory\Theme\{get_plugin_slug, user_can_edit_plugin}; + +if ( ! user_can_edit_plugin() ) { return; } @@ -42,14 +44,17 @@ $new_version = get_post_meta( get_the_ID(), 'release_version', true ); - -$intro_text = __( 'There are unpublished changes in your trunk folder.', 'wporg-plugins' ); -$button_text = __( 'Create release', 'wporg-plugins' ); -$publish_title = __( 'Create release', 'wporg-plugins' ); -$post_title = sprintf( - /* translators: %s: New version number */ +$publish_text = __( 'Create release', 'wporg-plugins' ); +$slug = get_plugin_slug(); +$intro_text = sprintf( + /* translators: %s: URL to the plugin's trunk folder */ + __( 'There are unpublished changes in your trunk folder.', 'wporg-plugins' ), + esc_url( "https://plugins.trac.wordpress.org/browser/{$slug}/" ) +); +$post_title = sprintf( + /* translators: %s: Plugin version number */ __( 'Trunk (v.%s)', 'wporg-plugins' ), - $new_version + esc_html( $new_version ) ); $markup = <<
    @@ -75,7 +80,7 @@
  • - +
    diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft/style-index.css b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft/style-index.css index 9358999193..581067214d 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft/style-index.css +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft/style-index.css @@ -2,6 +2,7 @@ !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/blocks/release-draft/style.scss ***! \************************************************************************************************************************************************************************************************************************************************************/ .wp-block-wporg-release-draft { + margin-bottom: var(--wp--preset--spacing--20); font-size: var(--wp--preset--font-size--small); } diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-page/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-page/render.php index 9fae227ef5..5ffcd135d6 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-page/render.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-page/render.php @@ -25,10 +25,6 @@
    - - - -
    HTML; diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish/render.php index 774b5406da..1e4f5bbbf7 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish/render.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish/render.php @@ -6,9 +6,13 @@ */ use WordPressdotorg\Plugin_Directory\Template; -use function WordPressdotorg\Plugin_Directory\Theme\{get_latest_release, get_plugin, get_plugin_slug}; +use function WordPressdotorg\Plugin_Directory\Theme\{get_latest_release, get_plugin, get_plugin_slug, user_can_edit_plugin}; use function WordPressdotorg\Theme\Plugins_2024\ReleasePublish\{has_recently_been_tested, get_view_diff_check_item, get_changelog_check_item, get_tested_up_to_check_item, get_version_number_check_item}; +if ( ! user_can_edit_plugin() ) { + return; +} + // Ensure the block context has a valid post ID. if ( empty( $block->context['postId'] ) ) { return; diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/functions.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/functions.php index 5502513a26..c3b28f81d7 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/functions.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/functions.php @@ -688,3 +688,18 @@ function get_download_link( $version ) { return Template::download_link( $plugin, $version ); } + +/** + * Get the support URL for a plugin. + * + * @return bool Whether the can edit this plugin. + */ +function user_can_edit_plugin() { + $plugin = get_plugin(); + + if ( empty( $plugin ) ) { + return false; + } + + return current_user_can( 'plugin_admin_edit', $plugin ); +} diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/package.json b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/package.json index 24d01477e6..f85f0f58ba 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/package.json +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/package.json @@ -14,9 +14,9 @@ "build:js": "wp-scripts build --experimental-modules", "build": "npm run build:css && npm run build:js", "format:client": "wp-scripts format client", - "format:src": "wp-scripts format src", + "format:src": "wp-scripts format src", "lint:client": "wp-scripts lint-js client", - "lint:src": "wp-scripts lint-js src", + "lint:src": "wp-scripts lint-js src", "test": "echo \"Error: no test specified\" && exit 1" }, "repository": { diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-checks/index.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-checks/index.php index a1f31b1b7f..8e40fb80f7 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-checks/index.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-checks/index.php @@ -36,28 +36,26 @@ function format_plugin_check_results( $results ) { $grouped_by_file = array(); foreach ( $results as $plugin_error ) { - $grouped_by_file[ $plugin_error['file'] ][] = $plugin_error; + $grouped_by_file[ strtolower( $plugin_error['file'] ) ][] = $plugin_error; } - // Loop through grouped errors and output them foreach ( $grouped_by_file as $file_name => $list ) { $output .= '
  • '; // For some reason, we need to render the block otherwise it won't render. - $output .= do_blocks( sprintf( - ' -
    %s
    - ', - esc_html( $file_name ) - ) ); + $output .= do_blocks( + sprintf( + ' +
    %s
    + ', + esc_html( $file_name ) + ) + ); $output .= '
      '; - foreach ( $list as $plugin_error ) { - $type_class = isset( $plugin_error['type'] ) ? strtolower( $plugin_error['type'] ) : ''; - $output .= '
    • '; - $output .= esc_html( $plugin_error['message'] ); + $output .= wp_kses_post( $plugin_error['message'] ); if ( ! empty( $plugin_error['docs'] ) ) { $output .= sprintf( ' %s', @@ -67,8 +65,8 @@ function format_plugin_check_results( $results ) { } $output .= '
    • '; } - $output .= '
    '; + $output .= '
  • '; } diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-checks/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-checks/render.php index 677afb712e..6e857fea12 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-checks/render.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-checks/render.php @@ -39,28 +39,27 @@ // Warnings are currently associated to the plugin post, not the release post. $import_warnings = get_post_meta( get_plugin()->ID, '_import_warnings', true ); -if ( $import_warnings ) { - // Back-compat; previously this was an array of numeric-indexed human-readable strings. - if ( ! wp_is_numeric_array( $import_warnings ) ) { - // error_code => error_data, convert to error_code => human_readable_error. +// Merge in warnings into the plugin check errors. +if ( ! empty( $import_warnings ) && ! wp_is_numeric_array( $import_warnings ) ) { - foreach ( $import_warnings as $error_code => $error_data ) { - $import_warnings[ $error_code ] = Readme_Validator::instance()->translate_code_to_message( $error_code, $error_data ); - } - } - - $warnings = ''; foreach ( $import_warnings as $error_code => $error_data ) { - // Skip these warnings,they are not relevant to the release. + // These warnings exist because they haven't release it. + // TODO: Remove the logic that sets those warnings. if ( in_array( $error_code, array( 'stable_tag_invalid_trunk_fallback', 'stable_tag_invalid' ), true ) ) { continue; } - $blocks .= sprintf( - '
    %s
    ', - $error_data + $plugin_check_errors['results'][] = array( + 'line' => 0, + 'column' => 0, + 'type' => 'WARNING', + 'code' => $error_code, + 'message' => Readme_Validator::instance()->translate_code_to_message( $error_code, $error_data ), + 'file' => 'readme.txt', ); + + $plugin_check_errors['verdict'] = false; } } diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-draft/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-draft/render.php index abd9c906d3..10afaa0461 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-draft/render.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-draft/render.php @@ -5,7 +5,9 @@ * @package wporg-plugins */ -if ( ! current_user_can( 'plugin_admin_edit', $post ) ) { +use function WordPressdotorg\Plugin_Directory\Theme\{get_plugin_slug, user_can_edit_plugin}; + +if ( ! user_can_edit_plugin() ) { return; } @@ -42,14 +44,17 @@ $new_version = get_post_meta( get_the_ID(), 'release_version', true ); - -$intro_text = __( 'There are unpublished changes in your trunk folder.', 'wporg-plugins' ); -$button_text = __( 'Create release', 'wporg-plugins' ); -$publish_title = __( 'Create release', 'wporg-plugins' ); -$post_title = sprintf( - /* translators: %s: New version number */ +$publish_text = __( 'Create release', 'wporg-plugins' ); +$slug = get_plugin_slug(); +$intro_text = sprintf( + /* translators: %s: URL to the plugin's trunk folder */ + __( 'There are unpublished changes in your trunk folder.', 'wporg-plugins' ), + esc_url( "https://plugins.trac.wordpress.org/browser/{$slug}/" ) +); +$post_title = sprintf( + /* translators: %s: Plugin version number */ __( 'Trunk (v.%s)', 'wporg-plugins' ), - $new_version + esc_html( $new_version ) ); $markup = <<
    @@ -75,7 +80,7 @@
    - +
    diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-draft/style.scss b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-draft/style.scss index 383d5f834b..8cd8d8be11 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-draft/style.scss +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-draft/style.scss @@ -1,4 +1,4 @@ .wp-block-wporg-release-draft { + margin-bottom: var(--wp--preset--spacing--20); font-size: var(--wp--preset--font-size--small); - } \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-page/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-page/render.php index 9fae227ef5..5ffcd135d6 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-page/render.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-page/render.php @@ -25,10 +25,6 @@
    - - - -
    HTML; diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-publish/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-publish/render.php index 774b5406da..1e4f5bbbf7 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-publish/render.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-publish/render.php @@ -6,9 +6,13 @@ */ use WordPressdotorg\Plugin_Directory\Template; -use function WordPressdotorg\Plugin_Directory\Theme\{get_latest_release, get_plugin, get_plugin_slug}; +use function WordPressdotorg\Plugin_Directory\Theme\{get_latest_release, get_plugin, get_plugin_slug, user_can_edit_plugin}; use function WordPressdotorg\Theme\Plugins_2024\ReleasePublish\{has_recently_been_tested, get_view_diff_check_item, get_changelog_check_item, get_tested_up_to_check_item, get_version_number_check_item}; +if ( ! user_can_edit_plugin() ) { + return; +} + // Ensure the block context has a valid post ID. if ( empty( $block->context['postId'] ) ) { return; From 617e48304170113012061fac1a9cdf0b0b36a293 Mon Sep 17 00:00:00 2001 From: StevenDufresne Date: Thu, 12 Dec 2024 02:25:49 +0000 Subject: [PATCH 62/84] Remove accident file. --- taq | 797 ------------------------------------------------------------ 1 file changed, 797 deletions(-) delete mode 100644 taq diff --git a/taq b/taq deleted file mode 100644 index b2ed4201fe..0000000000 --- a/taq +++ /dev/null @@ -1,797 +0,0 @@ -diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-check-item/block.json b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-check-item/block.json -index 97daf1101..3177702aa 100644 ---- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-check-item/block.json -+++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-check-item/block.json -@@ -9,13 +9,17 @@ - "description": "A block to display release draft check item.", - "textdomain": "wporg", - "attributes": { -- "text": { -- "type": "string", -- "default": "" -- }, -- "type": { -+ "status": { - "type": "string", -+ "enum": [ -+ "error", -+ "warning", -+ "success" -+ ], - "default": "success" -+ }, -+ "text": { -+ "type": "string" - } - }, - "supports": { -diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-check-item/index.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-check-item/index.asset.php -index 81d0177fd..516638222 100644 ---- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-check-item/index.asset.php -+++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-check-item/index.asset.php -@@ -1 +1 @@ -- array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => '0a4d881342b3ca7e15f3'); -+ array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => '0cc3c274766792eb7ff7'); -diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-check-item/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-check-item/index.js -index 424bc0668..e752b9f1d 100644 ---- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-check-item/index.js -+++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-check-item/index.js -@@ -121,7 +121,7 @@ module.exports = window["wp"]["serverSideRender"]; - \**************************************************/ - /***/ ((module) => { -  --module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"wporg/release-check-item","version":"0.1.0","title":"Release Check Item","category":"design","icon":"","description":"A block to display release draft check item.","textdomain":"wporg","attributes":{"text":{"type":"string","default":""},"type":{"type":"string","default":"success"}},"supports":{"html":false},"editorScript":"file:./index.js","render":"file:./render.php","style":"file:./style-index.css"}'); -+module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"wporg/release-check-item","version":"0.1.0","title":"Release Check Item","category":"design","icon":"","description":"A block to display release draft check item.","textdomain":"wporg","attributes":{"status":{"type":"string","enum":["error","warning","success"],"default":"success"},"text":{"type":"string"}},"supports":{"html":false},"editorScript":"file:./index.js","render":"file:./render.php","style":"file:./style-index.css"}'); -  - /***/ }) -  -diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-check-item/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-check-item/render.php -index e3b058c92..3e3b63b98 100644 ---- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-check-item/render.php -+++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-check-item/render.php -@@ -1,11 +1,33 @@ - attributes['text'] ) || ! isset( $block->attributes['type'] ) ) { -- return; -+$wrapper_attributes = get_block_wrapper_attributes( -+ [ -+ 'class' => $block->attributes['status'], -+ ] -+); -+ -+ -+// $copy = ''; -+ -+if ( ! empty( $block->inner_html ) ) { -+ var_dump( $block->inner_html ); - } -  - ?> -  --
  • > -- attributes['text'] ) ?> --
  •  -\ No newline at end of file -+
  • > -+ 
     -+  -+ attributes['status'] ) : ?> -+  -+ attributes['status'] ) : ?>  -+  -+  -+  -+ 
     -+ -+
  •  -diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-check-item/style-index.css b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-check-item/style-index.css -index bcc237feb..8698abe05 100644 ---- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-check-item/style-index.css -+++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-check-item/style-index.css -@@ -2,21 +2,29 @@ - !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/blocks/release-check-item/style.scss ***! - \*****************************************************************************************************************************************************************************************************************************************************************/ - .wp-block-wporg-release-check-item { -- margin: 0 0 var(--wp--preset--spacing--10) 0 !important; -- padding-left: var(--wp--preset--spacing--30); -+ margin: 0 0 var(--wp--preset--spacing--10) var(--wp--preset--spacing--10) !important; - position: relative; - } --.wp-block-wporg-release-check-item:before { -+.wp-block-wporg-release-check-item summary { -+ display: flex; -+ cursor: default; -+} -+.wp-block-wporg-release-check-item summary:before { - content: ""; - display: flex; - width: 24px; - height: 24px; -- position: absolute; -- top: 2px; - left: 0; -- background-image: url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 fill=%27%23E26F56%27 viewBox=%270 0 24 24%27 width=%2724%27 height=%2724%27 aria-hidden=%27true%27 focusable=%27false%27%3E%3Cpath d=%27M12 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%27%3E%3C/path%3E%3C/svg%3E"); - background-repeat: no-repeat; - background-position: center; -+ background-image: url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 24 24%27 width=%2724%27 height=%2724%27 aria-hidden=%27true%27 focusable=%27false%27%3E%3Cpath d=%27M10.6 6L9.4 7l4.6 5-4.6 5 1.2 1 5.4-6z%27%3E%3C/path%3E%3C/svg%3E"); -+} -+.wp-block-wporg-release-check-item[open] summary:before { -+ background-image: url("data:image/svg+xml,%3Csvg viewBox=%270 0 24 24%27 xmlns=%27http://www.w3.org/2000/svg%27 width=%2724%27 height=%2724%27 aria-hidden=%27true%27 focusable=%27false%27%3E%3Cpath d=%27M17.5 11.6L12 16l-5.5-4.4.9-1.2L12 14l4.5-3.6 1 1.2z%27%3E%3C/path%3E%3C/svg%3E"); -+} -+.wp-block-wporg-release-check-item summary::marker { -+ display: none; -+ content: ""; - } -  - /*# sourceMappingURL=style-index.css.map*/ -\ No newline at end of file -diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks/render.php -index c53ef055b..29b7d49f0 100644 ---- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks/render.php -+++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks/render.php -@@ -4,18 +4,46 @@ if ( ! current_user_can( 'plugin_admin_edit', $post ) ) { - return; - } -  --$current_post_id = $block->context['postId']; --if ( ! $current_post_id ) { -+if ( ! $block->context['postId'] ) { - return; - } -  --?> -+$release_post = get_post( $block->context['postId'] ); -  -- --

     -- -+$plugin_check_errors = get_post_meta( $release_post->ID, 'plugin_check_result', true ); -  --
       --
    • First Item
    •  --
    • Second Item
    •  --
     -+echo do_blocks(  -+ sprintf( -+ ' -+

    %s

     -+ ', -+ __( 'Checks', 'wporg-plugins' ) -+ ) -+); -+ -+if ( empty( $plugin_check_errors ) ) { -+ printf( -+ '

    %s

    ', -+ __( 'No checks were run.', 'wporg-plugins' ) -+ ); -+} -+ -+ -+echo '
      '; -+ -+ -+$blocks = sprintf( -+ '%2$s', -+ esc_attr( 'error' ), -+ sprintf( -+ /* translators: %1$s is a link to the Plugin Check (PCP) tool, %2$s is a "See details" link. */ -+ __('%1$s detected some issues.', 'wporg-plugins'), -+ 'ok' .  -+ esc_html__( 'Plugin Check (PCP)', 'wporg-plugins' ) .  -+ '' -+ ) -+); -+ -+echo do_blocks( $blocks ); -+ -+echo '
    '; -diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-result/block.json b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-result/block.json -deleted file mode 100644 -index 7d9d336f3..000000000 ---- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-result/block.json -+++ /dev/null -@@ -1,27 +0,0 @@ --{ -- "$schema": "https://schemas.wp.org/trunk/block.json", -- "apiVersion": 2, -- "name": "wporg/release-draft-result", -- "version": "0.1.0", -- "title": "Release Draft Result", -- "category": "design", -- "icon": "", -- "description": "A block to display release draft result item.", -- "textdomain": "wporg", -- "attributes": { -- "text": { -- "type": "string", -- "default": "" -- }, -- "type": { -- "type": "string", -- "default": "success" -- } -- }, -- "supports": { -- "html": false -- }, -- "editorScript": "file:./index.js", -- "render": "file:./render.php", -- "style": "file:./style-index.css" --} -\ No newline at end of file -diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-result/index.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-result/index.asset.php -deleted file mode 100644 -index 980352550..000000000 ---- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-result/index.asset.php -+++ /dev/null -@@ -1 +0,0 @@ -- array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => '4cff3a5baca3e641f944'); -diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-result/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-result/index.js -deleted file mode 100644 -index 11174c0a7..000000000 ---- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-result/index.js -+++ /dev/null -@@ -1,298 +0,0 @@ --/******/ (() => { // webpackBootstrap --/******/ "use strict"; --/******/ var __webpack_modules__ = ({ -- --/***/ "./src/blocks/release-draft-result/index.js": --/*!**************************************************!*\ -- !*** ./src/blocks/release-draft-result/index.js ***! -- \**************************************************/ --/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { -- --__webpack_require__.r(__webpack_exports__); --/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); --/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); --/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); --/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__); --/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/blocks */ "@wordpress/blocks"); --/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__); --/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/server-side-render */ "@wordpress/server-side-render"); --/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__); --/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/block-editor */ "@wordpress/block-editor"); --/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__); --/* harmony import */ var _block_json__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./block.json */ "./src/blocks/release-draft-result/block.json"); --/* harmony import */ var _style_scss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./style.scss */ "./src/blocks/release-draft-result/style.scss"); -- --/** -- * WordPress dependencies -- */ -- -- -- -- -- --/** -- * Internal dependencies -- */ -- -- --function Edit({ -- attributes, -- name --}) { -- return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", { -- ...(0,_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__.useBlockProps)() -- }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Disabled, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)((_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default()), { -- block: name, -- attributes: attributes -- }))); --} --(0,_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__.registerBlockType)(_block_json__WEBPACK_IMPORTED_MODULE_5__.name, { -- edit: Edit, -- save: () => null --}); -- --/***/ }), -- --/***/ "./src/blocks/release-draft-result/style.scss": --/*!****************************************************!*\ -- !*** ./src/blocks/release-draft-result/style.scss ***! -- \****************************************************/ --/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { -- --__webpack_require__.r(__webpack_exports__); --// extracted by mini-css-extract-plugin -- -- --/***/ }), -- --/***/ "react": --/*!************************!*\ -- !*** external "React" ***! -- \************************/ --/***/ ((module) => { -- --module.exports = window["React"]; -- --/***/ }), -- --/***/ "@wordpress/block-editor": --/*!*************************************!*\ -- !*** external ["wp","blockEditor"] ***! -- \*************************************/ --/***/ ((module) => { -- --module.exports = window["wp"]["blockEditor"]; -- --/***/ }), -- --/***/ "@wordpress/blocks": --/*!********************************!*\ -- !*** external ["wp","blocks"] ***! -- \********************************/ --/***/ ((module) => { -- --module.exports = window["wp"]["blocks"]; -- --/***/ }), -- --/***/ "@wordpress/components": --/*!************************************!*\ -- !*** external ["wp","components"] ***! -- \************************************/ --/***/ ((module) => { -- --module.exports = window["wp"]["components"]; -- --/***/ }), -- --/***/ "@wordpress/server-side-render": --/*!******************************************!*\ -- !*** external ["wp","serverSideRender"] ***! -- \******************************************/ --/***/ ((module) => { -- --module.exports = window["wp"]["serverSideRender"]; -- --/***/ }), -- --/***/ "./src/blocks/release-draft-result/block.json": --/*!****************************************************!*\ -- !*** ./src/blocks/release-draft-result/block.json ***! -- \****************************************************/ --/***/ ((module) => { -- --module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"wporg/release-draft-result","version":"0.1.0","title":"Release Draft Result","category":"design","icon":"","description":"A block to display release draft result item.","textdomain":"wporg","attributes":{"text":{"type":"string","default":""},"type":{"type":"string","default":"success"}},"supports":{"html":false},"editorScript":"file:./index.js","render":"file:./render.php","style":"file:./style-index.css"}'); -- --/***/ }) -- --/******/ }); --/************************************************************************/ --/******/ // The module cache --/******/ var __webpack_module_cache__ = {}; --/******/  --/******/ // The require function --/******/ function __webpack_require__(moduleId) { --/******/ // Check if module is in cache --/******/ var cachedModule = __webpack_module_cache__[moduleId]; --/******/ if (cachedModule !== undefined) { --/******/ return cachedModule.exports; --/******/ } --/******/ // Create a new module (and put it into the cache) --/******/ var module = __webpack_module_cache__[moduleId] = { --/******/ // no module.id needed --/******/ // no module.loaded needed --/******/ exports: {} --/******/ }; --/******/  --/******/ // Execute the module function --/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); --/******/  --/******/ // Return the exports of the module --/******/ return module.exports; --/******/ } --/******/  --/******/ // expose the modules object (__webpack_modules__) --/******/ __webpack_require__.m = __webpack_modules__; --/******/  --/************************************************************************/ --/******/ /* webpack/runtime/chunk loaded */ --/******/ (() => { --/******/ var deferred = []; --/******/ __webpack_require__.O = (result, chunkIds, fn, priority) => { --/******/ if(chunkIds) { --/******/ priority = priority || 0; --/******/ for(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1]; --/******/ deferred[i] = [chunkIds, fn, priority]; --/******/ return; --/******/ } --/******/ var notFulfilled = Infinity; --/******/ for (var i = 0; i < deferred.length; i++) { --/******/ var chunkIds = deferred[i][0]; --/******/ var fn = deferred[i][1]; --/******/ var priority = deferred[i][2]; --/******/ var fulfilled = true; --/******/ for (var j = 0; j < chunkIds.length; j++) { --/******/ if ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) { --/******/ chunkIds.splice(j--, 1); --/******/ } else { --/******/ fulfilled = false; --/******/ if(priority < notFulfilled) notFulfilled = priority; --/******/ } --/******/ } --/******/ if(fulfilled) { --/******/ deferred.splice(i--, 1) --/******/ var r = fn(); --/******/ if (r !== undefined) result = r; --/******/ } --/******/ } --/******/ return result; --/******/ }; --/******/ })(); --/******/  --/******/ /* webpack/runtime/compat get default export */ --/******/ (() => { --/******/ // getDefaultExport function for compatibility with non-harmony modules --/******/ __webpack_require__.n = (module) => { --/******/ var getter = module && module.__esModule ? --/******/ () => (module['default']) : --/******/ () => (module); --/******/ __webpack_require__.d(getter, { a: getter }); --/******/ return getter; --/******/ }; --/******/ })(); --/******/  --/******/ /* webpack/runtime/define property getters */ --/******/ (() => { --/******/ // define getter functions for harmony exports --/******/ __webpack_require__.d = (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 */ --/******/ (() => { --/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) --/******/ })(); --/******/  --/******/ /* webpack/runtime/make namespace object */ --/******/ (() => { --/******/ // define __esModule on exports --/******/ __webpack_require__.r = (exports) => { --/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { --/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); --/******/ } --/******/ Object.defineProperty(exports, '__esModule', { value: true }); --/******/ }; --/******/ })(); --/******/  --/******/ /* webpack/runtime/jsonp chunk loading */ --/******/ (() => { --/******/ // no baseURI --/******/  --/******/ // object to store loaded and loading chunks --/******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched --/******/ // [resolve, reject, Promise] = chunk loading, 0 = chunk loaded --/******/ var installedChunks = { --/******/ "blocks/release-draft-result/index": 0, --/******/ "blocks/release-draft-result/style-index": 0 --/******/ }; --/******/  --/******/ // no chunk on demand loading --/******/  --/******/ // no prefetching --/******/  --/******/ // no preloaded --/******/  --/******/ // no HMR --/******/  --/******/ // no HMR manifest --/******/  --/******/ __webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0); --/******/  --/******/ // install a JSONP callback for chunk loading --/******/ var webpackJsonpCallback = (parentChunkLoadingFunction, data) => { --/******/ var chunkIds = data[0]; --/******/ var moreModules = data[1]; --/******/ var runtime = data[2]; --/******/ // add "moreModules" to the modules object, --/******/ // then flag all "chunkIds" as loaded and fire callback --/******/ var moduleId, chunkId, i = 0; --/******/ if(chunkIds.some((id) => (installedChunks[id] !== 0))) { --/******/ for(moduleId in moreModules) { --/******/ if(__webpack_require__.o(moreModules, moduleId)) { --/******/ __webpack_require__.m[moduleId] = moreModules[moduleId]; --/******/ } --/******/ } --/******/ if(runtime) var result = runtime(__webpack_require__); --/******/ } --/******/ if(parentChunkLoadingFunction) parentChunkLoadingFunction(data); --/******/ for(;i < chunkIds.length; i++) { --/******/ chunkId = chunkIds[i]; --/******/ if(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) { --/******/ installedChunks[chunkId][0](); --/******/ } --/******/ installedChunks[chunkId] = 0; --/******/ } --/******/ return __webpack_require__.O(result); --/******/ } --/******/  --/******/ var chunkLoadingGlobal = self["webpackChunkwporg_plugins_2024"] = self["webpackChunkwporg_plugins_2024"] || []; --/******/ chunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0)); --/******/ chunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal)); --/******/ })(); --/******/  --/************************************************************************/ --/******/  --/******/ // startup --/******/ // Load entry module and return exports --/******/ // This entry module depends on other loaded chunks and execution need to be delayed --/******/ var __webpack_exports__ = __webpack_require__.O(undefined, ["blocks/release-draft-result/style-index"], () => (__webpack_require__("./src/blocks/release-draft-result/index.js"))) --/******/ __webpack_exports__ = __webpack_require__.O(__webpack_exports__); --/******/  --/******/ })() --; --//# sourceMappingURL=index.js.map -\ No newline at end of file -diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-result/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-result/render.php -deleted file mode 100644 -index e3b058c92..000000000 ---- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-result/render.php -+++ /dev/null -@@ -1,11 +0,0 @@ --attributes['text'] ) || ! isset( $block->attributes['type'] ) ) { -- return; --} -- --?> -- --
  • > -- attributes['text'] ) ?> --
  •  -\ No newline at end of file -diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-result/style-index.css b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-result/style-index.css -deleted file mode 100644 -index fcb6e7a3c..000000000 ---- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft-result/style-index.css -+++ /dev/null -@@ -1,22 +0,0 @@ --/*!*******************************************************************************************************************************************************************************************************************************************************************!*\ -- !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/blocks/release-draft-result/style.scss ***! -- \*******************************************************************************************************************************************************************************************************************************************************************/ --.wp-block-wporg-release-draft-result { -- margin: 0 0 var(--wp--preset--spacing--10) 0 !important; -- padding-left: var(--wp--preset--spacing--30); -- position: relative; --} --.wp-block-wporg-release-draft-result:before { -- content: ""; -- display: flex; -- width: 24px; -- height: 24px; -- position: absolute; -- top: 2px; -- left: 0; -- background-image: url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 fill=%27%23E26F56%27 viewBox=%270 0 24 24%27 width=%2724%27 height=%2724%27 aria-hidden=%27true%27 focusable=%27false%27%3E%3Cpath d=%27M12 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%27%3E%3C/path%3E%3C/svg%3E"); -- background-repeat: no-repeat; -- background-position: center; --} -- --/*# sourceMappingURL=style-index.css.map*/ -\ No newline at end of file -diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-flags/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-flags/render.php -index b38e4a542..540aac681 100644 ---- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-flags/render.php -+++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-flags/render.php -@@ -35,8 +35,8 @@ if ( ! wp_is_numeric_array( $import_warnings ) ) { - $warnings = ''; - foreach ( $import_warnings as $error_code => $error_data ) { - $warnings .= sprintf( -- '', -- 'error', -+ '%2$s', -+ 'warning', - $error_data - ); - } -diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/patterns/sidebar.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/patterns/sidebar.php -index 0fe873e55..d7be6e19e 100644 ---- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/patterns/sidebar.php -+++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/patterns/sidebar.php -@@ -11,7 +11,7 @@ -  -
     -  --

    Ratings

     -+ 

     -  -  -  -diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-check-item/block.json b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-check-item/block.json -index 53a9116da..8fac77140 100644 ---- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-check-item/block.json -+++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-check-item/block.json -@@ -9,13 +9,13 @@ - "description": "A block to display release draft check item.", - "textdomain": "wporg", - "attributes": { -- "text":{ -- "type": "string", -- "default": "" -- }, -- "type":{ -+ "status": { - "type": "string", -+ "enum": [ "error", "warning", "success" ], - "default": "success" -+ }, -+ "text": {  -+ "type": "string" - } - }, - "supports": { -diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-check-item/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-check-item/render.php -index e3b058c92..3e3b63b98 100644 ---- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-check-item/render.php -+++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-check-item/render.php -@@ -1,11 +1,33 @@ - attributes['text'] ) || ! isset( $block->attributes['type'] ) ) { -- return; -+$wrapper_attributes = get_block_wrapper_attributes( -+ [ -+ 'class' => $block->attributes['status'], -+ ] -+); -+ -+ -+// $copy = ''; -+ -+if ( ! empty( $block->inner_html ) ) { -+ var_dump( $block->inner_html ); - } -  - ?> -  --
  • > -- attributes['text'] ) ?> --
  •  -\ No newline at end of file -+
  • > -+ 
     -+  -+ attributes['status'] ) : ?> -+  -+ attributes['status'] ) : ?>  -+  -+  -+  -+ 
     -+ -+
  •  -diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-check-item/style.scss b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-check-item/style.scss -index 0460de68c..55dcb48cb 100644 ---- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-check-item/style.scss -+++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-check-item/style.scss -@@ -1,18 +1,29 @@ - .wp-block-wporg-release-check-item { -- margin: 0 0 var(--wp--preset--spacing--10) 0 !important; -- padding-left: var(--wp--preset--spacing--30); -+ margin: 0 0 var(--wp--preset--spacing--10) var(--wp--preset--spacing--10) !important; - position: relative; -  -- &:before { -+ summary { -+ display: flex; -+ cursor: default; -+ } -+ -+ summary:before { - content: ''; - display: flex; - width: 24px; - height: 24px; -- position: absolute; -- top: 2px; - left: 0; -- background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23E26F56' viewBox='0 0 24 24' width='24' height='24' aria-hidden='true' focusable='false'%3E%3Cpath 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'%3E%3C/path%3E%3C/svg%3E"); - background-repeat: no-repeat; - background-position: center; -+ background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24' aria-hidden='true' focusable='false'%3E%3Cpath d='M10.6 6L9.4 7l4.6 5-4.6 5 1.2 1 5.4-6z'%3E%3C/path%3E%3C/svg%3E"); -+ } -+ -+ &[open] summary:before { -+ background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg' width='24' height='24' aria-hidden='true' focusable='false'%3E%3Cpath d='M17.5 11.6L12 16l-5.5-4.4.9-1.2L12 14l4.5-3.6 1 1.2z'%3E%3C/path%3E%3C/svg%3E"); -+ } -+  -+ summary::marker { -+ display: none; -+ content: ''; - } - } -diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-checks/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-checks/render.php -index c53ef055b..29b7d49f0 100644 ---- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-checks/render.php -+++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-checks/render.php -@@ -4,18 +4,46 @@ if ( ! current_user_can( 'plugin_admin_edit', $post ) ) { - return; - } -  --$current_post_id = $block->context['postId']; --if ( ! $current_post_id ) { -+if ( ! $block->context['postId'] ) { - return; - } -  --?> -+$release_post = get_post( $block->context['postId'] ); -  -- --

     -- -+$plugin_check_errors = get_post_meta( $release_post->ID, 'plugin_check_result', true ); -  --
       --
    • First Item
    •  --
    • Second Item
    •  --
     -+echo do_blocks(  -+ sprintf( -+ ' -+

    %s

     -+ ', -+ __( 'Checks', 'wporg-plugins' ) -+ ) -+); -+ -+if ( empty( $plugin_check_errors ) ) { -+ printf( -+ '

    %s

    ', -+ __( 'No checks were run.', 'wporg-plugins' ) -+ ); -+} -+ -+ -+echo '
      '; -+ -+ -+$blocks = sprintf( -+ '%2$s', -+ esc_attr( 'error' ), -+ sprintf( -+ /* translators: %1$s is a link to the Plugin Check (PCP) tool, %2$s is a "See details" link. */ -+ __('%1$s detected some issues.', 'wporg-plugins'), -+ 'ok' .  -+ esc_html__( 'Plugin Check (PCP)', 'wporg-plugins' ) .  -+ '' -+ ) -+); -+ -+echo do_blocks( $blocks ); -+ -+echo '
    '; -diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-flags/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-flags/render.php -index b38e4a542..540aac681 100644 ---- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-flags/render.php -+++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-flags/render.php -@@ -35,8 +35,8 @@ if ( ! wp_is_numeric_array( $import_warnings ) ) { - $warnings = ''; - foreach ( $import_warnings as $error_code => $error_data ) { - $warnings .= sprintf( -- '', -- 'error', -+ '%2$s', -+ 'warning', - $error_data - ); - } From 0a7c93360c25a433aa40e5f7c898d0623548b9bf Mon Sep 17 00:00:00 2001 From: StevenDufresne Date: Thu, 12 Dec 2024 02:32:44 +0000 Subject: [PATCH 63/84] More cleanup --- .../build/blocks/release-publish/block.json | 3 +-- .../blocks/release-publish/index.asset.php | 2 +- .../build/blocks/release-publish/index.js | 2 +- .../build/blocks/release-publish/render.php | 6 +++--- .../blocks/release-publish/style-index.css | 3 --- .../components/plugin/_plugin-release.scss | 21 ------------------- .../client/styles/components/_components.scss | 1 - .../pub/wporg-plugins-2024/css/style-rtl.css | 2 +- .../pub/wporg-plugins-2024/css/style.css | 2 +- .../src/blocks/release-publish/block.json | 2 +- .../src/blocks/release-publish/index.php | 1 - .../src/blocks/release-publish/render.php | 6 +++--- .../src/blocks/release-publish/style.scss | 4 ---- .../template-parts/plugin-single.php | 1 - 14 files changed, 12 insertions(+), 44 deletions(-) delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/client/components/plugin/_plugin-release.scss diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish/block.json b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish/block.json index 821e88707f..f78830fb12 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish/block.json +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish/block.json @@ -14,8 +14,7 @@ "interactivity": true }, "usesContext": [ - "postId", - "pluginSlug" + "postId" ], "editorScript": "file:./index.js", "render": "file:./render.php", diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish/index.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish/index.asset.php index fe935aba92..45e09df3d6 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish/index.asset.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish/index.asset.php @@ -1 +1 @@ - array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => 'e00dfec27a5fe6143f0a'); + array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => '243c74237a1c67203d04'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish/index.js index aeebd77ba9..3abdfe0a20 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish/index.js +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish/index.js @@ -121,7 +121,7 @@ module.exports = window["wp"]["serverSideRender"]; \***********************************************/ /***/ ((module) => { -module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"wporg/release-publish","version":"0.1.0","title":"Release Publish","category":"design","icon":"","description":"A block to display release publish view.","textdomain":"wporg","attributes":{},"supports":{"html":false,"interactivity":true},"usesContext":["postId","pluginSlug"],"editorScript":"file:./index.js","render":"file:./render.php","style":"file:./style-index.css","viewScriptModule":"file:./view.js"}'); +module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"wporg/release-publish","version":"0.1.0","title":"Release Publish","category":"design","icon":"","description":"A block to display release publish view.","textdomain":"wporg","attributes":{},"supports":{"html":false,"interactivity":true},"usesContext":["postId"],"editorScript":"file:./index.js","render":"file:./render.php","style":"file:./style-index.css","viewScriptModule":"file:./view.js"}'); /***/ }) diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish/render.php index 1e4f5bbbf7..9d24e1355b 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish/render.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish/render.php @@ -146,9 +146,9 @@ class="wp-block-button__link wp-element-button"
    - - -
    + + +
    diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish/style-index.css b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish/style-index.css index 2e619ecb84..f224901570 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish/style-index.css +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish/style-index.css @@ -20,9 +20,6 @@ margin-top: var(--wp--preset--spacing--20); gap: 8px; } -.wp-block-wporg-release-publish-actions button[disabled] { - opacity: 0.5; -} .wp-block-wporg-release-publish-spinner { align-items: center; diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/client/components/plugin/_plugin-release.scss b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/client/components/plugin/_plugin-release.scss deleted file mode 100644 index 0d86603e1a..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/client/components/plugin/_plugin-release.scss +++ /dev/null @@ -1,21 +0,0 @@ -.plugin-releases { - padding: 0; - list-style-type: none; -} - -.plugin-releases-item { - padding: var(--wp--style--block-gap); - margin-bottom: var(--wp--preset--spacing--30); - - border-radius: 4px; - border: 1px solid var(--wp--preset--color--light-grey-1); -} - -.plugin-releases-item-header { - display: flex; - justify-content: space-between; -} - -.plugin-releases-item-header h3 { - margin: 0px !important; -} \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/client/styles/components/_components.scss b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/client/styles/components/_components.scss index 77be260a4f..4c4e16bf7f 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/client/styles/components/_components.scss +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/client/styles/components/_components.scss @@ -12,7 +12,6 @@ @import "../../components/posts-navigation"; @import "../../components/plugin/favorite-button"; @import "../../components/plugin/plugin-banner"; -@import "../../components/plugin/plugin-release"; @import "../../components/plugin/sections-categorization"; @import "../../components/plugin/sections-changelog"; @import "../../components/plugin/sections-developers"; diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/css/style-rtl.css b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/css/style-rtl.css index 01016b968f..fba97030e9 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/css/style-rtl.css +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/css/style-rtl.css @@ -1 +1 @@ -@charset "UTF-8";.avatar{border-radius:50%;vertical-align:middle}.wp-block-wporg-language-suggest>p{margin:0}.block-validator>details summary{padding:var(--wp--style--block-gap) 0}.block-validator .block-validator__plugin-form label{display:block;margin-bottom:.8em}.block-validator .block-validator__plugin-input-container{display:flex;max-width:34rem}.block-validator .block-validator__plugin-input{flex:1}.block-validator .block-validator__plugin-submit{flex:0;margin-right:4px}@media (max-width:36rem){.block-validator .block-validator__plugin-submit{width:100%}.block-validator .block-validator__plugin-input-container{display:block}.block-validator .block-validator__plugin-input{width:100%}.block-validator .block-validator__plugin-submit{margin-right:0;margin-top:var(--wp--style--block-gap)}}.block-validator .notice details,.block-validator .notice p{font-size:var(--wp--preset--font-size--normal);margin:var(--wp--style--block-gap) 0}.block-validator .notice details p{font-size:var(--wp--preset--font-size--small);margin-right:1rem}.block-validator .notice summary{display:list-item}.block-validator figure{border:1px solid #aaa;display:inline-block;padding:1em}.block-validator .test-screenshot{text-align:center}.block-validator .plugin-upload-form-controls{align-items:center;display:flex;gap:4px}.block-validator .plugin-upload-form-controls>label{border:1px solid var(--wp--custom--form--border--color);border-radius:var(--wp--custom--form--border--radius);cursor:pointer;min-width:200px;padding:4px 8px}.notice{background:#fff;border-right:4px solid #fff;box-shadow:0 1px 1px 0 #0000001a;font-size:var(--wp--preset--font-size--small);margin:var(--wp--style--block-gap) 0;padding:1px 12px}.notice p,.notice ul{margin:.5em 0;padding:2px}.notice pre{white-space:pre-wrap}.notice ul{list-style:none;margin:.5em}.notice.notice-alt{box-shadow:none}.notice.notice-large{padding:10px 20px}.notice.notice-success{border-right-color:#46b450}.notice.notice-success.notice-alt{background-color:#ecf7ed}.notice.notice-warning{border-right-color:#ffb900}.notice.notice-warning.notice-alt{background-color:#fff8e5}.notice.notice-error{border-right-color:#dc3232}.notice.notice-error.notice-alt{background-color:#fbeaea}.notice.notice-info{border-right-color:#00a0d2}.notice.notice-info.notice-alt{background-color:#e5f5fa}.notice.hidden{display:none}.plugin-upload-form.hidden{display:none}.plugin-upload-form fieldset{border:none;margin:0;padding:0}.plugin-upload-form legend{margin:1rem 0}.plugin-upload-form .category-checklist{list-style-type:none;margin:0 0 2rem}.plugin-upload-form .category-checklist li{float:right;padding:.5rem 0;width:50%}@media screen and (min-width:48em){.plugin-upload-form .category-checklist li{padding:0}.plugin-upload-form .category-checklist label{font-size:var(--wp--preset--font-size--small)}.plugin-upload-form label.button{line-height:1.8}}.plugin-upload-form .plugin-file{height:.1px;opacity:0;overflow:hidden;position:absolute;width:.1px;z-index:-1}.plugin-queue-message code{font-size:1em}.plugin-queue-message dialog.slug-change input[type=text]{font-family:monospace;font-size:1.2em;width:20em}:where(main) a:where(:not(.wp-element-button,.wp-block-wporg-link-wrapper)):focus,:where(main) button:where(:not([class*=wp-block-button])):focus{border-radius:2px;box-shadow:0 0 0 1.5px currentColor;outline:none}.wporg-filter-bar{--wporg--filter-bar--gap:20px;--wporg--filter-bar--color:#40464d;--wporg--filter-bar--active--background-color:var(--wp--custom--button--color--background);--wporg--filter-bar--focus--border-color:var(--wp--custom--button--focus--border--color);margin:var(--wp--style--block-gap) 0}.wporg-filter-bar .wporg-query-filter__toggle.is-active,.wporg-filter-bar .wporg-query-filter__toggle:active,.wporg-filter-bar .wporg-query-filter__toggle:focus{background-color:var(--wporg--filter-bar--active--background-color);color:var(--wp--custom--button--color--text)}.wporg-filter-bar .wporg-filter-bar__navigation{flex-grow:1;margin-bottom:var(--wporg--filter-bar--gap)}.wporg-filter-bar .wporg-filter-bar__navigation ul{display:inline-block;font-size:13px;line-height:1.538;list-style:none;margin:0;padding-right:0}.wporg-filter-bar .wporg-filter-bar__navigation ul li{display:inline-block}.wporg-filter-bar .wporg-filter-bar__navigation ul li+li{margin-right:8px}.wporg-filter-bar .wporg-filter-bar__navigation ul a{border-radius:2px;color:var(--wporg--filter-bar--color);display:block;padding:8px 12px;text-decoration:none}.wporg-filter-bar .wporg-filter-bar__navigation ul a:focus,.wporg-filter-bar .wporg-filter-bar__navigation ul a:hover{text-decoration:underline}.wporg-filter-bar .wporg-filter-bar__navigation ul a:focus-visible{box-shadow:none;outline:1.5px solid var(--wporg--filter-bar--focus--border-color);outline-offset:-.5px}.wporg-filter-bar .wporg-filter-bar__navigation ul a.is-active{background-color:var(--wporg--filter-bar--active--background-color);color:#fff}.wporg-filter-bar .wporg-filter-bar__navigation ul a.is-active:focus,.wporg-filter-bar .wporg-filter-bar__navigation ul a.is-active:hover{color:#fff}.wporg-filter-bar .wporg-filter-bar__navigation ul a.is-active:focus-visible{box-shadow:inset 0 0 0 1.5px #fff;outline:1.5px solid var(--wporg--filter-bar--focus--border-color);outline-offset:-.5px}@media screen and (min-width:737px){.wporg-filter-bar{align-items:center;display:flex;flex-wrap:wrap;gap:var(--wporg--filter-bar--gap);justify-content:space-between;width:100%}.wporg-filter-bar .wporg-filter-bar__navigation{margin-bottom:0}}.wp-block-search__inside-wrapper{background:var(--wp--preset--color--light-grey-2);border:none}.button-link{background:none;border:0;border-radius:0;box-shadow:none;cursor:pointer;margin:0;outline:none;padding:0}.button{background-color:var(--wp--custom--button--color--background);border:0;border-radius:var(--wp--custom--button--border--radius);color:var(--wp--custom--button--color--text);cursor:pointer;opacity:1;padding:calc(var(--wp--custom--button--small--spacing--padding--top) + var(--wp--custom--button--border--width)) calc(var(--wp--custom--button--small--spacing--padding--left) + var(--wp--custom--button--border--width)) calc(var(--wp--custom--button--small--spacing--padding--bottom) + var(--wp--custom--button--border--width)) calc(var(--wp--custom--button--small--spacing--padding--right) + var(--wp--custom--button--border--width));vertical-align:middle}.button.button-large{padding:calc(var(--wp--custom--button--spacing--padding--top) + var(--wp--custom--button--border--width)) calc(var(--wp--custom--button--spacing--padding--left) + var(--wp--custom--button--border--width)) calc(var(--wp--custom--button--spacing--padding--bottom) + var(--wp--custom--button--border--width)) calc(var(--wp--custom--button--spacing--padding--right) + var(--wp--custom--button--border--width))}input+button.button,select+button.button{margin-top:-3px}.button.disabled{cursor:not-allowed;opacity:.6}.wp-block-post-content a.button{text-decoration:none}.wp-block-button__link{width:auto}pre{background-color:#f7f7f7;border:1px solid var(--wp--preset--color--light-grey-1);overflow:scroll;padding:20px}code,pre{border-radius:2px}code{background:var(--wp--preset--color--light-grey-2);display:inline-block;line-height:var(--wp--custom--body--extra-small--typography--line-height);max-width:100%;padding-inline-end:3px;padding-inline-start:3px}dialog{border:0;box-shadow:-6px 6px 6px #0003;min-height:50%;min-width:30%}@media (min-width:1280px){dialog{max-width:55%}}dialog::backdrop{background:#000;opacity:.5}dialog .close{color:inherit;cursor:pointer;position:absolute;left:1em;text-decoration:none!important;top:1em}.plugin-card{display:flex;flex-direction:column;height:100%;justify-content:space-between}.plugin-card .entry{display:inline-block;vertical-align:top}.plugin-card .entry-title{display:block;display:-webkit-box;font-size:var(--wp--preset--font-size--heading-5);font-weight:500;line-height:1.3;margin-bottom:2px!important;max-height:2.6em;overflow:hidden;-webkit-line-clamp:2;-webkit-box-orient:vertical}.plugin-card .entry-title a{display:block;text-decoration:none}.plugin-card .entry-title a:focus{box-shadow:none}.plugin-card .entry-excerpt{clear:both;font-size:var(--wp--preset--font-size--small)}.plugin-card .entry-excerpt p{margin:0}.plugin-card footer{font-size:var(--wp--preset--font-size--small);margin-top:var(--wp--style--block-gap)}.plugin-card footer span{color:var(--wp--preset--color--charcoal-4);display:inline-block;line-height:var(--wp--preset--font-size--normal);overflow:hidden}.plugin-card footer span.plugin-author{width:100%}.plugin-card footer span.plugin-author span{color:var(--wp--preset--color--charcoal-1)}.plugin-card footer span.plugin-author path{fill:var(--wp--preset--color--charcoal-1)}.plugin-card footer span svg{height:24px;vertical-align:bottom;width:24px}.plugin-card footer span svg path{fill:var(--wp--preset--color--charcoal-4)}.plugin-card footer span.active-installs{min-width:48%}.plugin-cards{cursor:pointer}.plugin-cards .is-style-cards-grid li:hover{background-color:#fff!important;border:1px solid var(--wp--preset--color--charcoal-1)!important}.plugin-cards .is-style-cards-grid li:focus-within{border-color:#0000;border-radius:2px;box-shadow:0 0 0 1.5px var(--wp--custom--link--color--text)}@media screen and (max-width:737px){.plugin-cards .is-style-cards-grid{grid-template-columns:100%}}.entry-thumbnail{display:none;margin-bottom:var(--wp--style--block-gap);margin-left:var(--wp--style--block-gap);max-width:80px}.entry-thumbnail .plugin-icon{background-size:cover;border-radius:var(--wp--custom--button--border--radius);display:block;height:80px;width:80px}@media screen and (min-width:21em){.entry-thumbnail{display:inline-block;float:right;vertical-align:top}}.single .entry-thumbnail{display:none;float:right;height:96px;margin-bottom:0;max-width:96px}@media screen and (min-width:26em){.single .entry-thumbnail{display:block}}.single .entry-thumbnail .plugin-icon{background-size:contain!important;height:96px!important;width:96px!important}.plugin-rating{line-height:1;margin:0 0 8px 10px}.plugin-rating .wporg-ratings{display:inline-block;margin-left:5px}.plugin-rating .rating-count{color:var(--wp--preset--color--charcoal-4);font-size:var(--wp--preset--font-size--extra-small);vertical-align:text-bottom}.plugin-rating .rating-count a{color:inherit;cursor:hand;text-decoration:none}[class*=dashicons-star-]{color:var(--wp--preset--color--pomegrade-1)}.rtl .dashicons-star-half{transform:rotateY(-180deg)}#main .plugin-section{margin:0 auto var(--wp--preset--spacing--60)}#main .plugin-section:last-of-type{margin-bottom:0}#main .plugin-section .section-header{align-items:center;column-gap:10px;display:flex;justify-content:space-between;margin-bottom:var(--wp--style--block-gap)}#main .plugin-section .section-header>h2{margin-bottom:0}#main .plugin-section .section-link{align-self:center;flex:0 0 auto;text-decoration:underline}.pagination .nav-links{margin-top:var(--wp--style--block-gap);padding-top:var(--wp--style--block-gap);text-align:center}.pagination .nav-links a{text-decoration:none}.pagination .nav-links .page-numbers{cursor:pointer;display:inline-block;min-width:2em;padding:8px;text-align:center}.pagination .nav-links .page-numbers.dots,.pagination .nav-links .page-numbers.next,.pagination .nav-links .page-numbers.prev{background:none;font-size:.9em;width:auto}.pagination .nav-links .page-numbers.dots{cursor:inherit}@media screen and (max-width:737px){.pagination .nav-links .page-numbers.next,.pagination .nav-links .page-numbers.prev{font-size:0;min-width:auto;padding:0}.pagination .nav-links .page-numbers.next:after,.pagination .nav-links .page-numbers.prev:before{display:inline-block;font-size:medium;line-height:1.5;min-width:2em;padding:8px}.pagination .nav-links .page-numbers.prev:before{content:"‹"}.pagination .nav-links .page-numbers.next:after{content:"›"}}.pagination .nav-links span.page-numbers{font-weight:700}.pagination .nav-links span.page-numbers.current{text-decoration:underline}@keyframes favme-anime{0%{font-size:var(--wp--preset--font-size--large);opacity:1;-webkit-text-stroke-color:#0000}25%{color:#fff;font-size:var(--wp--preset--font-size--small);opacity:.6;-webkit-text-stroke-width:1px;-webkit-text-stroke-color:#dc3232}75%{color:#fff;font-size:var(--wp--preset--font-size--large);opacity:.6;-webkit-text-stroke-width:1px;-webkit-text-stroke-color:#dc3232}to{font-size:var(--wp--preset--font-size--normal);opacity:1;-webkit-text-stroke-color:#0000}}.plugin-favorite{height:calc(var(--wp--custom--button--spacing--padding--top)*2 + var(--wp--preset--font-size--normal)*2);text-align:center;vertical-align:top;width:36px}.plugin-favorite .plugin-favorite-heart{align-items:center;background:none;border:0;border-radius:0;box-shadow:none;color:#cbcdce;cursor:pointer;display:flex;font-size:var(--wp--preset--font-size--large);height:100%;justify-content:center;line-height:1;margin:0;outline:none;padding:0;text-decoration:none}.plugin-favorite .plugin-favorite-heart.favorited{color:#dc3232}.plugin-favorite .plugin-favorite-heart:focus,.plugin-favorite .plugin-favorite-heart:hover{color:var(----wp--preset--color--charcoal-2);text-decoration:none}.plugin-favorite .plugin-favorite-heart:after{content:"\f487";font-family:dashicons;vertical-align:top}.plugin-banner img{aspect-ratio:3.089;border-radius:var(--wp--custom--button--border--radius);display:block;margin:0 auto var(--wp--preset--spacing--30);width:100%}.plugin-releases{list-style-type:none;padding:0}.plugin-releases-item{border:1px solid var(--wp--preset--color--light-grey-1);border-radius:4px;margin-bottom:var(--wp--preset--spacing--30);padding:var(--wp--style--block-gap)}.plugin-releases-item-header{display:flex;justify-content:space-between}.plugin-releases-item-header h3{margin:0!important}@keyframes hideAnimation{to{visibility:hidden}}.categorization .help{color:var(--wp--preset--color--charcoal-4);display:inline-block;font-size:.8rem;margin-top:0}.categorization label{display:block;font-weight:700}.categorization input{width:100%}.categorization .success-msg{background:#eff7ed;border:solid #64b450;border-width:0 5px 0 0;font-size:.8rem;margin-right:1rem;opacity:0;overflow:auto;padding:.1rem .6rem .2rem;position:relative;transition:visibility 0s,opacity .5s linear;-webkit-user-select:none;user-select:none;visibility:hidden}.categorization .success-msg.saved{animation:hideAnimation 0s ease-in 5s;animation-fill-mode:forwards;opacity:1;visibility:visible}.plugin-changelog code{font-size:var(--wp--preset--font-size--small)}.plugin-developers .contributors-list li{align-items:center;display:flex;padding-bottom:var(--wp--style--block-gap)}@media screen and (min-width:500px){.plugin-developers .contributors-list{display:flex;flex-wrap:wrap}.plugin-developers .contributors-list li{padding-bottom:unset;width:50%}}.plugin-faq dl{border-bottom:1px solid var(--wp--preset--color--light-grey-1)}.plugin-faq dt{border-top:1px solid var(--wp--preset--color--light-grey-1);cursor:pointer;padding:1rem 0}.plugin-faq dt:before{content:"\f347";float:left;font-family:dashicons;margin:0 1rem}.plugin-faq dt.open:before{content:"\f343"}.plugin-faq dt .button-link{display:inherit;text-align:inherit}.plugin-faq dt .button-link.no-focus{box-shadow:none;outline:none}.plugin-faq dt h3{color:var(--wp--custom--link--color--text);display:inline;font-size:var(--wp--preset--font-size--normal);font-weight:400;margin-bottom:0;margin-top:0!important;text-decoration:underline}.plugin-faq dt h3 button{all:inherit;max-width:calc(100% - 60px)}.plugin-faq dt h3 button:focus,.plugin-faq dt h3 button:hover{text-decoration:underline}.plugin-faq dd{display:none;margin:0 0 1rem}.no-js .plugin-faq dd{display:block}.plugin-faq dd p{margin:0}.plugin-faq dd p+p{margin-top:1rem}.image-gallery{-webkit-user-select:none;user-select:none}.image-gallery-content{position:relative}.image-gallery-content .image-gallery-left-nav,.image-gallery-content .image-gallery-right-nav{border-color:var(--wp--preset--color--light-grey-1);display:none;font-size:48px;height:100%;position:absolute;top:0;transition:background .1s ease,border .1s ease;z-index:4}@media (max-width:768px){.image-gallery-content .image-gallery-left-nav,.image-gallery-content .image-gallery-right-nav{font-size:3.4em}}@media (min-width:768px){.image-gallery-content .image-gallery-left-nav:hover,.image-gallery-content .image-gallery-right-nav:hover{background:#fff;border:1px solid var(--wp--preset--color--light-grey-1);opacity:.8}}.image-gallery-content .image-gallery-left-nav:before,.image-gallery-content .image-gallery-right-nav:before{font-family:dashicons;position:relative}.image-gallery-content .image-gallery-left-nav{right:0}.image-gallery-content .image-gallery-left-nav:before{content:"\f345"}.image-gallery-content .image-gallery-left-nav:hover{margin-right:-1px}.image-gallery-content .image-gallery-right-nav{left:0}.image-gallery-content .image-gallery-right-nav:before{content:"\f341"}.image-gallery-content .image-gallery-right-nav:hover{margin-left:-1px}.image-gallery-content:hover .image-gallery-left-nav,.image-gallery-content:hover .image-gallery-right-nav{display:block}.image-gallery-slides{border:1px solid #eee;line-height:0;overflow:hidden;position:relative;white-space:nowrap}.image-gallery-slide{right:0;position:absolute;top:0;width:100%}.image-gallery-slide.center{position:relative}.image-gallery-slide .image-gallery-image{margin:0}.image-gallery-slide img{display:block;margin:0 auto}.image-gallery-slide .image-gallery-description{background:var(--wp--preset--color--light-grey-2);color:var(--wp--preset--color--charcoal-1);font-size:var(--wp--preset--font-size--small);line-height:1.5;padding:10px 20px;white-space:normal}@media (max-width:768px){.image-gallery-slide .image-gallery-description{padding:8px 15px}}.image-gallery-thumbnails{background:#fff;margin-top:5px}.image-gallery-thumbnails .image-gallery-thumbnails-container{cursor:pointer;text-align:center;white-space:nowrap}.image-gallery-thumbnail{border:1px solid #eee;display:table-cell;margin-left:5px;max-height:100px;overflow:hidden}.image-gallery-thumbnail .image-gallery-image{margin:0}.image-gallery-thumbnail img{vertical-align:middle;width:100px}@media (max-width:768px){.image-gallery-thumbnail img{width:75px}}.image-gallery-thumbnail:hover{box-shadow:0 1px 8px #0000004d}.image-gallery-thumbnail.active{border:1px solid #337ab7}.image-gallery-thumbnail-label{color:#222;font-size:1em}@media (max-width:768px){.image-gallery-thumbnail-label{font-size:.8em}}.image-gallery-index{background:#0006;bottom:0;color:#fff;line-height:1;padding:10px 20px;position:absolute;left:0;z-index:4}.plugin-reviews{list-style-type:none;margin:0;padding:0}.plugin-reviews .plugin-review{border-bottom:1px solid var(--wp--preset--color--light-grey-1);margin:2rem 0 1rem;padding-bottom:1rem}.plugin-reviews .plugin-review a{text-decoration:none}.plugin-reviews .plugin-review:first-child{margin-top:0}.plugin-reviews .plugin-review .header-top{display:flex}.plugin-reviews .plugin-review .header-top .wporg-ratings{flex-shrink:0}.plugin-reviews .plugin-review .header-bottom{display:flex;margin-top:4px}.plugin-reviews .review-avatar{display:none}.plugin-reviews .review,.plugin-reviews .review-author,.plugin-reviews .wporg-ratings{display:inline-block;vertical-align:top}.plugin-reviews .review-header{margin:0 0 .5rem}.plugin-reviews .review-title{font-size:var(--wp--preset--font-size--normal);font-weight:500;margin:2px 12px 0 0!important;text-transform:inherit}.plugin-reviews .review-author,.plugin-reviews .review-date,.plugin-reviews .review-replies{font-size:var(--wp--preset--font-size--extra-small);line-height:1.25}.plugin-reviews .review-date,.plugin-reviews .review-replies{color:var(--wp--preset--color--charcoal-4);font-size:var(--wp--preset--font-size--extra-small);margin-right:12px}.plugin-reviews .review-replies:before{content:"•";margin-left:12px}.plugin-reviews .review-content{margin:1em 0}@media screen and (min-width:737px){.plugin-reviews .review-avatar{display:inline-block;vertical-align:top}.plugin-reviews .review-avatar .avatar{margin-left:1rem}.plugin-reviews .review{width:calc(100% - 60px - 1rem)}.plugin-reviews .review-header{margin:0}.plugin-reviews .review-author,.plugin-reviews .review-date,.plugin-reviews .review-replies{line-height:1}}.plugin-reviews .reviews-link{display:inline-block;font-size:var(--wp--preset--font-size--small);text-decoration:none}.plugin-reviews .reviews-link:after{content:"\f341";float:left;font-family:dashicons;padding-right:5px;position:relative;top:1px;vertical-align:text-top}.plugin-screenshots{list-style-type:none;margin:0;padding:0}.plugin-screenshots .image-gallery-content{display:table;width:100%}.plugin-screenshots .image-gallery-slides{display:table-cell;max-height:600px}.plugin-screenshots .image-gallery-image img{max-height:550px;max-width:100%}.plugin-screenshots .image-gallery-thumbnail{vertical-align:top}.plugin-screenshots .image-gallery-thumbnail img{max-height:100px}.plugin-screenshots .image-gallery-thumbnails{overflow:hidden}.download-history-stats td{text-align:left}.previous-versions{max-width:60%}@media screen and (min-width:737px){.previous-versions{height:32px;vertical-align:middle}}hr{margin:2.5rem auto}.section h1:nth-child(2),.section h2:nth-child(2),.section h3:nth-child(2),.section h4:nth-child(2),.section h5:nth-child(2),.section h6:nth-child(2){margin-top:0}.section-heading{font-family:var(--wp--preset--font-family--inter)!important;font-size:var(--wp--preset--font-size--heading-5)!important;font-style:normal;font-weight:600;line-height:var(--wp--custom--heading--level-5--typography--line-height)}.section-intro{color:var(--wp--preset--color--charcoal-4);font-size:var(--wp--preset--font-size--small);margin-bottom:var(--wp--preset--spacing--20);margin-top:var(--wp--preset--spacing--10)}.wporg-spinner{--local-size:16px;--spinner-color:var(--wp--custom--spinner--color,var(--wp--preset--color--blueberry-1,currentColor));--background-stroke-color:#ddd;background-color:initial;display:inline-block;height:var(--local-size);position:relative;width:var(--local-size)}.wporg-spinner:before{border:1.5px solid var(--background-stroke-color);border-radius:50%}.wporg-spinner:after,.wporg-spinner:before{box-sizing:border-box;content:"";display:block;height:100%;width:100%}.wporg-spinner:after{animation:wporg-spinner-rotate 1.4s linear infinite;border-bottom:1.5px solid #0000;border-right:1.5px solid #0000;border-radius:50%;border-left:1.5px solid #0000;border-left-color:var(--spinner-color);border-top:1.5px solid #0000;border-top-color:var(--spinner-color);right:0;position:absolute;top:0;transform-origin:center}@keyframes wporg-spinner-rotate{0%{transform:rotate(0deg)}to{transform:rotate(-1turn)}}.type-plugin .plugin-notice{margin-top:0}.type-plugin .plugin-header{border-bottom:0;padding-top:var(--wp--preset--spacing--40)}.type-plugin .plugin-header:after,.type-plugin .plugin-header:before{content:"";display:table;table-layout:fixed}.type-plugin .plugin-header:after{clear:both}.type-plugin .plugin-header .entry-heading-container{display:flex;flex-direction:column;justify-content:space-between}@media screen and (max-width:599px){.type-plugin .plugin-header .entry-heading-container{--wp--custom--button--spacing--padding--top:12px;--wp--custom--button--spacing--padding--bottom:12px;--wp--custom--button--spacing--padding--left:16px;--wp--custom--button--spacing--padding--right:16px}}@media screen and (min-width:700px){.type-plugin .plugin-header .entry-heading-container{flex-direction:row}}.type-plugin .plugin-header .entry-heading-container>:first-child{align-items:center;display:flex;flex:1}.type-plugin .plugin-header .plugin-actions{align-items:center;display:flex;gap:16px;margin-top:var(--wp--style--block-gap)}@media screen and (min-width:700px){.type-plugin .plugin-header .plugin-actions{margin-top:0;margin-inline-start:1rem}}.type-plugin .plugin-header .plugin-actions>.button,.type-plugin .plugin-header .plugin-actions>div{display:inline-block;text-align:center}@media screen and (max-width:34em){.type-plugin .plugin-header .plugin-actions>.button.download-button{display:none}}.type-plugin .plugin-header .plugin-title{clear:none;font-size:var(--wp--preset--font-size--heading-3);font-weight:400;line-height:var(--wp--custom--heading--level-3--typography--line-height);margin:0}.type-plugin .plugin-header .plugin-title a{color:inherit;text-decoration:none}.type-plugin .plugin-header .plugin-title a:hover{text-decoration:underline}.type-plugin .plugin-header .byline{color:var(--wp--preset--color--charcoal-4);display:block;margin-top:4px}.type-plugin .plugin-banner+.plugin-header{padding-top:0}.type-plugin .plugin-banner+.plugin-header>.notice:first-of-type{margin-top:0}.type-plugin .tabs{border-bottom:1px solid var(--wp--preset--color--light-grey-1);list-style:none;margin:0}.type-plugin .tabs li{border:1px solid #0000;display:inline-block;font-size:.9rem;margin-bottom:-1px;transition:background .2s ease}.type-plugin .tabs li a{background:#fff;border:0;color:var(--wp--preset--color--charcoal-1);display:block;font-size:var(--wp--preset--font-size--normal);padding:.64rem 1.25rem;text-decoration:none}.type-plugin .tabs li a.active,.type-plugin .tabs li a:hover{background:var(--wp--preset--color--light-grey-2)!important}.type-plugin .tabs li.active,.type-plugin .tabs li:hover{border:1px solid var(--wp--preset--color--light-grey-1)}@media screen and (max-width:38em){.type-plugin .tabs{border-top:1px solid var(--wp--preset--color--light-grey-1)}.type-plugin .tabs li{display:block;margin-bottom:1px}.type-plugin .tabs li,.type-plugin .tabs li.active,.type-plugin .tabs li:hover{border:none;border-bottom:1px solid var(--wp--preset--color--light-grey-1)}}@media screen and (min-width:737px){.type-plugin .entry-content{float:right;padding:0;width:65%}}.type-plugin .entry-content>div,.type-plugin .entry-content>div~button{border:0;display:none}.type-plugin .entry-content ol>li>p,.type-plugin .entry-content ul>li>p{margin:0}.type-plugin .entry-content #admin{display:block!important}.type-plugin .plugin-blocks-list{list-style:none;margin-right:0;padding-right:0}.type-plugin .plugin-blocks-list .plugin-blocks-list-item{display:grid;grid-template-columns:auto 1fr;margin-bottom:var(--wp--style--block-gap)}.type-plugin .plugin-blocks-list .block-icon{border:1px solid var(--wp--preset--color--light-grey-1);border-radius:2px;display:inline-block;height:3.5rem;line-height:16px;margin-left:var(--wp--style--block-gap);padding:var(--wp--style--block-gap);width:3.5rem}.type-plugin .plugin-blocks-list .block-icon.dashicons{color:inherit}.type-plugin .plugin-blocks-list .block-icon.dashicons:before{margin-right:-3px}.type-plugin .plugin-blocks-list .block-icon svg{height:16px;width:16px;fill:currentColor;margin-right:-1px}.type-plugin .plugin-blocks-list .block-title{align-self:center;font-weight:700}.type-plugin .plugin-blocks-list .has-description .block-icon{grid-row:1/span 2}.type-plugin .plugin-blocks-list .has-description .block-title{margin-bottom:.4em}.type-plugin span#description,.type-plugin span#developers,.type-plugin span#installation,.type-plugin span#releases,.type-plugin span#reviews{position:fixed}.type-plugin span#advanced.displayed~#section-links .tabs li#tablink-advanced,.type-plugin span#developers:target~#section-links .tabs li#tablink-developers,.type-plugin span#installation:target~#section-links .tabs li#tablink-installation,.type-plugin span#releases:target~#section-links .tabs li#tablink-releases,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~span#advanced:not(.displayed)~#section-links .tabs li#tablink-description,.type-plugin span#reviews:target~#section-links .tabs li#tablink-reviews{background:#fff;border:1px solid var(--wp--preset--color--light-grey-1);border-bottom:0;padding-bottom:1px}@media screen and (max-width:38em){.type-plugin span#advanced.displayed~#section-links .tabs li#tablink-advanced.active,.type-plugin span#advanced.displayed~#section-links .tabs li#tablink-advanced:hover,.type-plugin span#developers:target~#section-links .tabs li#tablink-developers.active,.type-plugin span#developers:target~#section-links .tabs li#tablink-developers:hover,.type-plugin span#installation:target~#section-links .tabs li#tablink-installation.active,.type-plugin span#installation:target~#section-links .tabs li#tablink-installation:hover,.type-plugin span#releases:target~#section-links .tabs li#tablink-releases.active,.type-plugin span#releases:target~#section-links .tabs li#tablink-releases:hover,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~span#advanced:not(.displayed)~#section-links .tabs li#tablink-description.active,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~span#advanced:not(.displayed)~#section-links .tabs li#tablink-description:hover,.type-plugin span#reviews:target~#section-links .tabs li#tablink-reviews.active,.type-plugin span#reviews:target~#section-links .tabs li#tablink-reviews:hover{padding-bottom:1px!important}}.type-plugin span#section-links{display:flex;flex-flow:row wrap;margin-top:var(--wp--preset--spacing--30)}.type-plugin span#section-links .tabs{flex:1 1 auto;padding-right:0}@media screen and (max-width:38em){.type-plugin span#section-links .tabs{border:1px solid var(--wp--preset--color--light-grey-1)!important}.type-plugin span#section-links .tabs li{border:none!important}.type-plugin span#section-links{display:block}}.type-plugin #link-support{align-self:flex-end;border-bottom:1px solid var(--wp--preset--color--light-grey-1);flex:0 0 auto;font-size:.9rem}.type-plugin #link-support a{display:inline-block;font-size:var(--wp--preset--font-size--normal);padding:.64rem 1.25rem .64rem 0}@media screen and (max-width:38em){.type-plugin #link-support{border-bottom:0;display:block;width:100%}.type-plugin #link-support a{padding-left:1.25rem}}.type-plugin span#developers:target~.entry-content #tab-changelog,.type-plugin span#developers:target~.entry-content #tab-developers,.type-plugin span#developers:target~.entry-content #tab-developers .plugin-development,.type-plugin span#developers:target~.entry-content #tab-developers~button,.type-plugin span#installation:target~.entry-content #tab-installation,.type-plugin span#releases:target~.entry-content #tab-releases,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~.entry-content #blocks,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~.entry-content #faq,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~.entry-content #screenshots,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~.entry-content #tab-description,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~.entry-content #tab-developers,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~.entry-content #tab-developers~button,.type-plugin span#reviews:target~.entry-content #tab-reviews{display:block}.type-plugin span#developers:target~.entry-content #tab-developers .plugin-contributors,.type-plugin span#installation:target~.entry-meta .plugin-contributors,.type-plugin span#releases:target~.entry-meta,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~.entry-content #tab-developers .plugin-development,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~.entry-meta .plugin-contributors,.type-plugin span#reviews:target~.entry-meta .plugin-contributors,.type-plugin span#reviews:target~.entry-meta .plugin-donate,.type-plugin span#reviews:target~.entry-meta .plugin-meta,.type-plugin span#reviews:target~.entry-meta .plugin-support{display:none}.type-plugin span#releases:target~.entry-content{width:100%}@media screen and (min-width:737px){.type-plugin .entry-content,.type-plugin .entry-meta{padding-right:0;padding-left:0}.type-plugin .entry-meta{float:left;width:30%}}.type-plugin .plugin-danger-zone h4{margin-top:var(--wp--preset--spacing--60)}.plugin-releases-listing{border-collapse:collapse;width:100%}.plugin-releases-listing tbody td:nth-child(4) div{font-size:14px}.plugin-releases-listing-actions{display:flex;flex-direction:column;gap:8px}@media screen and (min-width:34em){.plugin-releases-listing-actions{flex-direction:row}}.plugin-adopt-me{background:#e6f4fa;margin-top:36px;padding:12px}.plugin-adopt-me .widget-title{margin-top:0}.plugin-adopt-me p{margin-bottom:0}.widget.plugin-categorization{margin-top:var(--wp--style--block-gap)}.widget.plugin-categorization .widget-head h2{font-size:var(--wp--preset--font-size--heading-4);margin-bottom:.2rem;margin-top:0}.widget.plugin-categorization .widget-head a{font-size:var(--wp--preset--font-size--small)}.widget.plugin-categorization .widget-head a[href=""]{display:none}.widget.plugin-categorization p{font-size:var(--wp--preset--font-size--small);margin-top:.5rem}.widget.plugin-categorization~.plugin-meta li:first-child{border-top:1px solid var(--wp--preset--color--light-grey-1)}.committer-list,.support-rep-list{list-style:none;margin:0;padding:0}.committer-list li,.support-rep-list li{padding-bottom:.5rem}.committer-list li .remove,.support-rep-list li .remove{color:red;visibility:hidden}.committer-list li:hover .remove,.support-rep-list li:hover .remove{visibility:visible}.committer-list .avatar,.support-rep-list .avatar{float:right;margin-left:10px}.committer-list .spinner,.support-rep-list .spinner{position:relative}.committer-list .spinner:after,.support-rep-list .spinner:after{background:url(/wp-admin/images/spinner.gif) no-repeat 50%;background-size:20px 20px;content:"";display:block;height:20px;margin:-10px 0 0 -10px;position:absolute;left:-50%;top:50%;transform:translateZ(0);width:20px}@media (min-resolution:120dpi),print{.committer-list .spinner:after,.support-rep-list .spinner:after{background-image:url(/wp-admin/images/spinner-2x.gif)}}.committer-list .new,.support-rep-list .new{margin-top:var(--wp--style--block-gap)}.plugin-contributors.read-more{border-bottom:1px solid var(--wp--preset--color--light-grey-1);max-height:200px;overflow:hidden;padding-bottom:1px}.plugin-contributors.read-more.toggled{max-height:none}.no-js .plugin-contributors.read-more{max-height:none;overflow:auto}.contributors-list{list-style-type:none;margin:0;padding:0}.contributors-list li{align-items:center;display:flex;margin-bottom:1rem}.contributors-list .avatar{float:right;margin-left:10px}.plugin-meta{font-size:var(--wp--preset--font-size--small);margin-top:var(--wp--style--block-gap)}.plugin-meta ul{list-style-type:none;margin:0;padding:0}.plugin-meta li{border-top:1px solid var(--wp--preset--color--light-grey-1);display:inline-block;padding:.5rem 0;position:relative;width:100%}.plugin-meta li strong{float:left;font-weight:500}.plugin-meta li .plugin-admin{font-size:var(--wp--preset--font-size--normal);font-weight:400}.plugin-meta li:first-child{border-top:0}.plugin-meta .languages,.plugin-meta .tags{float:left;text-align:left}.plugin-meta .tags{width:60%}.plugin-meta .languages button{font-size:var(--wp--preset--font-size--small);outline:revert}.plugin-meta .languages .popover{margin-top:8px}.plugin-meta .languages .popover-trigger{color:var(--wp--custom--link--color--text);text-decoration:underline}.plugin-meta .languages .popover-trigger:hover{text-decoration:underline}.plugin-meta [rel=tag]{background:var(--wp--preset--color--blueberry-4);border-radius:2px;color:var(--wp--preset--color--charcoal-1);display:inline-block;font-size:var(--wp--preset--font-size--extra-small);margin:2px;max-width:95%;overflow:hidden;padding:3px 6px;position:relative;text-decoration:none;text-overflow:ellipsis;white-space:nowrap;width:auto}.plugin-meta [rel=tag]:hover{text-decoration:underline}.popover{background-color:#fff;border:1px solid var(--wp--preset--color--light-grey-1);border-radius:2px;box-shadow:0 2px 10px #0000001a;display:none;right:0;margin-top:10px;max-width:300px;padding:1em 1em 2em;position:absolute;width:100%;z-index:100}.popover.is-top-right{right:auto;left:0}.popover.is-visible{display:block}.popover .popover-close{bottom:.5em;color:var(--wp--custom--link--color--text);font-size:small;position:absolute;left:.6em}.popover .popover-close:active,.popover .popover-close:focus,.popover .popover-close:hover{text-decoration:underline}.popover .popover-arrow{border:10px solid #0000;border-bottom:10px solid #ccc;border-top:none;height:0;position:absolute;left:20px;top:-10px;width:0;z-index:-1}.popover .popover-arrow:after{border:10px solid #0000;border-bottom:10px solid #fff;border-top:none;content:"";right:-10px;position:absolute;top:2px}.popover .popover-inner{text-align:right}.popover .popover-inner p:first-child{margin-top:0}.popover .popover-inner p:last-child{margin-bottom:0}.plugin-support .counter-container{margin-bottom:1rem;position:relative}.plugin-support .counter-back,.plugin-support .counter-bar{display:inline-block;height:30px;vertical-align:middle}.plugin-support .counter-back{background-color:var(--wp--preset--color--light-grey-2);width:100%}.plugin-support .counter-bar{background-color:var(--wp--preset--color--acid-green-2);display:block}.plugin-support .counter-count{font-size:var(--wp--preset--font-size--extra-small);right:8px;position:absolute;top:8px;width:100%;width:calc(100% - 8px)}@media screen and (min-width:737px){.plugin-support .counter-count{top:5px}}.home .widget,.widget-area.home .widget{display:inline-block;font-size:var(--wp--preset--font-size--small);margin:0;margin:var(--wp--style--block-gap);vertical-align:top;width:auto}@media screen and (min-width:737px){.home .widget,.widget-area.home .widget{margin:0;width:30%}.home .widget:first-child,.widget-area.home .widget:first-child{margin-left:5%}.home .widget:last-child,.widget-area.home .widget:last-child{margin-right:5%}}.home .widget select,.widget-area.home .widget select{max-width:100%}.entry-meta .widget-title{font-size:var(--wp--preset--font-size--heading-4)}body.single.single-plugin .entry-meta{font-size:var(--wp--preset--font-size--normal)}.widget-area{margin:0 auto;padding:var(--wp--preset--spacing--40) 0}.widget-area .widget-title{font-size:var(--wp--preset--font-size--heading-1);font-weight:var(--wp--custom--heading--typography--font-weight);margin-top:var(--wp--preset--spacing--50)}.widget-area .textwidget{text-wrap:pretty} \ No newline at end of file +@charset "UTF-8";.avatar{border-radius:50%;vertical-align:middle}.wp-block-wporg-language-suggest>p{margin:0}.block-validator>details summary{padding:var(--wp--style--block-gap) 0}.block-validator .block-validator__plugin-form label{display:block;margin-bottom:.8em}.block-validator .block-validator__plugin-input-container{display:flex;max-width:34rem}.block-validator .block-validator__plugin-input{flex:1}.block-validator .block-validator__plugin-submit{flex:0;margin-right:4px}@media (max-width:36rem){.block-validator .block-validator__plugin-submit{width:100%}.block-validator .block-validator__plugin-input-container{display:block}.block-validator .block-validator__plugin-input{width:100%}.block-validator .block-validator__plugin-submit{margin-right:0;margin-top:var(--wp--style--block-gap)}}.block-validator .notice details,.block-validator .notice p{font-size:var(--wp--preset--font-size--normal);margin:var(--wp--style--block-gap) 0}.block-validator .notice details p{font-size:var(--wp--preset--font-size--small);margin-right:1rem}.block-validator .notice summary{display:list-item}.block-validator figure{border:1px solid #aaa;display:inline-block;padding:1em}.block-validator .test-screenshot{text-align:center}.block-validator .plugin-upload-form-controls{align-items:center;display:flex;gap:4px}.block-validator .plugin-upload-form-controls>label{border:1px solid var(--wp--custom--form--border--color);border-radius:var(--wp--custom--form--border--radius);cursor:pointer;min-width:200px;padding:4px 8px}.notice{background:#fff;border-right:4px solid #fff;box-shadow:0 1px 1px 0 #0000001a;font-size:var(--wp--preset--font-size--small);margin:var(--wp--style--block-gap) 0;padding:1px 12px}.notice p,.notice ul{margin:.5em 0;padding:2px}.notice pre{white-space:pre-wrap}.notice ul{list-style:none;margin:.5em}.notice.notice-alt{box-shadow:none}.notice.notice-large{padding:10px 20px}.notice.notice-success{border-right-color:#46b450}.notice.notice-success.notice-alt{background-color:#ecf7ed}.notice.notice-warning{border-right-color:#ffb900}.notice.notice-warning.notice-alt{background-color:#fff8e5}.notice.notice-error{border-right-color:#dc3232}.notice.notice-error.notice-alt{background-color:#fbeaea}.notice.notice-info{border-right-color:#00a0d2}.notice.notice-info.notice-alt{background-color:#e5f5fa}.notice.hidden{display:none}.plugin-upload-form.hidden{display:none}.plugin-upload-form fieldset{border:none;margin:0;padding:0}.plugin-upload-form legend{margin:1rem 0}.plugin-upload-form .category-checklist{list-style-type:none;margin:0 0 2rem}.plugin-upload-form .category-checklist li{float:right;padding:.5rem 0;width:50%}@media screen and (min-width:48em){.plugin-upload-form .category-checklist li{padding:0}.plugin-upload-form .category-checklist label{font-size:var(--wp--preset--font-size--small)}.plugin-upload-form label.button{line-height:1.8}}.plugin-upload-form .plugin-file{height:.1px;opacity:0;overflow:hidden;position:absolute;width:.1px;z-index:-1}.plugin-queue-message code{font-size:1em}.plugin-queue-message dialog.slug-change input[type=text]{font-family:monospace;font-size:1.2em;width:20em}:where(main) a:where(:not(.wp-element-button,.wp-block-wporg-link-wrapper)):focus,:where(main) button:where(:not([class*=wp-block-button])):focus{border-radius:2px;box-shadow:0 0 0 1.5px currentColor;outline:none}.wporg-filter-bar{--wporg--filter-bar--gap:20px;--wporg--filter-bar--color:#40464d;--wporg--filter-bar--active--background-color:var(--wp--custom--button--color--background);--wporg--filter-bar--focus--border-color:var(--wp--custom--button--focus--border--color);margin:var(--wp--style--block-gap) 0}.wporg-filter-bar .wporg-query-filter__toggle.is-active,.wporg-filter-bar .wporg-query-filter__toggle:active,.wporg-filter-bar .wporg-query-filter__toggle:focus{background-color:var(--wporg--filter-bar--active--background-color);color:var(--wp--custom--button--color--text)}.wporg-filter-bar .wporg-filter-bar__navigation{flex-grow:1;margin-bottom:var(--wporg--filter-bar--gap)}.wporg-filter-bar .wporg-filter-bar__navigation ul{display:inline-block;font-size:13px;line-height:1.538;list-style:none;margin:0;padding-right:0}.wporg-filter-bar .wporg-filter-bar__navigation ul li{display:inline-block}.wporg-filter-bar .wporg-filter-bar__navigation ul li+li{margin-right:8px}.wporg-filter-bar .wporg-filter-bar__navigation ul a{border-radius:2px;color:var(--wporg--filter-bar--color);display:block;padding:8px 12px;text-decoration:none}.wporg-filter-bar .wporg-filter-bar__navigation ul a:focus,.wporg-filter-bar .wporg-filter-bar__navigation ul a:hover{text-decoration:underline}.wporg-filter-bar .wporg-filter-bar__navigation ul a:focus-visible{box-shadow:none;outline:1.5px solid var(--wporg--filter-bar--focus--border-color);outline-offset:-.5px}.wporg-filter-bar .wporg-filter-bar__navigation ul a.is-active{background-color:var(--wporg--filter-bar--active--background-color);color:#fff}.wporg-filter-bar .wporg-filter-bar__navigation ul a.is-active:focus,.wporg-filter-bar .wporg-filter-bar__navigation ul a.is-active:hover{color:#fff}.wporg-filter-bar .wporg-filter-bar__navigation ul a.is-active:focus-visible{box-shadow:inset 0 0 0 1.5px #fff;outline:1.5px solid var(--wporg--filter-bar--focus--border-color);outline-offset:-.5px}@media screen and (min-width:737px){.wporg-filter-bar{align-items:center;display:flex;flex-wrap:wrap;gap:var(--wporg--filter-bar--gap);justify-content:space-between;width:100%}.wporg-filter-bar .wporg-filter-bar__navigation{margin-bottom:0}}.wp-block-search__inside-wrapper{background:var(--wp--preset--color--light-grey-2);border:none}.button-link{background:none;border:0;border-radius:0;box-shadow:none;cursor:pointer;margin:0;outline:none;padding:0}.button{background-color:var(--wp--custom--button--color--background);border:0;border-radius:var(--wp--custom--button--border--radius);color:var(--wp--custom--button--color--text);cursor:pointer;opacity:1;padding:calc(var(--wp--custom--button--small--spacing--padding--top) + var(--wp--custom--button--border--width)) calc(var(--wp--custom--button--small--spacing--padding--left) + var(--wp--custom--button--border--width)) calc(var(--wp--custom--button--small--spacing--padding--bottom) + var(--wp--custom--button--border--width)) calc(var(--wp--custom--button--small--spacing--padding--right) + var(--wp--custom--button--border--width));vertical-align:middle}.button.button-large{padding:calc(var(--wp--custom--button--spacing--padding--top) + var(--wp--custom--button--border--width)) calc(var(--wp--custom--button--spacing--padding--left) + var(--wp--custom--button--border--width)) calc(var(--wp--custom--button--spacing--padding--bottom) + var(--wp--custom--button--border--width)) calc(var(--wp--custom--button--spacing--padding--right) + var(--wp--custom--button--border--width))}input+button.button,select+button.button{margin-top:-3px}.button.disabled{cursor:not-allowed;opacity:.6}.wp-block-post-content a.button{text-decoration:none}.wp-block-button__link{width:auto}pre{background-color:#f7f7f7;border:1px solid var(--wp--preset--color--light-grey-1);overflow:scroll;padding:20px}code,pre{border-radius:2px}code{background:var(--wp--preset--color--light-grey-2);display:inline-block;line-height:var(--wp--custom--body--extra-small--typography--line-height);max-width:100%;padding-inline-end:3px;padding-inline-start:3px}dialog{border:0;box-shadow:-6px 6px 6px #0003;min-height:50%;min-width:30%}@media (min-width:1280px){dialog{max-width:55%}}dialog::backdrop{background:#000;opacity:.5}dialog .close{color:inherit;cursor:pointer;position:absolute;left:1em;text-decoration:none!important;top:1em}.plugin-card{display:flex;flex-direction:column;height:100%;justify-content:space-between}.plugin-card .entry{display:inline-block;vertical-align:top}.plugin-card .entry-title{display:block;display:-webkit-box;font-size:var(--wp--preset--font-size--heading-5);font-weight:500;line-height:1.3;margin-bottom:2px!important;max-height:2.6em;overflow:hidden;-webkit-line-clamp:2;-webkit-box-orient:vertical}.plugin-card .entry-title a{display:block;text-decoration:none}.plugin-card .entry-title a:focus{box-shadow:none}.plugin-card .entry-excerpt{clear:both;font-size:var(--wp--preset--font-size--small)}.plugin-card .entry-excerpt p{margin:0}.plugin-card footer{font-size:var(--wp--preset--font-size--small);margin-top:var(--wp--style--block-gap)}.plugin-card footer span{color:var(--wp--preset--color--charcoal-4);display:inline-block;line-height:var(--wp--preset--font-size--normal);overflow:hidden}.plugin-card footer span.plugin-author{width:100%}.plugin-card footer span.plugin-author span{color:var(--wp--preset--color--charcoal-1)}.plugin-card footer span.plugin-author path{fill:var(--wp--preset--color--charcoal-1)}.plugin-card footer span svg{height:24px;vertical-align:bottom;width:24px}.plugin-card footer span svg path{fill:var(--wp--preset--color--charcoal-4)}.plugin-card footer span.active-installs{min-width:48%}.plugin-cards{cursor:pointer}.plugin-cards .is-style-cards-grid li:hover{background-color:#fff!important;border:1px solid var(--wp--preset--color--charcoal-1)!important}.plugin-cards .is-style-cards-grid li:focus-within{border-color:#0000;border-radius:2px;box-shadow:0 0 0 1.5px var(--wp--custom--link--color--text)}@media screen and (max-width:737px){.plugin-cards .is-style-cards-grid{grid-template-columns:100%}}.entry-thumbnail{display:none;margin-bottom:var(--wp--style--block-gap);margin-left:var(--wp--style--block-gap);max-width:80px}.entry-thumbnail .plugin-icon{background-size:cover;border-radius:var(--wp--custom--button--border--radius);display:block;height:80px;width:80px}@media screen and (min-width:21em){.entry-thumbnail{display:inline-block;float:right;vertical-align:top}}.single .entry-thumbnail{display:none;float:right;height:96px;margin-bottom:0;max-width:96px}@media screen and (min-width:26em){.single .entry-thumbnail{display:block}}.single .entry-thumbnail .plugin-icon{background-size:contain!important;height:96px!important;width:96px!important}.plugin-rating{line-height:1;margin:0 0 8px 10px}.plugin-rating .wporg-ratings{display:inline-block;margin-left:5px}.plugin-rating .rating-count{color:var(--wp--preset--color--charcoal-4);font-size:var(--wp--preset--font-size--extra-small);vertical-align:text-bottom}.plugin-rating .rating-count a{color:inherit;cursor:hand;text-decoration:none}[class*=dashicons-star-]{color:var(--wp--preset--color--pomegrade-1)}.rtl .dashicons-star-half{transform:rotateY(-180deg)}#main .plugin-section{margin:0 auto var(--wp--preset--spacing--60)}#main .plugin-section:last-of-type{margin-bottom:0}#main .plugin-section .section-header{align-items:center;column-gap:10px;display:flex;justify-content:space-between;margin-bottom:var(--wp--style--block-gap)}#main .plugin-section .section-header>h2{margin-bottom:0}#main .plugin-section .section-link{align-self:center;flex:0 0 auto;text-decoration:underline}.pagination .nav-links{margin-top:var(--wp--style--block-gap);padding-top:var(--wp--style--block-gap);text-align:center}.pagination .nav-links a{text-decoration:none}.pagination .nav-links .page-numbers{cursor:pointer;display:inline-block;min-width:2em;padding:8px;text-align:center}.pagination .nav-links .page-numbers.dots,.pagination .nav-links .page-numbers.next,.pagination .nav-links .page-numbers.prev{background:none;font-size:.9em;width:auto}.pagination .nav-links .page-numbers.dots{cursor:inherit}@media screen and (max-width:737px){.pagination .nav-links .page-numbers.next,.pagination .nav-links .page-numbers.prev{font-size:0;min-width:auto;padding:0}.pagination .nav-links .page-numbers.next:after,.pagination .nav-links .page-numbers.prev:before{display:inline-block;font-size:medium;line-height:1.5;min-width:2em;padding:8px}.pagination .nav-links .page-numbers.prev:before{content:"‹"}.pagination .nav-links .page-numbers.next:after{content:"›"}}.pagination .nav-links span.page-numbers{font-weight:700}.pagination .nav-links span.page-numbers.current{text-decoration:underline}@keyframes favme-anime{0%{font-size:var(--wp--preset--font-size--large);opacity:1;-webkit-text-stroke-color:#0000}25%{color:#fff;font-size:var(--wp--preset--font-size--small);opacity:.6;-webkit-text-stroke-width:1px;-webkit-text-stroke-color:#dc3232}75%{color:#fff;font-size:var(--wp--preset--font-size--large);opacity:.6;-webkit-text-stroke-width:1px;-webkit-text-stroke-color:#dc3232}to{font-size:var(--wp--preset--font-size--normal);opacity:1;-webkit-text-stroke-color:#0000}}.plugin-favorite{height:calc(var(--wp--custom--button--spacing--padding--top)*2 + var(--wp--preset--font-size--normal)*2);text-align:center;vertical-align:top;width:36px}.plugin-favorite .plugin-favorite-heart{align-items:center;background:none;border:0;border-radius:0;box-shadow:none;color:#cbcdce;cursor:pointer;display:flex;font-size:var(--wp--preset--font-size--large);height:100%;justify-content:center;line-height:1;margin:0;outline:none;padding:0;text-decoration:none}.plugin-favorite .plugin-favorite-heart.favorited{color:#dc3232}.plugin-favorite .plugin-favorite-heart:focus,.plugin-favorite .plugin-favorite-heart:hover{color:var(----wp--preset--color--charcoal-2);text-decoration:none}.plugin-favorite .plugin-favorite-heart:after{content:"\f487";font-family:dashicons;vertical-align:top}.plugin-banner img{aspect-ratio:3.089;border-radius:var(--wp--custom--button--border--radius);display:block;margin:0 auto var(--wp--preset--spacing--30);width:100%}@keyframes hideAnimation{to{visibility:hidden}}.categorization .help{color:var(--wp--preset--color--charcoal-4);display:inline-block;font-size:.8rem;margin-top:0}.categorization label{display:block;font-weight:700}.categorization input{width:100%}.categorization .success-msg{background:#eff7ed;border:solid #64b450;border-width:0 5px 0 0;font-size:.8rem;margin-right:1rem;opacity:0;overflow:auto;padding:.1rem .6rem .2rem;position:relative;transition:visibility 0s,opacity .5s linear;-webkit-user-select:none;user-select:none;visibility:hidden}.categorization .success-msg.saved{animation:hideAnimation 0s ease-in 5s;animation-fill-mode:forwards;opacity:1;visibility:visible}.plugin-changelog code{font-size:var(--wp--preset--font-size--small)}.plugin-developers .contributors-list li{align-items:center;display:flex;padding-bottom:var(--wp--style--block-gap)}@media screen and (min-width:500px){.plugin-developers .contributors-list{display:flex;flex-wrap:wrap}.plugin-developers .contributors-list li{padding-bottom:unset;width:50%}}.plugin-faq dl{border-bottom:1px solid var(--wp--preset--color--light-grey-1)}.plugin-faq dt{border-top:1px solid var(--wp--preset--color--light-grey-1);cursor:pointer;padding:1rem 0}.plugin-faq dt:before{content:"\f347";float:left;font-family:dashicons;margin:0 1rem}.plugin-faq dt.open:before{content:"\f343"}.plugin-faq dt .button-link{display:inherit;text-align:inherit}.plugin-faq dt .button-link.no-focus{box-shadow:none;outline:none}.plugin-faq dt h3{color:var(--wp--custom--link--color--text);display:inline;font-size:var(--wp--preset--font-size--normal);font-weight:400;margin-bottom:0;margin-top:0!important;text-decoration:underline}.plugin-faq dt h3 button{all:inherit;max-width:calc(100% - 60px)}.plugin-faq dt h3 button:focus,.plugin-faq dt h3 button:hover{text-decoration:underline}.plugin-faq dd{display:none;margin:0 0 1rem}.no-js .plugin-faq dd{display:block}.plugin-faq dd p{margin:0}.plugin-faq dd p+p{margin-top:1rem}.image-gallery{-webkit-user-select:none;user-select:none}.image-gallery-content{position:relative}.image-gallery-content .image-gallery-left-nav,.image-gallery-content .image-gallery-right-nav{border-color:var(--wp--preset--color--light-grey-1);display:none;font-size:48px;height:100%;position:absolute;top:0;transition:background .1s ease,border .1s ease;z-index:4}@media (max-width:768px){.image-gallery-content .image-gallery-left-nav,.image-gallery-content .image-gallery-right-nav{font-size:3.4em}}@media (min-width:768px){.image-gallery-content .image-gallery-left-nav:hover,.image-gallery-content .image-gallery-right-nav:hover{background:#fff;border:1px solid var(--wp--preset--color--light-grey-1);opacity:.8}}.image-gallery-content .image-gallery-left-nav:before,.image-gallery-content .image-gallery-right-nav:before{font-family:dashicons;position:relative}.image-gallery-content .image-gallery-left-nav{right:0}.image-gallery-content .image-gallery-left-nav:before{content:"\f345"}.image-gallery-content .image-gallery-left-nav:hover{margin-right:-1px}.image-gallery-content .image-gallery-right-nav{left:0}.image-gallery-content .image-gallery-right-nav:before{content:"\f341"}.image-gallery-content .image-gallery-right-nav:hover{margin-left:-1px}.image-gallery-content:hover .image-gallery-left-nav,.image-gallery-content:hover .image-gallery-right-nav{display:block}.image-gallery-slides{border:1px solid #eee;line-height:0;overflow:hidden;position:relative;white-space:nowrap}.image-gallery-slide{right:0;position:absolute;top:0;width:100%}.image-gallery-slide.center{position:relative}.image-gallery-slide .image-gallery-image{margin:0}.image-gallery-slide img{display:block;margin:0 auto}.image-gallery-slide .image-gallery-description{background:var(--wp--preset--color--light-grey-2);color:var(--wp--preset--color--charcoal-1);font-size:var(--wp--preset--font-size--small);line-height:1.5;padding:10px 20px;white-space:normal}@media (max-width:768px){.image-gallery-slide .image-gallery-description{padding:8px 15px}}.image-gallery-thumbnails{background:#fff;margin-top:5px}.image-gallery-thumbnails .image-gallery-thumbnails-container{cursor:pointer;text-align:center;white-space:nowrap}.image-gallery-thumbnail{border:1px solid #eee;display:table-cell;margin-left:5px;max-height:100px;overflow:hidden}.image-gallery-thumbnail .image-gallery-image{margin:0}.image-gallery-thumbnail img{vertical-align:middle;width:100px}@media (max-width:768px){.image-gallery-thumbnail img{width:75px}}.image-gallery-thumbnail:hover{box-shadow:0 1px 8px #0000004d}.image-gallery-thumbnail.active{border:1px solid #337ab7}.image-gallery-thumbnail-label{color:#222;font-size:1em}@media (max-width:768px){.image-gallery-thumbnail-label{font-size:.8em}}.image-gallery-index{background:#0006;bottom:0;color:#fff;line-height:1;padding:10px 20px;position:absolute;left:0;z-index:4}.plugin-reviews{list-style-type:none;margin:0;padding:0}.plugin-reviews .plugin-review{border-bottom:1px solid var(--wp--preset--color--light-grey-1);margin:2rem 0 1rem;padding-bottom:1rem}.plugin-reviews .plugin-review a{text-decoration:none}.plugin-reviews .plugin-review:first-child{margin-top:0}.plugin-reviews .plugin-review .header-top{display:flex}.plugin-reviews .plugin-review .header-top .wporg-ratings{flex-shrink:0}.plugin-reviews .plugin-review .header-bottom{display:flex;margin-top:4px}.plugin-reviews .review-avatar{display:none}.plugin-reviews .review,.plugin-reviews .review-author,.plugin-reviews .wporg-ratings{display:inline-block;vertical-align:top}.plugin-reviews .review-header{margin:0 0 .5rem}.plugin-reviews .review-title{font-size:var(--wp--preset--font-size--normal);font-weight:500;margin:2px 12px 0 0!important;text-transform:inherit}.plugin-reviews .review-author,.plugin-reviews .review-date,.plugin-reviews .review-replies{font-size:var(--wp--preset--font-size--extra-small);line-height:1.25}.plugin-reviews .review-date,.plugin-reviews .review-replies{color:var(--wp--preset--color--charcoal-4);font-size:var(--wp--preset--font-size--extra-small);margin-right:12px}.plugin-reviews .review-replies:before{content:"•";margin-left:12px}.plugin-reviews .review-content{margin:1em 0}@media screen and (min-width:737px){.plugin-reviews .review-avatar{display:inline-block;vertical-align:top}.plugin-reviews .review-avatar .avatar{margin-left:1rem}.plugin-reviews .review{width:calc(100% - 60px - 1rem)}.plugin-reviews .review-header{margin:0}.plugin-reviews .review-author,.plugin-reviews .review-date,.plugin-reviews .review-replies{line-height:1}}.plugin-reviews .reviews-link{display:inline-block;font-size:var(--wp--preset--font-size--small);text-decoration:none}.plugin-reviews .reviews-link:after{content:"\f341";float:left;font-family:dashicons;padding-right:5px;position:relative;top:1px;vertical-align:text-top}.plugin-screenshots{list-style-type:none;margin:0;padding:0}.plugin-screenshots .image-gallery-content{display:table;width:100%}.plugin-screenshots .image-gallery-slides{display:table-cell;max-height:600px}.plugin-screenshots .image-gallery-image img{max-height:550px;max-width:100%}.plugin-screenshots .image-gallery-thumbnail{vertical-align:top}.plugin-screenshots .image-gallery-thumbnail img{max-height:100px}.plugin-screenshots .image-gallery-thumbnails{overflow:hidden}.download-history-stats td{text-align:left}.previous-versions{max-width:60%}@media screen and (min-width:737px){.previous-versions{height:32px;vertical-align:middle}}hr{margin:2.5rem auto}.section h1:nth-child(2),.section h2:nth-child(2),.section h3:nth-child(2),.section h4:nth-child(2),.section h5:nth-child(2),.section h6:nth-child(2){margin-top:0}.section-heading{font-family:var(--wp--preset--font-family--inter)!important;font-size:var(--wp--preset--font-size--heading-5)!important;font-style:normal;font-weight:600;line-height:var(--wp--custom--heading--level-5--typography--line-height)}.section-intro{color:var(--wp--preset--color--charcoal-4);font-size:var(--wp--preset--font-size--small);margin-bottom:var(--wp--preset--spacing--20);margin-top:var(--wp--preset--spacing--10)}.wporg-spinner{--local-size:16px;--spinner-color:var(--wp--custom--spinner--color,var(--wp--preset--color--blueberry-1,currentColor));--background-stroke-color:#ddd;background-color:initial;display:inline-block;height:var(--local-size);position:relative;width:var(--local-size)}.wporg-spinner:before{border:1.5px solid var(--background-stroke-color);border-radius:50%}.wporg-spinner:after,.wporg-spinner:before{box-sizing:border-box;content:"";display:block;height:100%;width:100%}.wporg-spinner:after{animation:wporg-spinner-rotate 1.4s linear infinite;border-bottom:1.5px solid #0000;border-right:1.5px solid #0000;border-radius:50%;border-left:1.5px solid #0000;border-left-color:var(--spinner-color);border-top:1.5px solid #0000;border-top-color:var(--spinner-color);right:0;position:absolute;top:0;transform-origin:center}@keyframes wporg-spinner-rotate{0%{transform:rotate(0deg)}to{transform:rotate(-1turn)}}.type-plugin .plugin-notice{margin-top:0}.type-plugin .plugin-header{border-bottom:0;padding-top:var(--wp--preset--spacing--40)}.type-plugin .plugin-header:after,.type-plugin .plugin-header:before{content:"";display:table;table-layout:fixed}.type-plugin .plugin-header:after{clear:both}.type-plugin .plugin-header .entry-heading-container{display:flex;flex-direction:column;justify-content:space-between}@media screen and (max-width:599px){.type-plugin .plugin-header .entry-heading-container{--wp--custom--button--spacing--padding--top:12px;--wp--custom--button--spacing--padding--bottom:12px;--wp--custom--button--spacing--padding--left:16px;--wp--custom--button--spacing--padding--right:16px}}@media screen and (min-width:700px){.type-plugin .plugin-header .entry-heading-container{flex-direction:row}}.type-plugin .plugin-header .entry-heading-container>:first-child{align-items:center;display:flex;flex:1}.type-plugin .plugin-header .plugin-actions{align-items:center;display:flex;gap:16px;margin-top:var(--wp--style--block-gap)}@media screen and (min-width:700px){.type-plugin .plugin-header .plugin-actions{margin-top:0;margin-inline-start:1rem}}.type-plugin .plugin-header .plugin-actions>.button,.type-plugin .plugin-header .plugin-actions>div{display:inline-block;text-align:center}@media screen and (max-width:34em){.type-plugin .plugin-header .plugin-actions>.button.download-button{display:none}}.type-plugin .plugin-header .plugin-title{clear:none;font-size:var(--wp--preset--font-size--heading-3);font-weight:400;line-height:var(--wp--custom--heading--level-3--typography--line-height);margin:0}.type-plugin .plugin-header .plugin-title a{color:inherit;text-decoration:none}.type-plugin .plugin-header .plugin-title a:hover{text-decoration:underline}.type-plugin .plugin-header .byline{color:var(--wp--preset--color--charcoal-4);display:block;margin-top:4px}.type-plugin .plugin-banner+.plugin-header{padding-top:0}.type-plugin .plugin-banner+.plugin-header>.notice:first-of-type{margin-top:0}.type-plugin .tabs{border-bottom:1px solid var(--wp--preset--color--light-grey-1);list-style:none;margin:0}.type-plugin .tabs li{border:1px solid #0000;display:inline-block;font-size:.9rem;margin-bottom:-1px;transition:background .2s ease}.type-plugin .tabs li a{background:#fff;border:0;color:var(--wp--preset--color--charcoal-1);display:block;font-size:var(--wp--preset--font-size--normal);padding:.64rem 1.25rem;text-decoration:none}.type-plugin .tabs li a.active,.type-plugin .tabs li a:hover{background:var(--wp--preset--color--light-grey-2)!important}.type-plugin .tabs li.active,.type-plugin .tabs li:hover{border:1px solid var(--wp--preset--color--light-grey-1)}@media screen and (max-width:38em){.type-plugin .tabs{border-top:1px solid var(--wp--preset--color--light-grey-1)}.type-plugin .tabs li{display:block;margin-bottom:1px}.type-plugin .tabs li,.type-plugin .tabs li.active,.type-plugin .tabs li:hover{border:none;border-bottom:1px solid var(--wp--preset--color--light-grey-1)}}@media screen and (min-width:737px){.type-plugin .entry-content{float:right;padding:0;width:65%}}.type-plugin .entry-content>div,.type-plugin .entry-content>div~button{border:0;display:none}.type-plugin .entry-content ol>li>p,.type-plugin .entry-content ul>li>p{margin:0}.type-plugin .entry-content #admin{display:block!important}.type-plugin .plugin-blocks-list{list-style:none;margin-right:0;padding-right:0}.type-plugin .plugin-blocks-list .plugin-blocks-list-item{display:grid;grid-template-columns:auto 1fr;margin-bottom:var(--wp--style--block-gap)}.type-plugin .plugin-blocks-list .block-icon{border:1px solid var(--wp--preset--color--light-grey-1);border-radius:2px;display:inline-block;height:3.5rem;line-height:16px;margin-left:var(--wp--style--block-gap);padding:var(--wp--style--block-gap);width:3.5rem}.type-plugin .plugin-blocks-list .block-icon.dashicons{color:inherit}.type-plugin .plugin-blocks-list .block-icon.dashicons:before{margin-right:-3px}.type-plugin .plugin-blocks-list .block-icon svg{height:16px;width:16px;fill:currentColor;margin-right:-1px}.type-plugin .plugin-blocks-list .block-title{align-self:center;font-weight:700}.type-plugin .plugin-blocks-list .has-description .block-icon{grid-row:1/span 2}.type-plugin .plugin-blocks-list .has-description .block-title{margin-bottom:.4em}.type-plugin span#description,.type-plugin span#developers,.type-plugin span#installation,.type-plugin span#releases,.type-plugin span#reviews{position:fixed}.type-plugin span#advanced.displayed~#section-links .tabs li#tablink-advanced,.type-plugin span#developers:target~#section-links .tabs li#tablink-developers,.type-plugin span#installation:target~#section-links .tabs li#tablink-installation,.type-plugin span#releases:target~#section-links .tabs li#tablink-releases,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~span#advanced:not(.displayed)~#section-links .tabs li#tablink-description,.type-plugin span#reviews:target~#section-links .tabs li#tablink-reviews{background:#fff;border:1px solid var(--wp--preset--color--light-grey-1);border-bottom:0;padding-bottom:1px}@media screen and (max-width:38em){.type-plugin span#advanced.displayed~#section-links .tabs li#tablink-advanced.active,.type-plugin span#advanced.displayed~#section-links .tabs li#tablink-advanced:hover,.type-plugin span#developers:target~#section-links .tabs li#tablink-developers.active,.type-plugin span#developers:target~#section-links .tabs li#tablink-developers:hover,.type-plugin span#installation:target~#section-links .tabs li#tablink-installation.active,.type-plugin span#installation:target~#section-links .tabs li#tablink-installation:hover,.type-plugin span#releases:target~#section-links .tabs li#tablink-releases.active,.type-plugin span#releases:target~#section-links .tabs li#tablink-releases:hover,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~span#advanced:not(.displayed)~#section-links .tabs li#tablink-description.active,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~span#advanced:not(.displayed)~#section-links .tabs li#tablink-description:hover,.type-plugin span#reviews:target~#section-links .tabs li#tablink-reviews.active,.type-plugin span#reviews:target~#section-links .tabs li#tablink-reviews:hover{padding-bottom:1px!important}}.type-plugin span#section-links{display:flex;flex-flow:row wrap;margin-top:var(--wp--preset--spacing--30)}.type-plugin span#section-links .tabs{flex:1 1 auto;padding-right:0}@media screen and (max-width:38em){.type-plugin span#section-links .tabs{border:1px solid var(--wp--preset--color--light-grey-1)!important}.type-plugin span#section-links .tabs li{border:none!important}.type-plugin span#section-links{display:block}}.type-plugin #link-support{align-self:flex-end;border-bottom:1px solid var(--wp--preset--color--light-grey-1);flex:0 0 auto;font-size:.9rem}.type-plugin #link-support a{display:inline-block;font-size:var(--wp--preset--font-size--normal);padding:.64rem 1.25rem .64rem 0}@media screen and (max-width:38em){.type-plugin #link-support{border-bottom:0;display:block;width:100%}.type-plugin #link-support a{padding-left:1.25rem}}.type-plugin span#developers:target~.entry-content #tab-changelog,.type-plugin span#developers:target~.entry-content #tab-developers,.type-plugin span#developers:target~.entry-content #tab-developers .plugin-development,.type-plugin span#developers:target~.entry-content #tab-developers~button,.type-plugin span#installation:target~.entry-content #tab-installation,.type-plugin span#releases:target~.entry-content #tab-releases,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~.entry-content #blocks,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~.entry-content #faq,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~.entry-content #screenshots,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~.entry-content #tab-description,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~.entry-content #tab-developers,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~.entry-content #tab-developers~button,.type-plugin span#reviews:target~.entry-content #tab-reviews{display:block}.type-plugin span#developers:target~.entry-content #tab-developers .plugin-contributors,.type-plugin span#installation:target~.entry-meta .plugin-contributors,.type-plugin span#releases:target~.entry-meta,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~.entry-content #tab-developers .plugin-development,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~.entry-meta .plugin-contributors,.type-plugin span#reviews:target~.entry-meta .plugin-contributors,.type-plugin span#reviews:target~.entry-meta .plugin-donate,.type-plugin span#reviews:target~.entry-meta .plugin-meta,.type-plugin span#reviews:target~.entry-meta .plugin-support{display:none}.type-plugin span#releases:target~.entry-content{width:100%}@media screen and (min-width:737px){.type-plugin .entry-content,.type-plugin .entry-meta{padding-right:0;padding-left:0}.type-plugin .entry-meta{float:left;width:30%}}.type-plugin .plugin-danger-zone h4{margin-top:var(--wp--preset--spacing--60)}.plugin-releases-listing{border-collapse:collapse;width:100%}.plugin-releases-listing tbody td:nth-child(4) div{font-size:14px}.plugin-releases-listing-actions{display:flex;flex-direction:column;gap:8px}@media screen and (min-width:34em){.plugin-releases-listing-actions{flex-direction:row}}.plugin-adopt-me{background:#e6f4fa;margin-top:36px;padding:12px}.plugin-adopt-me .widget-title{margin-top:0}.plugin-adopt-me p{margin-bottom:0}.widget.plugin-categorization{margin-top:var(--wp--style--block-gap)}.widget.plugin-categorization .widget-head h2{font-size:var(--wp--preset--font-size--heading-4);margin-bottom:.2rem;margin-top:0}.widget.plugin-categorization .widget-head a{font-size:var(--wp--preset--font-size--small)}.widget.plugin-categorization .widget-head a[href=""]{display:none}.widget.plugin-categorization p{font-size:var(--wp--preset--font-size--small);margin-top:.5rem}.widget.plugin-categorization~.plugin-meta li:first-child{border-top:1px solid var(--wp--preset--color--light-grey-1)}.committer-list,.support-rep-list{list-style:none;margin:0;padding:0}.committer-list li,.support-rep-list li{padding-bottom:.5rem}.committer-list li .remove,.support-rep-list li .remove{color:red;visibility:hidden}.committer-list li:hover .remove,.support-rep-list li:hover .remove{visibility:visible}.committer-list .avatar,.support-rep-list .avatar{float:right;margin-left:10px}.committer-list .spinner,.support-rep-list .spinner{position:relative}.committer-list .spinner:after,.support-rep-list .spinner:after{background:url(/wp-admin/images/spinner.gif) no-repeat 50%;background-size:20px 20px;content:"";display:block;height:20px;margin:-10px 0 0 -10px;position:absolute;left:-50%;top:50%;transform:translateZ(0);width:20px}@media (min-resolution:120dpi),print{.committer-list .spinner:after,.support-rep-list .spinner:after{background-image:url(/wp-admin/images/spinner-2x.gif)}}.committer-list .new,.support-rep-list .new{margin-top:var(--wp--style--block-gap)}.plugin-contributors.read-more{border-bottom:1px solid var(--wp--preset--color--light-grey-1);max-height:200px;overflow:hidden;padding-bottom:1px}.plugin-contributors.read-more.toggled{max-height:none}.no-js .plugin-contributors.read-more{max-height:none;overflow:auto}.contributors-list{list-style-type:none;margin:0;padding:0}.contributors-list li{align-items:center;display:flex;margin-bottom:1rem}.contributors-list .avatar{float:right;margin-left:10px}.plugin-meta{font-size:var(--wp--preset--font-size--small);margin-top:var(--wp--style--block-gap)}.plugin-meta ul{list-style-type:none;margin:0;padding:0}.plugin-meta li{border-top:1px solid var(--wp--preset--color--light-grey-1);display:inline-block;padding:.5rem 0;position:relative;width:100%}.plugin-meta li strong{float:left;font-weight:500}.plugin-meta li .plugin-admin{font-size:var(--wp--preset--font-size--normal);font-weight:400}.plugin-meta li:first-child{border-top:0}.plugin-meta .languages,.plugin-meta .tags{float:left;text-align:left}.plugin-meta .tags{width:60%}.plugin-meta .languages button{font-size:var(--wp--preset--font-size--small);outline:revert}.plugin-meta .languages .popover{margin-top:8px}.plugin-meta .languages .popover-trigger{color:var(--wp--custom--link--color--text);text-decoration:underline}.plugin-meta .languages .popover-trigger:hover{text-decoration:underline}.plugin-meta [rel=tag]{background:var(--wp--preset--color--blueberry-4);border-radius:2px;color:var(--wp--preset--color--charcoal-1);display:inline-block;font-size:var(--wp--preset--font-size--extra-small);margin:2px;max-width:95%;overflow:hidden;padding:3px 6px;position:relative;text-decoration:none;text-overflow:ellipsis;white-space:nowrap;width:auto}.plugin-meta [rel=tag]:hover{text-decoration:underline}.popover{background-color:#fff;border:1px solid var(--wp--preset--color--light-grey-1);border-radius:2px;box-shadow:0 2px 10px #0000001a;display:none;right:0;margin-top:10px;max-width:300px;padding:1em 1em 2em;position:absolute;width:100%;z-index:100}.popover.is-top-right{right:auto;left:0}.popover.is-visible{display:block}.popover .popover-close{bottom:.5em;color:var(--wp--custom--link--color--text);font-size:small;position:absolute;left:.6em}.popover .popover-close:active,.popover .popover-close:focus,.popover .popover-close:hover{text-decoration:underline}.popover .popover-arrow{border:10px solid #0000;border-bottom:10px solid #ccc;border-top:none;height:0;position:absolute;left:20px;top:-10px;width:0;z-index:-1}.popover .popover-arrow:after{border:10px solid #0000;border-bottom:10px solid #fff;border-top:none;content:"";right:-10px;position:absolute;top:2px}.popover .popover-inner{text-align:right}.popover .popover-inner p:first-child{margin-top:0}.popover .popover-inner p:last-child{margin-bottom:0}.plugin-support .counter-container{margin-bottom:1rem;position:relative}.plugin-support .counter-back,.plugin-support .counter-bar{display:inline-block;height:30px;vertical-align:middle}.plugin-support .counter-back{background-color:var(--wp--preset--color--light-grey-2);width:100%}.plugin-support .counter-bar{background-color:var(--wp--preset--color--acid-green-2);display:block}.plugin-support .counter-count{font-size:var(--wp--preset--font-size--extra-small);right:8px;position:absolute;top:8px;width:100%;width:calc(100% - 8px)}@media screen and (min-width:737px){.plugin-support .counter-count{top:5px}}.home .widget,.widget-area.home .widget{display:inline-block;font-size:var(--wp--preset--font-size--small);margin:0;margin:var(--wp--style--block-gap);vertical-align:top;width:auto}@media screen and (min-width:737px){.home .widget,.widget-area.home .widget{margin:0;width:30%}.home .widget:first-child,.widget-area.home .widget:first-child{margin-left:5%}.home .widget:last-child,.widget-area.home .widget:last-child{margin-right:5%}}.home .widget select,.widget-area.home .widget select{max-width:100%}.entry-meta .widget-title{font-size:var(--wp--preset--font-size--heading-4)}body.single.single-plugin .entry-meta{font-size:var(--wp--preset--font-size--normal)}.widget-area{margin:0 auto;padding:var(--wp--preset--spacing--40) 0}.widget-area .widget-title{font-size:var(--wp--preset--font-size--heading-1);font-weight:var(--wp--custom--heading--typography--font-weight);margin-top:var(--wp--preset--spacing--50)}.widget-area .textwidget{text-wrap:pretty} \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/css/style.css b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/css/style.css index e64b07ef20..de9d49ff64 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/css/style.css +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/css/style.css @@ -1 +1 @@ -@charset "UTF-8";.avatar{border-radius:50%;vertical-align:middle}.wp-block-wporg-language-suggest>p{margin:0}.block-validator>details summary{padding:var(--wp--style--block-gap) 0}.block-validator .block-validator__plugin-form label{display:block;margin-bottom:.8em}.block-validator .block-validator__plugin-input-container{display:flex;max-width:34rem}.block-validator .block-validator__plugin-input{flex:1}.block-validator .block-validator__plugin-submit{flex:0;margin-left:4px}@media (max-width:36rem){.block-validator .block-validator__plugin-submit{width:100%}.block-validator .block-validator__plugin-input-container{display:block}.block-validator .block-validator__plugin-input{width:100%}.block-validator .block-validator__plugin-submit{margin-left:0;margin-top:var(--wp--style--block-gap)}}.block-validator .notice details,.block-validator .notice p{font-size:var(--wp--preset--font-size--normal);margin:var(--wp--style--block-gap) 0}.block-validator .notice details p{font-size:var(--wp--preset--font-size--small);margin-left:1rem}.block-validator .notice summary{display:list-item}.block-validator figure{border:1px solid #aaa;display:inline-block;padding:1em}.block-validator .test-screenshot{text-align:center}.block-validator .plugin-upload-form-controls{align-items:center;display:flex;gap:4px}.block-validator .plugin-upload-form-controls>label{border:1px solid var(--wp--custom--form--border--color);border-radius:var(--wp--custom--form--border--radius);cursor:pointer;min-width:200px;padding:4px 8px}.notice{background:#fff;border-left:4px solid #fff;box-shadow:0 1px 1px 0 #0000001a;font-size:var(--wp--preset--font-size--small);margin:var(--wp--style--block-gap) 0;padding:1px 12px}.notice p,.notice ul{margin:.5em 0;padding:2px}.notice pre{white-space:pre-wrap}.notice ul{list-style:none;margin:.5em}.notice.notice-alt{box-shadow:none}.notice.notice-large{padding:10px 20px}.notice.notice-success{border-left-color:#46b450}.notice.notice-success.notice-alt{background-color:#ecf7ed}.notice.notice-warning{border-left-color:#ffb900}.notice.notice-warning.notice-alt{background-color:#fff8e5}.notice.notice-error{border-left-color:#dc3232}.notice.notice-error.notice-alt{background-color:#fbeaea}.notice.notice-info{border-left-color:#00a0d2}.notice.notice-info.notice-alt{background-color:#e5f5fa}.notice.hidden{display:none}.plugin-upload-form.hidden{display:none}.plugin-upload-form fieldset{border:none;margin:0;padding:0}.plugin-upload-form legend{margin:1rem 0}.plugin-upload-form .category-checklist{list-style-type:none;margin:0 0 2rem}.plugin-upload-form .category-checklist li{float:left;padding:.5rem 0;width:50%}@media screen and (min-width:48em){.plugin-upload-form .category-checklist li{padding:0}.plugin-upload-form .category-checklist label{font-size:var(--wp--preset--font-size--small)}.plugin-upload-form label.button{line-height:1.8}}.plugin-upload-form .plugin-file{height:.1px;opacity:0;overflow:hidden;position:absolute;width:.1px;z-index:-1}.plugin-queue-message code{font-size:1em}.plugin-queue-message dialog.slug-change input[type=text]{font-family:monospace;font-size:1.2em;width:20em}:where(main) a:where(:not(.wp-element-button,.wp-block-wporg-link-wrapper)):focus,:where(main) button:where(:not([class*=wp-block-button])):focus{border-radius:2px;box-shadow:0 0 0 1.5px currentColor;outline:none}.wporg-filter-bar{--wporg--filter-bar--gap:20px;--wporg--filter-bar--color:#40464d;--wporg--filter-bar--active--background-color:var(--wp--custom--button--color--background);--wporg--filter-bar--focus--border-color:var(--wp--custom--button--focus--border--color);margin:var(--wp--style--block-gap) 0}.wporg-filter-bar .wporg-query-filter__toggle.is-active,.wporg-filter-bar .wporg-query-filter__toggle:active,.wporg-filter-bar .wporg-query-filter__toggle:focus{background-color:var(--wporg--filter-bar--active--background-color);color:var(--wp--custom--button--color--text)}.wporg-filter-bar .wporg-filter-bar__navigation{flex-grow:1;margin-bottom:var(--wporg--filter-bar--gap)}.wporg-filter-bar .wporg-filter-bar__navigation ul{display:inline-block;font-size:13px;line-height:1.538;list-style:none;margin:0;padding-left:0}.wporg-filter-bar .wporg-filter-bar__navigation ul li{display:inline-block}.wporg-filter-bar .wporg-filter-bar__navigation ul li+li{margin-left:8px}.wporg-filter-bar .wporg-filter-bar__navigation ul a{border-radius:2px;color:var(--wporg--filter-bar--color);display:block;padding:8px 12px;text-decoration:none}.wporg-filter-bar .wporg-filter-bar__navigation ul a:focus,.wporg-filter-bar .wporg-filter-bar__navigation ul a:hover{text-decoration:underline}.wporg-filter-bar .wporg-filter-bar__navigation ul a:focus-visible{box-shadow:none;outline:1.5px solid var(--wporg--filter-bar--focus--border-color);outline-offset:-.5px}.wporg-filter-bar .wporg-filter-bar__navigation ul a.is-active{background-color:var(--wporg--filter-bar--active--background-color);color:#fff}.wporg-filter-bar .wporg-filter-bar__navigation ul a.is-active:focus,.wporg-filter-bar .wporg-filter-bar__navigation ul a.is-active:hover{color:#fff}.wporg-filter-bar .wporg-filter-bar__navigation ul a.is-active:focus-visible{box-shadow:inset 0 0 0 1.5px #fff;outline:1.5px solid var(--wporg--filter-bar--focus--border-color);outline-offset:-.5px}@media screen and (min-width:737px){.wporg-filter-bar{align-items:center;display:flex;flex-wrap:wrap;gap:var(--wporg--filter-bar--gap);justify-content:space-between;width:100%}.wporg-filter-bar .wporg-filter-bar__navigation{margin-bottom:0}}.wp-block-search__inside-wrapper{background:var(--wp--preset--color--light-grey-2);border:none}.button-link{background:none;border:0;border-radius:0;box-shadow:none;cursor:pointer;margin:0;outline:none;padding:0}.button{background-color:var(--wp--custom--button--color--background);border:0;border-radius:var(--wp--custom--button--border--radius);color:var(--wp--custom--button--color--text);cursor:pointer;opacity:1;padding:calc(var(--wp--custom--button--small--spacing--padding--top) + var(--wp--custom--button--border--width)) calc(var(--wp--custom--button--small--spacing--padding--right) + var(--wp--custom--button--border--width)) calc(var(--wp--custom--button--small--spacing--padding--bottom) + var(--wp--custom--button--border--width)) calc(var(--wp--custom--button--small--spacing--padding--left) + var(--wp--custom--button--border--width));vertical-align:middle}.button.button-large{padding:calc(var(--wp--custom--button--spacing--padding--top) + var(--wp--custom--button--border--width)) calc(var(--wp--custom--button--spacing--padding--right) + var(--wp--custom--button--border--width)) calc(var(--wp--custom--button--spacing--padding--bottom) + var(--wp--custom--button--border--width)) calc(var(--wp--custom--button--spacing--padding--left) + var(--wp--custom--button--border--width))}input+button.button,select+button.button{margin-top:-3px}.button.disabled{cursor:not-allowed;opacity:.6}.wp-block-post-content a.button{text-decoration:none}.wp-block-button__link{width:auto}pre{background-color:#f7f7f7;border:1px solid var(--wp--preset--color--light-grey-1);overflow:scroll;padding:20px}code,pre{border-radius:2px}code{background:var(--wp--preset--color--light-grey-2);display:inline-block;line-height:var(--wp--custom--body--extra-small--typography--line-height);max-width:100%;padding-inline-end:3px;padding-inline-start:3px}dialog{border:0;box-shadow:6px 6px 6px #0003;min-height:50%;min-width:30%}@media (min-width:1280px){dialog{max-width:55%}}dialog::backdrop{background:#000;opacity:.5}dialog .close{color:inherit;cursor:pointer;position:absolute;right:1em;text-decoration:none!important;top:1em}.plugin-card{display:flex;flex-direction:column;height:100%;justify-content:space-between}.plugin-card .entry{display:inline-block;vertical-align:top}.plugin-card .entry-title{display:block;display:-webkit-box;font-size:var(--wp--preset--font-size--heading-5);font-weight:500;line-height:1.3;margin-bottom:2px!important;max-height:2.6em;overflow:hidden;-webkit-line-clamp:2;-webkit-box-orient:vertical}.plugin-card .entry-title a{display:block;text-decoration:none}.plugin-card .entry-title a:focus{box-shadow:none}.plugin-card .entry-excerpt{clear:both;font-size:var(--wp--preset--font-size--small)}.plugin-card .entry-excerpt p{margin:0}.plugin-card footer{font-size:var(--wp--preset--font-size--small);margin-top:var(--wp--style--block-gap)}.plugin-card footer span{color:var(--wp--preset--color--charcoal-4);display:inline-block;line-height:var(--wp--preset--font-size--normal);overflow:hidden}.plugin-card footer span.plugin-author{width:100%}.plugin-card footer span.plugin-author span{color:var(--wp--preset--color--charcoal-1)}.plugin-card footer span.plugin-author path{fill:var(--wp--preset--color--charcoal-1)}.plugin-card footer span svg{height:24px;vertical-align:bottom;width:24px}.plugin-card footer span svg path{fill:var(--wp--preset--color--charcoal-4)}.plugin-card footer span.active-installs{min-width:48%}.plugin-cards{cursor:pointer}.plugin-cards .is-style-cards-grid li:hover{background-color:#fff!important;border:1px solid var(--wp--preset--color--charcoal-1)!important}.plugin-cards .is-style-cards-grid li:focus-within{border-color:#0000;border-radius:2px;box-shadow:0 0 0 1.5px var(--wp--custom--link--color--text)}@media screen and (max-width:737px){.plugin-cards .is-style-cards-grid{grid-template-columns:100%}}.entry-thumbnail{display:none;margin-bottom:var(--wp--style--block-gap);margin-right:var(--wp--style--block-gap);max-width:80px}.entry-thumbnail .plugin-icon{background-size:cover;border-radius:var(--wp--custom--button--border--radius);display:block;height:80px;width:80px}@media screen and (min-width:21em){.entry-thumbnail{display:inline-block;float:left;vertical-align:top}}.single .entry-thumbnail{display:none;float:left;height:96px;margin-bottom:0;max-width:96px}@media screen and (min-width:26em){.single .entry-thumbnail{display:block}}.single .entry-thumbnail .plugin-icon{background-size:contain!important;height:96px!important;width:96px!important}.plugin-rating{line-height:1;margin:0 10px 8px 0}.plugin-rating .wporg-ratings{display:inline-block;margin-right:5px}.plugin-rating .rating-count{color:var(--wp--preset--color--charcoal-4);font-size:var(--wp--preset--font-size--extra-small);vertical-align:text-bottom}.plugin-rating .rating-count a{color:inherit;cursor:hand;text-decoration:none}[class*=dashicons-star-]{color:var(--wp--preset--color--pomegrade-1)}.rtl .dashicons-star-half{transform:rotateY(180deg)}#main .plugin-section{margin:0 auto var(--wp--preset--spacing--60)}#main .plugin-section:last-of-type{margin-bottom:0}#main .plugin-section .section-header{align-items:center;column-gap:10px;display:flex;justify-content:space-between;margin-bottom:var(--wp--style--block-gap)}#main .plugin-section .section-header>h2{margin-bottom:0}#main .plugin-section .section-link{align-self:center;flex:0 0 auto;text-decoration:underline}.pagination .nav-links{margin-top:var(--wp--style--block-gap);padding-top:var(--wp--style--block-gap);text-align:center}.pagination .nav-links a{text-decoration:none}.pagination .nav-links .page-numbers{cursor:pointer;display:inline-block;min-width:2em;padding:8px;text-align:center}.pagination .nav-links .page-numbers.dots,.pagination .nav-links .page-numbers.next,.pagination .nav-links .page-numbers.prev{background:none;font-size:.9em;width:auto}.pagination .nav-links .page-numbers.dots{cursor:inherit}@media screen and (max-width:737px){.pagination .nav-links .page-numbers.next,.pagination .nav-links .page-numbers.prev{font-size:0;min-width:auto;padding:0}.pagination .nav-links .page-numbers.next:after,.pagination .nav-links .page-numbers.prev:before{display:inline-block;font-size:medium;line-height:1.5;min-width:2em;padding:8px}.pagination .nav-links .page-numbers.prev:before{content:"‹"}.pagination .nav-links .page-numbers.next:after{content:"›"}}.pagination .nav-links span.page-numbers{font-weight:700}.pagination .nav-links span.page-numbers.current{text-decoration:underline}@keyframes favme-anime{0%{font-size:var(--wp--preset--font-size--large);opacity:1;-webkit-text-stroke-color:#0000}25%{color:#fff;font-size:var(--wp--preset--font-size--small);opacity:.6;-webkit-text-stroke-width:1px;-webkit-text-stroke-color:#dc3232}75%{color:#fff;font-size:var(--wp--preset--font-size--large);opacity:.6;-webkit-text-stroke-width:1px;-webkit-text-stroke-color:#dc3232}to{font-size:var(--wp--preset--font-size--normal);opacity:1;-webkit-text-stroke-color:#0000}}.plugin-favorite{height:calc(var(--wp--custom--button--spacing--padding--top)*2 + var(--wp--preset--font-size--normal)*2);text-align:center;vertical-align:top;width:36px}.plugin-favorite .plugin-favorite-heart{align-items:center;background:none;border:0;border-radius:0;box-shadow:none;color:#cbcdce;cursor:pointer;display:flex;font-size:var(--wp--preset--font-size--large);height:100%;justify-content:center;line-height:1;margin:0;outline:none;padding:0;text-decoration:none}.plugin-favorite .plugin-favorite-heart.favorited{color:#dc3232}.plugin-favorite .plugin-favorite-heart:focus,.plugin-favorite .plugin-favorite-heart:hover{color:var(----wp--preset--color--charcoal-2);text-decoration:none}.plugin-favorite .plugin-favorite-heart:after{content:"\f487";font-family:dashicons;vertical-align:top}.plugin-banner img{aspect-ratio:3.089;border-radius:var(--wp--custom--button--border--radius);display:block;margin:0 auto var(--wp--preset--spacing--30);width:100%}.plugin-releases{list-style-type:none;padding:0}.plugin-releases-item{border:1px solid var(--wp--preset--color--light-grey-1);border-radius:4px;margin-bottom:var(--wp--preset--spacing--30);padding:var(--wp--style--block-gap)}.plugin-releases-item-header{display:flex;justify-content:space-between}.plugin-releases-item-header h3{margin:0!important}@keyframes hideAnimation{to{visibility:hidden}}.categorization .help{color:var(--wp--preset--color--charcoal-4);display:inline-block;font-size:.8rem;margin-top:0}.categorization label{display:block;font-weight:700}.categorization input{width:100%}.categorization .success-msg{background:#eff7ed;border:solid #64b450;border-width:0 0 0 5px;font-size:.8rem;margin-left:1rem;opacity:0;overflow:auto;padding:.1rem .6rem .2rem;position:relative;transition:visibility 0s,opacity .5s linear;-webkit-user-select:none;user-select:none;visibility:hidden}.categorization .success-msg.saved{animation:hideAnimation 0s ease-in 5s;animation-fill-mode:forwards;opacity:1;visibility:visible}.plugin-changelog code{font-size:var(--wp--preset--font-size--small)}.plugin-developers .contributors-list li{align-items:center;display:flex;padding-bottom:var(--wp--style--block-gap)}@media screen and (min-width:500px){.plugin-developers .contributors-list{display:flex;flex-wrap:wrap}.plugin-developers .contributors-list li{padding-bottom:unset;width:50%}}.plugin-faq dl{border-bottom:1px solid var(--wp--preset--color--light-grey-1)}.plugin-faq dt{border-top:1px solid var(--wp--preset--color--light-grey-1);cursor:pointer;padding:1rem 0}.plugin-faq dt:before{content:"\f347";float:right;font-family:dashicons;margin:0 1rem}.plugin-faq dt.open:before{content:"\f343"}.plugin-faq dt .button-link{display:inherit;text-align:inherit}.plugin-faq dt .button-link.no-focus{box-shadow:none;outline:none}.plugin-faq dt h3{color:var(--wp--custom--link--color--text);display:inline;font-size:var(--wp--preset--font-size--normal);font-weight:400;margin-bottom:0;margin-top:0!important;text-decoration:underline}.plugin-faq dt h3 button{all:inherit;max-width:calc(100% - 60px)}.plugin-faq dt h3 button:focus,.plugin-faq dt h3 button:hover{text-decoration:underline}.plugin-faq dd{display:none;margin:0 0 1rem}.no-js .plugin-faq dd{display:block}.plugin-faq dd p{margin:0}.plugin-faq dd p+p{margin-top:1rem}.image-gallery{-webkit-user-select:none;user-select:none}.image-gallery-content{position:relative}.image-gallery-content .image-gallery-left-nav,.image-gallery-content .image-gallery-right-nav{border-color:var(--wp--preset--color--light-grey-1);display:none;font-size:48px;height:100%;position:absolute;top:0;transition:background .1s ease,border .1s ease;z-index:4}@media (max-width:768px){.image-gallery-content .image-gallery-left-nav,.image-gallery-content .image-gallery-right-nav{font-size:3.4em}}@media (min-width:768px){.image-gallery-content .image-gallery-left-nav:hover,.image-gallery-content .image-gallery-right-nav:hover{background:#fff;border:1px solid var(--wp--preset--color--light-grey-1);opacity:.8}}.image-gallery-content .image-gallery-left-nav:before,.image-gallery-content .image-gallery-right-nav:before{font-family:dashicons;position:relative}.image-gallery-content .image-gallery-left-nav{left:0}.image-gallery-content .image-gallery-left-nav:before{content:"\f341"}.image-gallery-content .image-gallery-left-nav:hover{margin-left:-1px}.image-gallery-content .image-gallery-right-nav{right:0}.image-gallery-content .image-gallery-right-nav:before{content:"\f345"}.image-gallery-content .image-gallery-right-nav:hover{margin-right:-1px}.image-gallery-content:hover .image-gallery-left-nav,.image-gallery-content:hover .image-gallery-right-nav{display:block}.image-gallery-slides{border:1px solid #eee;line-height:0;overflow:hidden;position:relative;white-space:nowrap}.image-gallery-slide{left:0;position:absolute;top:0;width:100%}.image-gallery-slide.center{position:relative}.image-gallery-slide .image-gallery-image{margin:0}.image-gallery-slide img{display:block;margin:0 auto}.image-gallery-slide .image-gallery-description{background:var(--wp--preset--color--light-grey-2);color:var(--wp--preset--color--charcoal-1);font-size:var(--wp--preset--font-size--small);line-height:1.5;padding:10px 20px;white-space:normal}@media (max-width:768px){.image-gallery-slide .image-gallery-description{padding:8px 15px}}.image-gallery-thumbnails{background:#fff;margin-top:5px}.image-gallery-thumbnails .image-gallery-thumbnails-container{cursor:pointer;text-align:center;white-space:nowrap}.image-gallery-thumbnail{border:1px solid #eee;display:table-cell;margin-right:5px;max-height:100px;overflow:hidden}.image-gallery-thumbnail .image-gallery-image{margin:0}.image-gallery-thumbnail img{vertical-align:middle;width:100px}@media (max-width:768px){.image-gallery-thumbnail img{width:75px}}.image-gallery-thumbnail:hover{box-shadow:0 1px 8px #0000004d}.image-gallery-thumbnail.active{border:1px solid #337ab7}.image-gallery-thumbnail-label{color:#222;font-size:1em}@media (max-width:768px){.image-gallery-thumbnail-label{font-size:.8em}}.image-gallery-index{background:#0006;bottom:0;color:#fff;line-height:1;padding:10px 20px;position:absolute;right:0;z-index:4}.plugin-reviews{list-style-type:none;margin:0;padding:0}.plugin-reviews .plugin-review{border-bottom:1px solid var(--wp--preset--color--light-grey-1);margin:2rem 0 1rem;padding-bottom:1rem}.plugin-reviews .plugin-review a{text-decoration:none}.plugin-reviews .plugin-review:first-child{margin-top:0}.plugin-reviews .plugin-review .header-top{display:flex}.plugin-reviews .plugin-review .header-top .wporg-ratings{flex-shrink:0}.plugin-reviews .plugin-review .header-bottom{display:flex;margin-top:4px}.plugin-reviews .review-avatar{display:none}.plugin-reviews .review,.plugin-reviews .review-author,.plugin-reviews .wporg-ratings{display:inline-block;vertical-align:top}.plugin-reviews .review-header{margin:0 0 .5rem}.plugin-reviews .review-title{font-size:var(--wp--preset--font-size--normal);font-weight:500;margin:2px 0 0 12px!important;text-transform:inherit}.plugin-reviews .review-author,.plugin-reviews .review-date,.plugin-reviews .review-replies{font-size:var(--wp--preset--font-size--extra-small);line-height:1.25}.plugin-reviews .review-date,.plugin-reviews .review-replies{color:var(--wp--preset--color--charcoal-4);font-size:var(--wp--preset--font-size--extra-small);margin-left:12px}.plugin-reviews .review-replies:before{content:"•";margin-right:12px}.plugin-reviews .review-content{margin:1em 0}@media screen and (min-width:737px){.plugin-reviews .review-avatar{display:inline-block;vertical-align:top}.plugin-reviews .review-avatar .avatar{margin-right:1rem}.plugin-reviews .review{width:calc(100% - 60px - 1rem)}.plugin-reviews .review-header{margin:0}.plugin-reviews .review-author,.plugin-reviews .review-date,.plugin-reviews .review-replies{line-height:1}}.plugin-reviews .reviews-link{display:inline-block;font-size:var(--wp--preset--font-size--small);text-decoration:none}.plugin-reviews .reviews-link:after{content:"\f345";float:right;font-family:dashicons;padding-left:5px;position:relative;top:1px;vertical-align:text-top}.plugin-screenshots{list-style-type:none;margin:0;padding:0}.plugin-screenshots .image-gallery-content{display:table;width:100%}.plugin-screenshots .image-gallery-slides{display:table-cell;max-height:600px}.plugin-screenshots .image-gallery-image img{max-height:550px;max-width:100%}.plugin-screenshots .image-gallery-thumbnail{vertical-align:top}.plugin-screenshots .image-gallery-thumbnail img{max-height:100px}.plugin-screenshots .image-gallery-thumbnails{overflow:hidden}.download-history-stats td{text-align:right}.previous-versions{max-width:60%}@media screen and (min-width:737px){.previous-versions{height:32px;vertical-align:middle}}hr{margin:2.5rem auto}.section h1:nth-child(2),.section h2:nth-child(2),.section h3:nth-child(2),.section h4:nth-child(2),.section h5:nth-child(2),.section h6:nth-child(2){margin-top:0}.section-heading{font-family:var(--wp--preset--font-family--inter)!important;font-size:var(--wp--preset--font-size--heading-5)!important;font-style:normal;font-weight:600;line-height:var(--wp--custom--heading--level-5--typography--line-height)}.section-intro{color:var(--wp--preset--color--charcoal-4);font-size:var(--wp--preset--font-size--small);margin-bottom:var(--wp--preset--spacing--20);margin-top:var(--wp--preset--spacing--10)}.wporg-spinner{--local-size:16px;--spinner-color:var(--wp--custom--spinner--color,var(--wp--preset--color--blueberry-1,currentColor));--background-stroke-color:#ddd;background-color:initial;display:inline-block;height:var(--local-size);position:relative;width:var(--local-size)}.wporg-spinner:before{border:1.5px solid var(--background-stroke-color);border-radius:50%}.wporg-spinner:after,.wporg-spinner:before{box-sizing:border-box;content:"";display:block;height:100%;width:100%}.wporg-spinner:after{animation:wporg-spinner-rotate 1.4s linear infinite;border-bottom:1.5px solid #0000;border-left:1.5px solid #0000;border-radius:50%;border-right:1.5px solid #0000;border-right-color:var(--spinner-color);border-top:1.5px solid #0000;border-top-color:var(--spinner-color);left:0;position:absolute;top:0;transform-origin:center}@keyframes wporg-spinner-rotate{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.type-plugin .plugin-notice{margin-top:0}.type-plugin .plugin-header{border-bottom:0;padding-top:var(--wp--preset--spacing--40)}.type-plugin .plugin-header:after,.type-plugin .plugin-header:before{content:"";display:table;table-layout:fixed}.type-plugin .plugin-header:after{clear:both}.type-plugin .plugin-header .entry-heading-container{display:flex;flex-direction:column;justify-content:space-between}@media screen and (max-width:599px){.type-plugin .plugin-header .entry-heading-container{--wp--custom--button--spacing--padding--top:12px;--wp--custom--button--spacing--padding--bottom:12px;--wp--custom--button--spacing--padding--left:16px;--wp--custom--button--spacing--padding--right:16px}}@media screen and (min-width:700px){.type-plugin .plugin-header .entry-heading-container{flex-direction:row}}.type-plugin .plugin-header .entry-heading-container>:first-child{align-items:center;display:flex;flex:1}.type-plugin .plugin-header .plugin-actions{align-items:center;display:flex;gap:16px;margin-top:var(--wp--style--block-gap)}@media screen and (min-width:700px){.type-plugin .plugin-header .plugin-actions{margin-top:0;margin-inline-start:1rem}}.type-plugin .plugin-header .plugin-actions>.button,.type-plugin .plugin-header .plugin-actions>div{display:inline-block;text-align:center}@media screen and (max-width:34em){.type-plugin .plugin-header .plugin-actions>.button.download-button{display:none}}.type-plugin .plugin-header .plugin-title{clear:none;font-size:var(--wp--preset--font-size--heading-3);font-weight:400;line-height:var(--wp--custom--heading--level-3--typography--line-height);margin:0}.type-plugin .plugin-header .plugin-title a{color:inherit;text-decoration:none}.type-plugin .plugin-header .plugin-title a:hover{text-decoration:underline}.type-plugin .plugin-header .byline{color:var(--wp--preset--color--charcoal-4);display:block;margin-top:4px}.type-plugin .plugin-banner+.plugin-header{padding-top:0}.type-plugin .plugin-banner+.plugin-header>.notice:first-of-type{margin-top:0}.type-plugin .tabs{border-bottom:1px solid var(--wp--preset--color--light-grey-1);list-style:none;margin:0}.type-plugin .tabs li{border:1px solid #0000;display:inline-block;font-size:.9rem;margin-bottom:-1px;transition:background .2s ease}.type-plugin .tabs li a{background:#fff;border:0;color:var(--wp--preset--color--charcoal-1);display:block;font-size:var(--wp--preset--font-size--normal);padding:.64rem 1.25rem;text-decoration:none}.type-plugin .tabs li a.active,.type-plugin .tabs li a:hover{background:var(--wp--preset--color--light-grey-2)!important}.type-plugin .tabs li.active,.type-plugin .tabs li:hover{border:1px solid var(--wp--preset--color--light-grey-1)}@media screen and (max-width:38em){.type-plugin .tabs{border-top:1px solid var(--wp--preset--color--light-grey-1)}.type-plugin .tabs li{display:block;margin-bottom:1px}.type-plugin .tabs li,.type-plugin .tabs li.active,.type-plugin .tabs li:hover{border:none;border-bottom:1px solid var(--wp--preset--color--light-grey-1)}}@media screen and (min-width:737px){.type-plugin .entry-content{float:left;padding:0;width:65%}}.type-plugin .entry-content>div,.type-plugin .entry-content>div~button{border:0;display:none}.type-plugin .entry-content ol>li>p,.type-plugin .entry-content ul>li>p{margin:0}.type-plugin .entry-content #admin{display:block!important}.type-plugin .plugin-blocks-list{list-style:none;margin-left:0;padding-left:0}.type-plugin .plugin-blocks-list .plugin-blocks-list-item{display:grid;grid-template-columns:auto 1fr;margin-bottom:var(--wp--style--block-gap)}.type-plugin .plugin-blocks-list .block-icon{border:1px solid var(--wp--preset--color--light-grey-1);border-radius:2px;display:inline-block;height:3.5rem;line-height:16px;margin-right:var(--wp--style--block-gap);padding:var(--wp--style--block-gap);width:3.5rem}.type-plugin .plugin-blocks-list .block-icon.dashicons{color:inherit}.type-plugin .plugin-blocks-list .block-icon.dashicons:before{margin-left:-3px}.type-plugin .plugin-blocks-list .block-icon svg{height:16px;width:16px;fill:currentColor;margin-left:-1px}.type-plugin .plugin-blocks-list .block-title{align-self:center;font-weight:700}.type-plugin .plugin-blocks-list .has-description .block-icon{grid-row:1/span 2}.type-plugin .plugin-blocks-list .has-description .block-title{margin-bottom:.4em}.type-plugin span#description,.type-plugin span#developers,.type-plugin span#installation,.type-plugin span#releases,.type-plugin span#reviews{position:fixed}.type-plugin span#advanced.displayed~#section-links .tabs li#tablink-advanced,.type-plugin span#developers:target~#section-links .tabs li#tablink-developers,.type-plugin span#installation:target~#section-links .tabs li#tablink-installation,.type-plugin span#releases:target~#section-links .tabs li#tablink-releases,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~span#advanced:not(.displayed)~#section-links .tabs li#tablink-description,.type-plugin span#reviews:target~#section-links .tabs li#tablink-reviews{background:#fff;border:1px solid var(--wp--preset--color--light-grey-1);border-bottom:0;padding-bottom:1px}@media screen and (max-width:38em){.type-plugin span#advanced.displayed~#section-links .tabs li#tablink-advanced.active,.type-plugin span#advanced.displayed~#section-links .tabs li#tablink-advanced:hover,.type-plugin span#developers:target~#section-links .tabs li#tablink-developers.active,.type-plugin span#developers:target~#section-links .tabs li#tablink-developers:hover,.type-plugin span#installation:target~#section-links .tabs li#tablink-installation.active,.type-plugin span#installation:target~#section-links .tabs li#tablink-installation:hover,.type-plugin span#releases:target~#section-links .tabs li#tablink-releases.active,.type-plugin span#releases:target~#section-links .tabs li#tablink-releases:hover,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~span#advanced:not(.displayed)~#section-links .tabs li#tablink-description.active,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~span#advanced:not(.displayed)~#section-links .tabs li#tablink-description:hover,.type-plugin span#reviews:target~#section-links .tabs li#tablink-reviews.active,.type-plugin span#reviews:target~#section-links .tabs li#tablink-reviews:hover{padding-bottom:1px!important}}.type-plugin span#section-links{display:flex;flex-flow:row wrap;margin-top:var(--wp--preset--spacing--30)}.type-plugin span#section-links .tabs{flex:1 1 auto;padding-left:0}@media screen and (max-width:38em){.type-plugin span#section-links .tabs{border:1px solid var(--wp--preset--color--light-grey-1)!important}.type-plugin span#section-links .tabs li{border:none!important}.type-plugin span#section-links{display:block}}.type-plugin #link-support{align-self:flex-end;border-bottom:1px solid var(--wp--preset--color--light-grey-1);flex:0 0 auto;font-size:.9rem}.type-plugin #link-support a{display:inline-block;font-size:var(--wp--preset--font-size--normal);padding:.64rem 0 .64rem 1.25rem}@media screen and (max-width:38em){.type-plugin #link-support{border-bottom:0;display:block;width:100%}.type-plugin #link-support a{padding-right:1.25rem}}.type-plugin span#developers:target~.entry-content #tab-changelog,.type-plugin span#developers:target~.entry-content #tab-developers,.type-plugin span#developers:target~.entry-content #tab-developers .plugin-development,.type-plugin span#developers:target~.entry-content #tab-developers~button,.type-plugin span#installation:target~.entry-content #tab-installation,.type-plugin span#releases:target~.entry-content #tab-releases,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~.entry-content #blocks,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~.entry-content #faq,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~.entry-content #screenshots,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~.entry-content #tab-description,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~.entry-content #tab-developers,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~.entry-content #tab-developers~button,.type-plugin span#reviews:target~.entry-content #tab-reviews{display:block}.type-plugin span#developers:target~.entry-content #tab-developers .plugin-contributors,.type-plugin span#installation:target~.entry-meta .plugin-contributors,.type-plugin span#releases:target~.entry-meta,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~.entry-content #tab-developers .plugin-development,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~.entry-meta .plugin-contributors,.type-plugin span#reviews:target~.entry-meta .plugin-contributors,.type-plugin span#reviews:target~.entry-meta .plugin-donate,.type-plugin span#reviews:target~.entry-meta .plugin-meta,.type-plugin span#reviews:target~.entry-meta .plugin-support{display:none}.type-plugin span#releases:target~.entry-content{width:100%}@media screen and (min-width:737px){.type-plugin .entry-content,.type-plugin .entry-meta{padding-left:0;padding-right:0}.type-plugin .entry-meta{float:right;width:30%}}.type-plugin .plugin-danger-zone h4{margin-top:var(--wp--preset--spacing--60)}.plugin-releases-listing{border-collapse:collapse;width:100%}.plugin-releases-listing tbody td:nth-child(4) div{font-size:14px}.plugin-releases-listing-actions{display:flex;flex-direction:column;gap:8px}@media screen and (min-width:34em){.plugin-releases-listing-actions{flex-direction:row}}.plugin-adopt-me{background:#e6f4fa;margin-top:36px;padding:12px}.plugin-adopt-me .widget-title{margin-top:0}.plugin-adopt-me p{margin-bottom:0}.widget.plugin-categorization{margin-top:var(--wp--style--block-gap)}.widget.plugin-categorization .widget-head h2{font-size:var(--wp--preset--font-size--heading-4);margin-bottom:.2rem;margin-top:0}.widget.plugin-categorization .widget-head a{font-size:var(--wp--preset--font-size--small)}.widget.plugin-categorization .widget-head a[href=""]{display:none}.widget.plugin-categorization p{font-size:var(--wp--preset--font-size--small);margin-top:.5rem}.widget.plugin-categorization~.plugin-meta li:first-child{border-top:1px solid var(--wp--preset--color--light-grey-1)}.committer-list,.support-rep-list{list-style:none;margin:0;padding:0}.committer-list li,.support-rep-list li{padding-bottom:.5rem}.committer-list li .remove,.support-rep-list li .remove{color:red;visibility:hidden}.committer-list li:hover .remove,.support-rep-list li:hover .remove{visibility:visible}.committer-list .avatar,.support-rep-list .avatar{float:left;margin-right:10px}.committer-list .spinner,.support-rep-list .spinner{position:relative}.committer-list .spinner:after,.support-rep-list .spinner:after{background:url(/wp-admin/images/spinner.gif) no-repeat 50%;background-size:20px 20px;content:"";display:block;height:20px;margin:-10px -10px 0 0;position:absolute;right:-50%;top:50%;transform:translateZ(0);width:20px}@media (min-resolution:120dpi),print{.committer-list .spinner:after,.support-rep-list .spinner:after{background-image:url(/wp-admin/images/spinner-2x.gif)}}.committer-list .new,.support-rep-list .new{margin-top:var(--wp--style--block-gap)}.plugin-contributors.read-more{border-bottom:1px solid var(--wp--preset--color--light-grey-1);max-height:200px;overflow:hidden;padding-bottom:1px}.plugin-contributors.read-more.toggled{max-height:none}.no-js .plugin-contributors.read-more{max-height:none;overflow:auto}.contributors-list{list-style-type:none;margin:0;padding:0}.contributors-list li{align-items:center;display:flex;margin-bottom:1rem}.contributors-list .avatar{float:left;margin-right:10px}.plugin-meta{font-size:var(--wp--preset--font-size--small);margin-top:var(--wp--style--block-gap)}.plugin-meta ul{list-style-type:none;margin:0;padding:0}.plugin-meta li{border-top:1px solid var(--wp--preset--color--light-grey-1);display:inline-block;padding:.5rem 0;position:relative;width:100%}.plugin-meta li strong{float:right;font-weight:500}.plugin-meta li .plugin-admin{font-size:var(--wp--preset--font-size--normal);font-weight:400}.plugin-meta li:first-child{border-top:0}.plugin-meta .languages,.plugin-meta .tags{float:right;text-align:right}.plugin-meta .tags{width:60%}.plugin-meta .languages button{font-size:var(--wp--preset--font-size--small);outline:revert}.plugin-meta .languages .popover{margin-top:8px}.plugin-meta .languages .popover-trigger{color:var(--wp--custom--link--color--text);text-decoration:underline}.plugin-meta .languages .popover-trigger:hover{text-decoration:underline}.plugin-meta [rel=tag]{background:var(--wp--preset--color--blueberry-4);border-radius:2px;color:var(--wp--preset--color--charcoal-1);display:inline-block;font-size:var(--wp--preset--font-size--extra-small);margin:2px;max-width:95%;overflow:hidden;padding:3px 6px;position:relative;text-decoration:none;text-overflow:ellipsis;white-space:nowrap;width:auto}.plugin-meta [rel=tag]:hover{text-decoration:underline}.popover{background-color:#fff;border:1px solid var(--wp--preset--color--light-grey-1);border-radius:2px;box-shadow:0 2px 10px #0000001a;display:none;left:0;margin-top:10px;max-width:300px;padding:1em 1em 2em;position:absolute;width:100%;z-index:100}.popover.is-top-right{left:auto;right:0}.popover.is-visible{display:block}.popover .popover-close{bottom:.5em;color:var(--wp--custom--link--color--text);font-size:small;position:absolute;right:.6em}.popover .popover-close:active,.popover .popover-close:focus,.popover .popover-close:hover{text-decoration:underline}.popover .popover-arrow{border:10px solid #0000;border-bottom:10px solid #ccc;border-top:none;height:0;position:absolute;right:20px;top:-10px;width:0;z-index:-1}.popover .popover-arrow:after{border:10px solid #0000;border-bottom:10px solid #fff;border-top:none;content:"";left:-10px;position:absolute;top:2px}.popover .popover-inner{text-align:left}.popover .popover-inner p:first-child{margin-top:0}.popover .popover-inner p:last-child{margin-bottom:0}.plugin-support .counter-container{margin-bottom:1rem;position:relative}.plugin-support .counter-back,.plugin-support .counter-bar{display:inline-block;height:30px;vertical-align:middle}.plugin-support .counter-back{background-color:var(--wp--preset--color--light-grey-2);width:100%}.plugin-support .counter-bar{background-color:var(--wp--preset--color--acid-green-2);display:block}.plugin-support .counter-count{font-size:var(--wp--preset--font-size--extra-small);left:8px;position:absolute;top:8px;width:100%;width:calc(100% - 8px)}@media screen and (min-width:737px){.plugin-support .counter-count{top:5px}}.home .widget,.widget-area.home .widget{display:inline-block;font-size:var(--wp--preset--font-size--small);margin:0;margin:var(--wp--style--block-gap);vertical-align:top;width:auto}@media screen and (min-width:737px){.home .widget,.widget-area.home .widget{margin:0;width:30%}.home .widget:first-child,.widget-area.home .widget:first-child{margin-right:5%}.home .widget:last-child,.widget-area.home .widget:last-child{margin-left:5%}}.home .widget select,.widget-area.home .widget select{max-width:100%}.entry-meta .widget-title{font-size:var(--wp--preset--font-size--heading-4)}body.single.single-plugin .entry-meta{font-size:var(--wp--preset--font-size--normal)}.widget-area{margin:0 auto;padding:var(--wp--preset--spacing--40) 0}.widget-area .widget-title{font-size:var(--wp--preset--font-size--heading-1);font-weight:var(--wp--custom--heading--typography--font-weight);margin-top:var(--wp--preset--spacing--50)}.widget-area .textwidget{text-wrap:pretty} \ No newline at end of file +@charset "UTF-8";.avatar{border-radius:50%;vertical-align:middle}.wp-block-wporg-language-suggest>p{margin:0}.block-validator>details summary{padding:var(--wp--style--block-gap) 0}.block-validator .block-validator__plugin-form label{display:block;margin-bottom:.8em}.block-validator .block-validator__plugin-input-container{display:flex;max-width:34rem}.block-validator .block-validator__plugin-input{flex:1}.block-validator .block-validator__plugin-submit{flex:0;margin-left:4px}@media (max-width:36rem){.block-validator .block-validator__plugin-submit{width:100%}.block-validator .block-validator__plugin-input-container{display:block}.block-validator .block-validator__plugin-input{width:100%}.block-validator .block-validator__plugin-submit{margin-left:0;margin-top:var(--wp--style--block-gap)}}.block-validator .notice details,.block-validator .notice p{font-size:var(--wp--preset--font-size--normal);margin:var(--wp--style--block-gap) 0}.block-validator .notice details p{font-size:var(--wp--preset--font-size--small);margin-left:1rem}.block-validator .notice summary{display:list-item}.block-validator figure{border:1px solid #aaa;display:inline-block;padding:1em}.block-validator .test-screenshot{text-align:center}.block-validator .plugin-upload-form-controls{align-items:center;display:flex;gap:4px}.block-validator .plugin-upload-form-controls>label{border:1px solid var(--wp--custom--form--border--color);border-radius:var(--wp--custom--form--border--radius);cursor:pointer;min-width:200px;padding:4px 8px}.notice{background:#fff;border-left:4px solid #fff;box-shadow:0 1px 1px 0 #0000001a;font-size:var(--wp--preset--font-size--small);margin:var(--wp--style--block-gap) 0;padding:1px 12px}.notice p,.notice ul{margin:.5em 0;padding:2px}.notice pre{white-space:pre-wrap}.notice ul{list-style:none;margin:.5em}.notice.notice-alt{box-shadow:none}.notice.notice-large{padding:10px 20px}.notice.notice-success{border-left-color:#46b450}.notice.notice-success.notice-alt{background-color:#ecf7ed}.notice.notice-warning{border-left-color:#ffb900}.notice.notice-warning.notice-alt{background-color:#fff8e5}.notice.notice-error{border-left-color:#dc3232}.notice.notice-error.notice-alt{background-color:#fbeaea}.notice.notice-info{border-left-color:#00a0d2}.notice.notice-info.notice-alt{background-color:#e5f5fa}.notice.hidden{display:none}.plugin-upload-form.hidden{display:none}.plugin-upload-form fieldset{border:none;margin:0;padding:0}.plugin-upload-form legend{margin:1rem 0}.plugin-upload-form .category-checklist{list-style-type:none;margin:0 0 2rem}.plugin-upload-form .category-checklist li{float:left;padding:.5rem 0;width:50%}@media screen and (min-width:48em){.plugin-upload-form .category-checklist li{padding:0}.plugin-upload-form .category-checklist label{font-size:var(--wp--preset--font-size--small)}.plugin-upload-form label.button{line-height:1.8}}.plugin-upload-form .plugin-file{height:.1px;opacity:0;overflow:hidden;position:absolute;width:.1px;z-index:-1}.plugin-queue-message code{font-size:1em}.plugin-queue-message dialog.slug-change input[type=text]{font-family:monospace;font-size:1.2em;width:20em}:where(main) a:where(:not(.wp-element-button,.wp-block-wporg-link-wrapper)):focus,:where(main) button:where(:not([class*=wp-block-button])):focus{border-radius:2px;box-shadow:0 0 0 1.5px currentColor;outline:none}.wporg-filter-bar{--wporg--filter-bar--gap:20px;--wporg--filter-bar--color:#40464d;--wporg--filter-bar--active--background-color:var(--wp--custom--button--color--background);--wporg--filter-bar--focus--border-color:var(--wp--custom--button--focus--border--color);margin:var(--wp--style--block-gap) 0}.wporg-filter-bar .wporg-query-filter__toggle.is-active,.wporg-filter-bar .wporg-query-filter__toggle:active,.wporg-filter-bar .wporg-query-filter__toggle:focus{background-color:var(--wporg--filter-bar--active--background-color);color:var(--wp--custom--button--color--text)}.wporg-filter-bar .wporg-filter-bar__navigation{flex-grow:1;margin-bottom:var(--wporg--filter-bar--gap)}.wporg-filter-bar .wporg-filter-bar__navigation ul{display:inline-block;font-size:13px;line-height:1.538;list-style:none;margin:0;padding-left:0}.wporg-filter-bar .wporg-filter-bar__navigation ul li{display:inline-block}.wporg-filter-bar .wporg-filter-bar__navigation ul li+li{margin-left:8px}.wporg-filter-bar .wporg-filter-bar__navigation ul a{border-radius:2px;color:var(--wporg--filter-bar--color);display:block;padding:8px 12px;text-decoration:none}.wporg-filter-bar .wporg-filter-bar__navigation ul a:focus,.wporg-filter-bar .wporg-filter-bar__navigation ul a:hover{text-decoration:underline}.wporg-filter-bar .wporg-filter-bar__navigation ul a:focus-visible{box-shadow:none;outline:1.5px solid var(--wporg--filter-bar--focus--border-color);outline-offset:-.5px}.wporg-filter-bar .wporg-filter-bar__navigation ul a.is-active{background-color:var(--wporg--filter-bar--active--background-color);color:#fff}.wporg-filter-bar .wporg-filter-bar__navigation ul a.is-active:focus,.wporg-filter-bar .wporg-filter-bar__navigation ul a.is-active:hover{color:#fff}.wporg-filter-bar .wporg-filter-bar__navigation ul a.is-active:focus-visible{box-shadow:inset 0 0 0 1.5px #fff;outline:1.5px solid var(--wporg--filter-bar--focus--border-color);outline-offset:-.5px}@media screen and (min-width:737px){.wporg-filter-bar{align-items:center;display:flex;flex-wrap:wrap;gap:var(--wporg--filter-bar--gap);justify-content:space-between;width:100%}.wporg-filter-bar .wporg-filter-bar__navigation{margin-bottom:0}}.wp-block-search__inside-wrapper{background:var(--wp--preset--color--light-grey-2);border:none}.button-link{background:none;border:0;border-radius:0;box-shadow:none;cursor:pointer;margin:0;outline:none;padding:0}.button{background-color:var(--wp--custom--button--color--background);border:0;border-radius:var(--wp--custom--button--border--radius);color:var(--wp--custom--button--color--text);cursor:pointer;opacity:1;padding:calc(var(--wp--custom--button--small--spacing--padding--top) + var(--wp--custom--button--border--width)) calc(var(--wp--custom--button--small--spacing--padding--right) + var(--wp--custom--button--border--width)) calc(var(--wp--custom--button--small--spacing--padding--bottom) + var(--wp--custom--button--border--width)) calc(var(--wp--custom--button--small--spacing--padding--left) + var(--wp--custom--button--border--width));vertical-align:middle}.button.button-large{padding:calc(var(--wp--custom--button--spacing--padding--top) + var(--wp--custom--button--border--width)) calc(var(--wp--custom--button--spacing--padding--right) + var(--wp--custom--button--border--width)) calc(var(--wp--custom--button--spacing--padding--bottom) + var(--wp--custom--button--border--width)) calc(var(--wp--custom--button--spacing--padding--left) + var(--wp--custom--button--border--width))}input+button.button,select+button.button{margin-top:-3px}.button.disabled{cursor:not-allowed;opacity:.6}.wp-block-post-content a.button{text-decoration:none}.wp-block-button__link{width:auto}pre{background-color:#f7f7f7;border:1px solid var(--wp--preset--color--light-grey-1);overflow:scroll;padding:20px}code,pre{border-radius:2px}code{background:var(--wp--preset--color--light-grey-2);display:inline-block;line-height:var(--wp--custom--body--extra-small--typography--line-height);max-width:100%;padding-inline-end:3px;padding-inline-start:3px}dialog{border:0;box-shadow:6px 6px 6px #0003;min-height:50%;min-width:30%}@media (min-width:1280px){dialog{max-width:55%}}dialog::backdrop{background:#000;opacity:.5}dialog .close{color:inherit;cursor:pointer;position:absolute;right:1em;text-decoration:none!important;top:1em}.plugin-card{display:flex;flex-direction:column;height:100%;justify-content:space-between}.plugin-card .entry{display:inline-block;vertical-align:top}.plugin-card .entry-title{display:block;display:-webkit-box;font-size:var(--wp--preset--font-size--heading-5);font-weight:500;line-height:1.3;margin-bottom:2px!important;max-height:2.6em;overflow:hidden;-webkit-line-clamp:2;-webkit-box-orient:vertical}.plugin-card .entry-title a{display:block;text-decoration:none}.plugin-card .entry-title a:focus{box-shadow:none}.plugin-card .entry-excerpt{clear:both;font-size:var(--wp--preset--font-size--small)}.plugin-card .entry-excerpt p{margin:0}.plugin-card footer{font-size:var(--wp--preset--font-size--small);margin-top:var(--wp--style--block-gap)}.plugin-card footer span{color:var(--wp--preset--color--charcoal-4);display:inline-block;line-height:var(--wp--preset--font-size--normal);overflow:hidden}.plugin-card footer span.plugin-author{width:100%}.plugin-card footer span.plugin-author span{color:var(--wp--preset--color--charcoal-1)}.plugin-card footer span.plugin-author path{fill:var(--wp--preset--color--charcoal-1)}.plugin-card footer span svg{height:24px;vertical-align:bottom;width:24px}.plugin-card footer span svg path{fill:var(--wp--preset--color--charcoal-4)}.plugin-card footer span.active-installs{min-width:48%}.plugin-cards{cursor:pointer}.plugin-cards .is-style-cards-grid li:hover{background-color:#fff!important;border:1px solid var(--wp--preset--color--charcoal-1)!important}.plugin-cards .is-style-cards-grid li:focus-within{border-color:#0000;border-radius:2px;box-shadow:0 0 0 1.5px var(--wp--custom--link--color--text)}@media screen and (max-width:737px){.plugin-cards .is-style-cards-grid{grid-template-columns:100%}}.entry-thumbnail{display:none;margin-bottom:var(--wp--style--block-gap);margin-right:var(--wp--style--block-gap);max-width:80px}.entry-thumbnail .plugin-icon{background-size:cover;border-radius:var(--wp--custom--button--border--radius);display:block;height:80px;width:80px}@media screen and (min-width:21em){.entry-thumbnail{display:inline-block;float:left;vertical-align:top}}.single .entry-thumbnail{display:none;float:left;height:96px;margin-bottom:0;max-width:96px}@media screen and (min-width:26em){.single .entry-thumbnail{display:block}}.single .entry-thumbnail .plugin-icon{background-size:contain!important;height:96px!important;width:96px!important}.plugin-rating{line-height:1;margin:0 10px 8px 0}.plugin-rating .wporg-ratings{display:inline-block;margin-right:5px}.plugin-rating .rating-count{color:var(--wp--preset--color--charcoal-4);font-size:var(--wp--preset--font-size--extra-small);vertical-align:text-bottom}.plugin-rating .rating-count a{color:inherit;cursor:hand;text-decoration:none}[class*=dashicons-star-]{color:var(--wp--preset--color--pomegrade-1)}.rtl .dashicons-star-half{transform:rotateY(180deg)}#main .plugin-section{margin:0 auto var(--wp--preset--spacing--60)}#main .plugin-section:last-of-type{margin-bottom:0}#main .plugin-section .section-header{align-items:center;column-gap:10px;display:flex;justify-content:space-between;margin-bottom:var(--wp--style--block-gap)}#main .plugin-section .section-header>h2{margin-bottom:0}#main .plugin-section .section-link{align-self:center;flex:0 0 auto;text-decoration:underline}.pagination .nav-links{margin-top:var(--wp--style--block-gap);padding-top:var(--wp--style--block-gap);text-align:center}.pagination .nav-links a{text-decoration:none}.pagination .nav-links .page-numbers{cursor:pointer;display:inline-block;min-width:2em;padding:8px;text-align:center}.pagination .nav-links .page-numbers.dots,.pagination .nav-links .page-numbers.next,.pagination .nav-links .page-numbers.prev{background:none;font-size:.9em;width:auto}.pagination .nav-links .page-numbers.dots{cursor:inherit}@media screen and (max-width:737px){.pagination .nav-links .page-numbers.next,.pagination .nav-links .page-numbers.prev{font-size:0;min-width:auto;padding:0}.pagination .nav-links .page-numbers.next:after,.pagination .nav-links .page-numbers.prev:before{display:inline-block;font-size:medium;line-height:1.5;min-width:2em;padding:8px}.pagination .nav-links .page-numbers.prev:before{content:"‹"}.pagination .nav-links .page-numbers.next:after{content:"›"}}.pagination .nav-links span.page-numbers{font-weight:700}.pagination .nav-links span.page-numbers.current{text-decoration:underline}@keyframes favme-anime{0%{font-size:var(--wp--preset--font-size--large);opacity:1;-webkit-text-stroke-color:#0000}25%{color:#fff;font-size:var(--wp--preset--font-size--small);opacity:.6;-webkit-text-stroke-width:1px;-webkit-text-stroke-color:#dc3232}75%{color:#fff;font-size:var(--wp--preset--font-size--large);opacity:.6;-webkit-text-stroke-width:1px;-webkit-text-stroke-color:#dc3232}to{font-size:var(--wp--preset--font-size--normal);opacity:1;-webkit-text-stroke-color:#0000}}.plugin-favorite{height:calc(var(--wp--custom--button--spacing--padding--top)*2 + var(--wp--preset--font-size--normal)*2);text-align:center;vertical-align:top;width:36px}.plugin-favorite .plugin-favorite-heart{align-items:center;background:none;border:0;border-radius:0;box-shadow:none;color:#cbcdce;cursor:pointer;display:flex;font-size:var(--wp--preset--font-size--large);height:100%;justify-content:center;line-height:1;margin:0;outline:none;padding:0;text-decoration:none}.plugin-favorite .plugin-favorite-heart.favorited{color:#dc3232}.plugin-favorite .plugin-favorite-heart:focus,.plugin-favorite .plugin-favorite-heart:hover{color:var(----wp--preset--color--charcoal-2);text-decoration:none}.plugin-favorite .plugin-favorite-heart:after{content:"\f487";font-family:dashicons;vertical-align:top}.plugin-banner img{aspect-ratio:3.089;border-radius:var(--wp--custom--button--border--radius);display:block;margin:0 auto var(--wp--preset--spacing--30);width:100%}@keyframes hideAnimation{to{visibility:hidden}}.categorization .help{color:var(--wp--preset--color--charcoal-4);display:inline-block;font-size:.8rem;margin-top:0}.categorization label{display:block;font-weight:700}.categorization input{width:100%}.categorization .success-msg{background:#eff7ed;border:solid #64b450;border-width:0 0 0 5px;font-size:.8rem;margin-left:1rem;opacity:0;overflow:auto;padding:.1rem .6rem .2rem;position:relative;transition:visibility 0s,opacity .5s linear;-webkit-user-select:none;user-select:none;visibility:hidden}.categorization .success-msg.saved{animation:hideAnimation 0s ease-in 5s;animation-fill-mode:forwards;opacity:1;visibility:visible}.plugin-changelog code{font-size:var(--wp--preset--font-size--small)}.plugin-developers .contributors-list li{align-items:center;display:flex;padding-bottom:var(--wp--style--block-gap)}@media screen and (min-width:500px){.plugin-developers .contributors-list{display:flex;flex-wrap:wrap}.plugin-developers .contributors-list li{padding-bottom:unset;width:50%}}.plugin-faq dl{border-bottom:1px solid var(--wp--preset--color--light-grey-1)}.plugin-faq dt{border-top:1px solid var(--wp--preset--color--light-grey-1);cursor:pointer;padding:1rem 0}.plugin-faq dt:before{content:"\f347";float:right;font-family:dashicons;margin:0 1rem}.plugin-faq dt.open:before{content:"\f343"}.plugin-faq dt .button-link{display:inherit;text-align:inherit}.plugin-faq dt .button-link.no-focus{box-shadow:none;outline:none}.plugin-faq dt h3{color:var(--wp--custom--link--color--text);display:inline;font-size:var(--wp--preset--font-size--normal);font-weight:400;margin-bottom:0;margin-top:0!important;text-decoration:underline}.plugin-faq dt h3 button{all:inherit;max-width:calc(100% - 60px)}.plugin-faq dt h3 button:focus,.plugin-faq dt h3 button:hover{text-decoration:underline}.plugin-faq dd{display:none;margin:0 0 1rem}.no-js .plugin-faq dd{display:block}.plugin-faq dd p{margin:0}.plugin-faq dd p+p{margin-top:1rem}.image-gallery{-webkit-user-select:none;user-select:none}.image-gallery-content{position:relative}.image-gallery-content .image-gallery-left-nav,.image-gallery-content .image-gallery-right-nav{border-color:var(--wp--preset--color--light-grey-1);display:none;font-size:48px;height:100%;position:absolute;top:0;transition:background .1s ease,border .1s ease;z-index:4}@media (max-width:768px){.image-gallery-content .image-gallery-left-nav,.image-gallery-content .image-gallery-right-nav{font-size:3.4em}}@media (min-width:768px){.image-gallery-content .image-gallery-left-nav:hover,.image-gallery-content .image-gallery-right-nav:hover{background:#fff;border:1px solid var(--wp--preset--color--light-grey-1);opacity:.8}}.image-gallery-content .image-gallery-left-nav:before,.image-gallery-content .image-gallery-right-nav:before{font-family:dashicons;position:relative}.image-gallery-content .image-gallery-left-nav{left:0}.image-gallery-content .image-gallery-left-nav:before{content:"\f341"}.image-gallery-content .image-gallery-left-nav:hover{margin-left:-1px}.image-gallery-content .image-gallery-right-nav{right:0}.image-gallery-content .image-gallery-right-nav:before{content:"\f345"}.image-gallery-content .image-gallery-right-nav:hover{margin-right:-1px}.image-gallery-content:hover .image-gallery-left-nav,.image-gallery-content:hover .image-gallery-right-nav{display:block}.image-gallery-slides{border:1px solid #eee;line-height:0;overflow:hidden;position:relative;white-space:nowrap}.image-gallery-slide{left:0;position:absolute;top:0;width:100%}.image-gallery-slide.center{position:relative}.image-gallery-slide .image-gallery-image{margin:0}.image-gallery-slide img{display:block;margin:0 auto}.image-gallery-slide .image-gallery-description{background:var(--wp--preset--color--light-grey-2);color:var(--wp--preset--color--charcoal-1);font-size:var(--wp--preset--font-size--small);line-height:1.5;padding:10px 20px;white-space:normal}@media (max-width:768px){.image-gallery-slide .image-gallery-description{padding:8px 15px}}.image-gallery-thumbnails{background:#fff;margin-top:5px}.image-gallery-thumbnails .image-gallery-thumbnails-container{cursor:pointer;text-align:center;white-space:nowrap}.image-gallery-thumbnail{border:1px solid #eee;display:table-cell;margin-right:5px;max-height:100px;overflow:hidden}.image-gallery-thumbnail .image-gallery-image{margin:0}.image-gallery-thumbnail img{vertical-align:middle;width:100px}@media (max-width:768px){.image-gallery-thumbnail img{width:75px}}.image-gallery-thumbnail:hover{box-shadow:0 1px 8px #0000004d}.image-gallery-thumbnail.active{border:1px solid #337ab7}.image-gallery-thumbnail-label{color:#222;font-size:1em}@media (max-width:768px){.image-gallery-thumbnail-label{font-size:.8em}}.image-gallery-index{background:#0006;bottom:0;color:#fff;line-height:1;padding:10px 20px;position:absolute;right:0;z-index:4}.plugin-reviews{list-style-type:none;margin:0;padding:0}.plugin-reviews .plugin-review{border-bottom:1px solid var(--wp--preset--color--light-grey-1);margin:2rem 0 1rem;padding-bottom:1rem}.plugin-reviews .plugin-review a{text-decoration:none}.plugin-reviews .plugin-review:first-child{margin-top:0}.plugin-reviews .plugin-review .header-top{display:flex}.plugin-reviews .plugin-review .header-top .wporg-ratings{flex-shrink:0}.plugin-reviews .plugin-review .header-bottom{display:flex;margin-top:4px}.plugin-reviews .review-avatar{display:none}.plugin-reviews .review,.plugin-reviews .review-author,.plugin-reviews .wporg-ratings{display:inline-block;vertical-align:top}.plugin-reviews .review-header{margin:0 0 .5rem}.plugin-reviews .review-title{font-size:var(--wp--preset--font-size--normal);font-weight:500;margin:2px 0 0 12px!important;text-transform:inherit}.plugin-reviews .review-author,.plugin-reviews .review-date,.plugin-reviews .review-replies{font-size:var(--wp--preset--font-size--extra-small);line-height:1.25}.plugin-reviews .review-date,.plugin-reviews .review-replies{color:var(--wp--preset--color--charcoal-4);font-size:var(--wp--preset--font-size--extra-small);margin-left:12px}.plugin-reviews .review-replies:before{content:"•";margin-right:12px}.plugin-reviews .review-content{margin:1em 0}@media screen and (min-width:737px){.plugin-reviews .review-avatar{display:inline-block;vertical-align:top}.plugin-reviews .review-avatar .avatar{margin-right:1rem}.plugin-reviews .review{width:calc(100% - 60px - 1rem)}.plugin-reviews .review-header{margin:0}.plugin-reviews .review-author,.plugin-reviews .review-date,.plugin-reviews .review-replies{line-height:1}}.plugin-reviews .reviews-link{display:inline-block;font-size:var(--wp--preset--font-size--small);text-decoration:none}.plugin-reviews .reviews-link:after{content:"\f345";float:right;font-family:dashicons;padding-left:5px;position:relative;top:1px;vertical-align:text-top}.plugin-screenshots{list-style-type:none;margin:0;padding:0}.plugin-screenshots .image-gallery-content{display:table;width:100%}.plugin-screenshots .image-gallery-slides{display:table-cell;max-height:600px}.plugin-screenshots .image-gallery-image img{max-height:550px;max-width:100%}.plugin-screenshots .image-gallery-thumbnail{vertical-align:top}.plugin-screenshots .image-gallery-thumbnail img{max-height:100px}.plugin-screenshots .image-gallery-thumbnails{overflow:hidden}.download-history-stats td{text-align:right}.previous-versions{max-width:60%}@media screen and (min-width:737px){.previous-versions{height:32px;vertical-align:middle}}hr{margin:2.5rem auto}.section h1:nth-child(2),.section h2:nth-child(2),.section h3:nth-child(2),.section h4:nth-child(2),.section h5:nth-child(2),.section h6:nth-child(2){margin-top:0}.section-heading{font-family:var(--wp--preset--font-family--inter)!important;font-size:var(--wp--preset--font-size--heading-5)!important;font-style:normal;font-weight:600;line-height:var(--wp--custom--heading--level-5--typography--line-height)}.section-intro{color:var(--wp--preset--color--charcoal-4);font-size:var(--wp--preset--font-size--small);margin-bottom:var(--wp--preset--spacing--20);margin-top:var(--wp--preset--spacing--10)}.wporg-spinner{--local-size:16px;--spinner-color:var(--wp--custom--spinner--color,var(--wp--preset--color--blueberry-1,currentColor));--background-stroke-color:#ddd;background-color:initial;display:inline-block;height:var(--local-size);position:relative;width:var(--local-size)}.wporg-spinner:before{border:1.5px solid var(--background-stroke-color);border-radius:50%}.wporg-spinner:after,.wporg-spinner:before{box-sizing:border-box;content:"";display:block;height:100%;width:100%}.wporg-spinner:after{animation:wporg-spinner-rotate 1.4s linear infinite;border-bottom:1.5px solid #0000;border-left:1.5px solid #0000;border-radius:50%;border-right:1.5px solid #0000;border-right-color:var(--spinner-color);border-top:1.5px solid #0000;border-top-color:var(--spinner-color);left:0;position:absolute;top:0;transform-origin:center}@keyframes wporg-spinner-rotate{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.type-plugin .plugin-notice{margin-top:0}.type-plugin .plugin-header{border-bottom:0;padding-top:var(--wp--preset--spacing--40)}.type-plugin .plugin-header:after,.type-plugin .plugin-header:before{content:"";display:table;table-layout:fixed}.type-plugin .plugin-header:after{clear:both}.type-plugin .plugin-header .entry-heading-container{display:flex;flex-direction:column;justify-content:space-between}@media screen and (max-width:599px){.type-plugin .plugin-header .entry-heading-container{--wp--custom--button--spacing--padding--top:12px;--wp--custom--button--spacing--padding--bottom:12px;--wp--custom--button--spacing--padding--left:16px;--wp--custom--button--spacing--padding--right:16px}}@media screen and (min-width:700px){.type-plugin .plugin-header .entry-heading-container{flex-direction:row}}.type-plugin .plugin-header .entry-heading-container>:first-child{align-items:center;display:flex;flex:1}.type-plugin .plugin-header .plugin-actions{align-items:center;display:flex;gap:16px;margin-top:var(--wp--style--block-gap)}@media screen and (min-width:700px){.type-plugin .plugin-header .plugin-actions{margin-top:0;margin-inline-start:1rem}}.type-plugin .plugin-header .plugin-actions>.button,.type-plugin .plugin-header .plugin-actions>div{display:inline-block;text-align:center}@media screen and (max-width:34em){.type-plugin .plugin-header .plugin-actions>.button.download-button{display:none}}.type-plugin .plugin-header .plugin-title{clear:none;font-size:var(--wp--preset--font-size--heading-3);font-weight:400;line-height:var(--wp--custom--heading--level-3--typography--line-height);margin:0}.type-plugin .plugin-header .plugin-title a{color:inherit;text-decoration:none}.type-plugin .plugin-header .plugin-title a:hover{text-decoration:underline}.type-plugin .plugin-header .byline{color:var(--wp--preset--color--charcoal-4);display:block;margin-top:4px}.type-plugin .plugin-banner+.plugin-header{padding-top:0}.type-plugin .plugin-banner+.plugin-header>.notice:first-of-type{margin-top:0}.type-plugin .tabs{border-bottom:1px solid var(--wp--preset--color--light-grey-1);list-style:none;margin:0}.type-plugin .tabs li{border:1px solid #0000;display:inline-block;font-size:.9rem;margin-bottom:-1px;transition:background .2s ease}.type-plugin .tabs li a{background:#fff;border:0;color:var(--wp--preset--color--charcoal-1);display:block;font-size:var(--wp--preset--font-size--normal);padding:.64rem 1.25rem;text-decoration:none}.type-plugin .tabs li a.active,.type-plugin .tabs li a:hover{background:var(--wp--preset--color--light-grey-2)!important}.type-plugin .tabs li.active,.type-plugin .tabs li:hover{border:1px solid var(--wp--preset--color--light-grey-1)}@media screen and (max-width:38em){.type-plugin .tabs{border-top:1px solid var(--wp--preset--color--light-grey-1)}.type-plugin .tabs li{display:block;margin-bottom:1px}.type-plugin .tabs li,.type-plugin .tabs li.active,.type-plugin .tabs li:hover{border:none;border-bottom:1px solid var(--wp--preset--color--light-grey-1)}}@media screen and (min-width:737px){.type-plugin .entry-content{float:left;padding:0;width:65%}}.type-plugin .entry-content>div,.type-plugin .entry-content>div~button{border:0;display:none}.type-plugin .entry-content ol>li>p,.type-plugin .entry-content ul>li>p{margin:0}.type-plugin .entry-content #admin{display:block!important}.type-plugin .plugin-blocks-list{list-style:none;margin-left:0;padding-left:0}.type-plugin .plugin-blocks-list .plugin-blocks-list-item{display:grid;grid-template-columns:auto 1fr;margin-bottom:var(--wp--style--block-gap)}.type-plugin .plugin-blocks-list .block-icon{border:1px solid var(--wp--preset--color--light-grey-1);border-radius:2px;display:inline-block;height:3.5rem;line-height:16px;margin-right:var(--wp--style--block-gap);padding:var(--wp--style--block-gap);width:3.5rem}.type-plugin .plugin-blocks-list .block-icon.dashicons{color:inherit}.type-plugin .plugin-blocks-list .block-icon.dashicons:before{margin-left:-3px}.type-plugin .plugin-blocks-list .block-icon svg{height:16px;width:16px;fill:currentColor;margin-left:-1px}.type-plugin .plugin-blocks-list .block-title{align-self:center;font-weight:700}.type-plugin .plugin-blocks-list .has-description .block-icon{grid-row:1/span 2}.type-plugin .plugin-blocks-list .has-description .block-title{margin-bottom:.4em}.type-plugin span#description,.type-plugin span#developers,.type-plugin span#installation,.type-plugin span#releases,.type-plugin span#reviews{position:fixed}.type-plugin span#advanced.displayed~#section-links .tabs li#tablink-advanced,.type-plugin span#developers:target~#section-links .tabs li#tablink-developers,.type-plugin span#installation:target~#section-links .tabs li#tablink-installation,.type-plugin span#releases:target~#section-links .tabs li#tablink-releases,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~span#advanced:not(.displayed)~#section-links .tabs li#tablink-description,.type-plugin span#reviews:target~#section-links .tabs li#tablink-reviews{background:#fff;border:1px solid var(--wp--preset--color--light-grey-1);border-bottom:0;padding-bottom:1px}@media screen and (max-width:38em){.type-plugin span#advanced.displayed~#section-links .tabs li#tablink-advanced.active,.type-plugin span#advanced.displayed~#section-links .tabs li#tablink-advanced:hover,.type-plugin span#developers:target~#section-links .tabs li#tablink-developers.active,.type-plugin span#developers:target~#section-links .tabs li#tablink-developers:hover,.type-plugin span#installation:target~#section-links .tabs li#tablink-installation.active,.type-plugin span#installation:target~#section-links .tabs li#tablink-installation:hover,.type-plugin span#releases:target~#section-links .tabs li#tablink-releases.active,.type-plugin span#releases:target~#section-links .tabs li#tablink-releases:hover,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~span#advanced:not(.displayed)~#section-links .tabs li#tablink-description.active,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~span#advanced:not(.displayed)~#section-links .tabs li#tablink-description:hover,.type-plugin span#reviews:target~#section-links .tabs li#tablink-reviews.active,.type-plugin span#reviews:target~#section-links .tabs li#tablink-reviews:hover{padding-bottom:1px!important}}.type-plugin span#section-links{display:flex;flex-flow:row wrap;margin-top:var(--wp--preset--spacing--30)}.type-plugin span#section-links .tabs{flex:1 1 auto;padding-left:0}@media screen and (max-width:38em){.type-plugin span#section-links .tabs{border:1px solid var(--wp--preset--color--light-grey-1)!important}.type-plugin span#section-links .tabs li{border:none!important}.type-plugin span#section-links{display:block}}.type-plugin #link-support{align-self:flex-end;border-bottom:1px solid var(--wp--preset--color--light-grey-1);flex:0 0 auto;font-size:.9rem}.type-plugin #link-support a{display:inline-block;font-size:var(--wp--preset--font-size--normal);padding:.64rem 0 .64rem 1.25rem}@media screen and (max-width:38em){.type-plugin #link-support{border-bottom:0;display:block;width:100%}.type-plugin #link-support a{padding-right:1.25rem}}.type-plugin span#developers:target~.entry-content #tab-changelog,.type-plugin span#developers:target~.entry-content #tab-developers,.type-plugin span#developers:target~.entry-content #tab-developers .plugin-development,.type-plugin span#developers:target~.entry-content #tab-developers~button,.type-plugin span#installation:target~.entry-content #tab-installation,.type-plugin span#releases:target~.entry-content #tab-releases,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~.entry-content #blocks,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~.entry-content #faq,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~.entry-content #screenshots,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~.entry-content #tab-description,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~.entry-content #tab-developers,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~span#releases:not(:target)~.entry-content #tab-developers~button,.type-plugin span#reviews:target~.entry-content #tab-reviews{display:block}.type-plugin span#developers:target~.entry-content #tab-developers .plugin-contributors,.type-plugin span#installation:target~.entry-meta .plugin-contributors,.type-plugin span#releases:target~.entry-meta,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~.entry-content #tab-developers .plugin-development,.type-plugin span#reviews:not(:target)~span#installation:not(:target)~span#developers:not(:target)~.entry-meta .plugin-contributors,.type-plugin span#reviews:target~.entry-meta .plugin-contributors,.type-plugin span#reviews:target~.entry-meta .plugin-donate,.type-plugin span#reviews:target~.entry-meta .plugin-meta,.type-plugin span#reviews:target~.entry-meta .plugin-support{display:none}.type-plugin span#releases:target~.entry-content{width:100%}@media screen and (min-width:737px){.type-plugin .entry-content,.type-plugin .entry-meta{padding-left:0;padding-right:0}.type-plugin .entry-meta{float:right;width:30%}}.type-plugin .plugin-danger-zone h4{margin-top:var(--wp--preset--spacing--60)}.plugin-releases-listing{border-collapse:collapse;width:100%}.plugin-releases-listing tbody td:nth-child(4) div{font-size:14px}.plugin-releases-listing-actions{display:flex;flex-direction:column;gap:8px}@media screen and (min-width:34em){.plugin-releases-listing-actions{flex-direction:row}}.plugin-adopt-me{background:#e6f4fa;margin-top:36px;padding:12px}.plugin-adopt-me .widget-title{margin-top:0}.plugin-adopt-me p{margin-bottom:0}.widget.plugin-categorization{margin-top:var(--wp--style--block-gap)}.widget.plugin-categorization .widget-head h2{font-size:var(--wp--preset--font-size--heading-4);margin-bottom:.2rem;margin-top:0}.widget.plugin-categorization .widget-head a{font-size:var(--wp--preset--font-size--small)}.widget.plugin-categorization .widget-head a[href=""]{display:none}.widget.plugin-categorization p{font-size:var(--wp--preset--font-size--small);margin-top:.5rem}.widget.plugin-categorization~.plugin-meta li:first-child{border-top:1px solid var(--wp--preset--color--light-grey-1)}.committer-list,.support-rep-list{list-style:none;margin:0;padding:0}.committer-list li,.support-rep-list li{padding-bottom:.5rem}.committer-list li .remove,.support-rep-list li .remove{color:red;visibility:hidden}.committer-list li:hover .remove,.support-rep-list li:hover .remove{visibility:visible}.committer-list .avatar,.support-rep-list .avatar{float:left;margin-right:10px}.committer-list .spinner,.support-rep-list .spinner{position:relative}.committer-list .spinner:after,.support-rep-list .spinner:after{background:url(/wp-admin/images/spinner.gif) no-repeat 50%;background-size:20px 20px;content:"";display:block;height:20px;margin:-10px -10px 0 0;position:absolute;right:-50%;top:50%;transform:translateZ(0);width:20px}@media (min-resolution:120dpi),print{.committer-list .spinner:after,.support-rep-list .spinner:after{background-image:url(/wp-admin/images/spinner-2x.gif)}}.committer-list .new,.support-rep-list .new{margin-top:var(--wp--style--block-gap)}.plugin-contributors.read-more{border-bottom:1px solid var(--wp--preset--color--light-grey-1);max-height:200px;overflow:hidden;padding-bottom:1px}.plugin-contributors.read-more.toggled{max-height:none}.no-js .plugin-contributors.read-more{max-height:none;overflow:auto}.contributors-list{list-style-type:none;margin:0;padding:0}.contributors-list li{align-items:center;display:flex;margin-bottom:1rem}.contributors-list .avatar{float:left;margin-right:10px}.plugin-meta{font-size:var(--wp--preset--font-size--small);margin-top:var(--wp--style--block-gap)}.plugin-meta ul{list-style-type:none;margin:0;padding:0}.plugin-meta li{border-top:1px solid var(--wp--preset--color--light-grey-1);display:inline-block;padding:.5rem 0;position:relative;width:100%}.plugin-meta li strong{float:right;font-weight:500}.plugin-meta li .plugin-admin{font-size:var(--wp--preset--font-size--normal);font-weight:400}.plugin-meta li:first-child{border-top:0}.plugin-meta .languages,.plugin-meta .tags{float:right;text-align:right}.plugin-meta .tags{width:60%}.plugin-meta .languages button{font-size:var(--wp--preset--font-size--small);outline:revert}.plugin-meta .languages .popover{margin-top:8px}.plugin-meta .languages .popover-trigger{color:var(--wp--custom--link--color--text);text-decoration:underline}.plugin-meta .languages .popover-trigger:hover{text-decoration:underline}.plugin-meta [rel=tag]{background:var(--wp--preset--color--blueberry-4);border-radius:2px;color:var(--wp--preset--color--charcoal-1);display:inline-block;font-size:var(--wp--preset--font-size--extra-small);margin:2px;max-width:95%;overflow:hidden;padding:3px 6px;position:relative;text-decoration:none;text-overflow:ellipsis;white-space:nowrap;width:auto}.plugin-meta [rel=tag]:hover{text-decoration:underline}.popover{background-color:#fff;border:1px solid var(--wp--preset--color--light-grey-1);border-radius:2px;box-shadow:0 2px 10px #0000001a;display:none;left:0;margin-top:10px;max-width:300px;padding:1em 1em 2em;position:absolute;width:100%;z-index:100}.popover.is-top-right{left:auto;right:0}.popover.is-visible{display:block}.popover .popover-close{bottom:.5em;color:var(--wp--custom--link--color--text);font-size:small;position:absolute;right:.6em}.popover .popover-close:active,.popover .popover-close:focus,.popover .popover-close:hover{text-decoration:underline}.popover .popover-arrow{border:10px solid #0000;border-bottom:10px solid #ccc;border-top:none;height:0;position:absolute;right:20px;top:-10px;width:0;z-index:-1}.popover .popover-arrow:after{border:10px solid #0000;border-bottom:10px solid #fff;border-top:none;content:"";left:-10px;position:absolute;top:2px}.popover .popover-inner{text-align:left}.popover .popover-inner p:first-child{margin-top:0}.popover .popover-inner p:last-child{margin-bottom:0}.plugin-support .counter-container{margin-bottom:1rem;position:relative}.plugin-support .counter-back,.plugin-support .counter-bar{display:inline-block;height:30px;vertical-align:middle}.plugin-support .counter-back{background-color:var(--wp--preset--color--light-grey-2);width:100%}.plugin-support .counter-bar{background-color:var(--wp--preset--color--acid-green-2);display:block}.plugin-support .counter-count{font-size:var(--wp--preset--font-size--extra-small);left:8px;position:absolute;top:8px;width:100%;width:calc(100% - 8px)}@media screen and (min-width:737px){.plugin-support .counter-count{top:5px}}.home .widget,.widget-area.home .widget{display:inline-block;font-size:var(--wp--preset--font-size--small);margin:0;margin:var(--wp--style--block-gap);vertical-align:top;width:auto}@media screen and (min-width:737px){.home .widget,.widget-area.home .widget{margin:0;width:30%}.home .widget:first-child,.widget-area.home .widget:first-child{margin-right:5%}.home .widget:last-child,.widget-area.home .widget:last-child{margin-left:5%}}.home .widget select,.widget-area.home .widget select{max-width:100%}.entry-meta .widget-title{font-size:var(--wp--preset--font-size--heading-4)}body.single.single-plugin .entry-meta{font-size:var(--wp--preset--font-size--normal)}.widget-area{margin:0 auto;padding:var(--wp--preset--spacing--40) 0}.widget-area .widget-title{font-size:var(--wp--preset--font-size--heading-1);font-weight:var(--wp--custom--heading--typography--font-weight);margin-top:var(--wp--preset--spacing--50)}.widget-area .textwidget{text-wrap:pretty} \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-publish/block.json b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-publish/block.json index e7510d18ae..e886dcf047 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-publish/block.json +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-publish/block.json @@ -13,7 +13,7 @@ "html": false, "interactivity": true }, - "usesContext": [ "postId", "pluginSlug" ], + "usesContext": [ "postId" ], "editorScript": "file:./index.js", "render": "file:./render.php", "style": "file:./style-index.css", diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-publish/index.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-publish/index.php index 8052b033db..af362b51be 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-publish/index.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-publish/index.php @@ -23,7 +23,6 @@ function init() { register_block_type( __DIR__ . '/../../../build/blocks/release-publish' ); } - /** * Returns whether the tested_up_to value is recent. * diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-publish/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-publish/render.php index 1e4f5bbbf7..9d24e1355b 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-publish/render.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-publish/render.php @@ -146,9 +146,9 @@ class="wp-block-button__link wp-element-button"
    - - -
    + + +
    diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-publish/style.scss b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-publish/style.scss index 7c2675cc11..20676e2fd8 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-publish/style.scss +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-publish/style.scss @@ -20,10 +20,6 @@ display: flex; margin-top: var(--wp--preset--spacing--20); gap: 8px; - - button[disabled] { - opacity: 0.5; - } } .wp-block-wporg-release-publish-spinner { diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/template-parts/plugin-single.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/template-parts/plugin-single.php index 775a814a2e..b26fa3a064 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/template-parts/plugin-single.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/template-parts/plugin-single.php @@ -160,7 +160,6 @@ } } // plugin_advanced. ?> -
    -
    '; @@ -130,6 +129,7 @@ foreach ( $content_section_list as $section_slug ) { $section_content = ''; $section_title = $plugin_sections_titles[ $section_slug ] ?? ''; + if ( $is_closed && in_array( $section_slug, [ 'screenshots', 'installation', 'faq', 'changelog' ], true ) ) { // Don't show these sections when closed. $section_content = ''; From a95c089c51ba102081b85f20323c6b077ce63d37 Mon Sep 17 00:00:00 2001 From: StevenDufresne Date: Thu, 12 Dec 2024 03:56:50 +0000 Subject: [PATCH 65/84] Change from a form to solve the redirect issue. --- .../build/blocks/release-publish/render.php | 4 +--- .../wporg-plugins-2024/src/blocks/release-publish/render.php | 4 +--- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish/render.php index 9d24e1355b..c435b59bb8 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish/render.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish/render.php @@ -86,8 +86,6 @@ ), ); ?> - -
    -
    diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-publish/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-publish/render.php index 9d24e1355b..c435b59bb8 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-publish/render.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-publish/render.php @@ -86,8 +86,6 @@ ), ); ?> - -
    -
    From 5bec9ce2a649a557a2aa5b0dc13db116a52ef635 Mon Sep 17 00:00:00 2001 From: tellyworth Date: Thu, 12 Dec 2024 14:57:36 +1100 Subject: [PATCH 66/84] Fix bug in script output --- .../plugins/plugin-directory/bin/get-release-info.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/wordpress.org/public_html/wp-content/plugins/plugin-directory/bin/get-release-info.php b/wordpress.org/public_html/wp-content/plugins/plugin-directory/bin/get-release-info.php index d48bcf95dc..791cc790d0 100644 --- a/wordpress.org/public_html/wp-content/plugins/plugin-directory/bin/get-release-info.php +++ b/wordpress.org/public_html/wp-content/plugins/plugin-directory/bin/get-release-info.php @@ -90,8 +90,8 @@ echo "Committers: " . implode( ', ', $release->release_committer ) . "\n"; echo "Zips built: " . ( $release->release_zips_built ? 'Yes' : 'No' ) . "\n"; echo "Confirmations required: " . ( $release->release_confirmations_required ? 'Yes' : 'No' ) . "\n"; - echo "Release revision: " . $release->revision_final . "\n"; - echo "Previous version rev: " . $release->revision_prior . "\n"; + echo "Release revision: " . $release->release_revision_final . "\n"; + echo "Previous version rev: " . $release->release_revision_prior . "\n"; if ( $release->release_commit_log ) { echo "Commit log:\n"; foreach( $release->release_commit_log as $commit ) { From 275f9bce6d4a719660fea87fea74d1044c63148b Mon Sep 17 00:00:00 2001 From: StevenDufresne Date: Thu, 12 Dec 2024 03:59:01 +0000 Subject: [PATCH 67/84] Release release flags. --- .../build/blocks/release-flags/block.json | 21 -- .../blocks/release-flags/index.asset.php | 1 - .../build/blocks/release-flags/index.js | 183 ------------------ .../build/blocks/release-flags/render.php | 34 ---- .../pub/wporg-plugins-2024/functions.php | 1 - .../src/blocks/release-flags/block.json | 19 -- .../src/blocks/release-flags/index.js | 27 --- .../src/blocks/release-flags/index.php | 22 --- .../src/blocks/release-flags/render.php | 34 ---- 9 files changed, 342 deletions(-) delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-flags/block.json delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-flags/index.asset.php delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-flags/index.js delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-flags/render.php delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-flags/block.json delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-flags/index.js delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-flags/index.php delete mode 100644 wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-flags/render.php diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-flags/block.json b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-flags/block.json deleted file mode 100644 index 8688807e02..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-flags/block.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "$schema": "https://schemas.wp.org/trunk/block.json", - "apiVersion": 2, - "name": "wporg/release-flags", - "version": "0.1.0", - "title": "Release Flags", - "category": "design", - "icon": "", - "description": "A block to display release flags.", - "textdomain": "wporg", - "attributes": {}, - "supports": { - "html": false - }, - "usesContext": [ - "postId" - ], - "editorScript": "file:./index.js", - "render": "file:./render.php", - "style": "file:./style-index.css" -} \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-flags/index.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-flags/index.asset.php deleted file mode 100644 index eb4ddec36a..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-flags/index.asset.php +++ /dev/null @@ -1 +0,0 @@ - array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => '990d288e4c52e5e38e55'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-flags/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-flags/index.js deleted file mode 100644 index 4808f9f376..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-flags/index.js +++ /dev/null @@ -1,183 +0,0 @@ -/******/ (() => { // webpackBootstrap -/******/ "use strict"; -/******/ var __webpack_modules__ = ({ - -/***/ "react": -/*!************************!*\ - !*** external "React" ***! - \************************/ -/***/ ((module) => { - -module.exports = window["React"]; - -/***/ }), - -/***/ "@wordpress/block-editor": -/*!*************************************!*\ - !*** external ["wp","blockEditor"] ***! - \*************************************/ -/***/ ((module) => { - -module.exports = window["wp"]["blockEditor"]; - -/***/ }), - -/***/ "@wordpress/blocks": -/*!********************************!*\ - !*** external ["wp","blocks"] ***! - \********************************/ -/***/ ((module) => { - -module.exports = window["wp"]["blocks"]; - -/***/ }), - -/***/ "@wordpress/components": -/*!************************************!*\ - !*** external ["wp","components"] ***! - \************************************/ -/***/ ((module) => { - -module.exports = window["wp"]["components"]; - -/***/ }), - -/***/ "@wordpress/server-side-render": -/*!******************************************!*\ - !*** external ["wp","serverSideRender"] ***! - \******************************************/ -/***/ ((module) => { - -module.exports = window["wp"]["serverSideRender"]; - -/***/ }), - -/***/ "./src/blocks/release-flags/block.json": -/*!*********************************************!*\ - !*** ./src/blocks/release-flags/block.json ***! - \*********************************************/ -/***/ ((module) => { - -module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"wporg/release-flags","version":"0.1.0","title":"Release Flags","category":"design","icon":"","description":"A block to display release flags.","textdomain":"wporg","attributes":{},"supports":{"html":false},"usesContext":["postId"],"editorScript":"file:./index.js","render":"file:./render.php","style":"file:./style-index.css"}'); - -/***/ }) - -/******/ }); -/************************************************************************/ -/******/ // The module cache -/******/ var __webpack_module_cache__ = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ // Check if module is in cache -/******/ var cachedModule = __webpack_module_cache__[moduleId]; -/******/ if (cachedModule !== undefined) { -/******/ return cachedModule.exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = __webpack_module_cache__[moduleId] = { -/******/ // no module.id needed -/******/ // no module.loaded needed -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/************************************************************************/ -/******/ /* webpack/runtime/compat get default export */ -/******/ (() => { -/******/ // getDefaultExport function for compatibility with non-harmony modules -/******/ __webpack_require__.n = (module) => { -/******/ var getter = module && module.__esModule ? -/******/ () => (module['default']) : -/******/ () => (module); -/******/ __webpack_require__.d(getter, { a: getter }); -/******/ return getter; -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/define property getters */ -/******/ (() => { -/******/ // define getter functions for harmony exports -/******/ __webpack_require__.d = (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 */ -/******/ (() => { -/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) -/******/ })(); -/******/ -/******/ /* webpack/runtime/make namespace object */ -/******/ (() => { -/******/ // define __esModule on exports -/******/ __webpack_require__.r = (exports) => { -/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { -/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); -/******/ } -/******/ Object.defineProperty(exports, '__esModule', { value: true }); -/******/ }; -/******/ })(); -/******/ -/************************************************************************/ -var __webpack_exports__ = {}; -// This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk. -(() => { -/*!*******************************************!*\ - !*** ./src/blocks/release-flags/index.js ***! - \*******************************************/ -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); -/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/blocks */ "@wordpress/blocks"); -/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/server-side-render */ "@wordpress/server-side-render"); -/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/block-editor */ "@wordpress/block-editor"); -/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__); -/* harmony import */ var _block_json__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./block.json */ "./src/blocks/release-flags/block.json"); - -/** - * WordPress dependencies - */ - - - - - -/** - * Internal dependencies - */ - -function Edit({ - attributes, - name -}) { - return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", { - ...(0,_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__.useBlockProps)() - }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Disabled, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)((_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default()), { - block: name, - attributes: attributes - }))); -} -(0,_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__.registerBlockType)(_block_json__WEBPACK_IMPORTED_MODULE_5__.name, { - edit: Edit, - save: () => null -}); -})(); - -/******/ })() -; -//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-flags/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-flags/render.php deleted file mode 100644 index ac2b084edd..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-flags/render.php +++ /dev/null @@ -1,34 +0,0 @@ -context['postId'] ) { - return; -} - -$release_post = get_post( $block->context['postId'] ); - -if ( 'draft' !== $release_post->post_status ) { - return; -} - -$heading = sprintf( - ' -

    %s

    - ', - esc_attr__( 'Flags', 'wporg-plugins' ) -); - -printf( - '
    %2$s
      %3$s
    ', - wp_kses_data( get_block_wrapper_attributes() ), - do_blocks( $heading ), //phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped - do_blocks( $warnings ) //phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/functions.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/functions.php index c3b28f81d7..13a7ac8c66 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/functions.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/functions.php @@ -32,7 +32,6 @@ require_once __DIR__ . '/src/blocks/card/index.php'; require_once __DIR__ . '/src/blocks/release-publish/index.php'; require_once __DIR__ . '/src/blocks/release-result-item/index.php'; -require_once __DIR__ . '/src/blocks/release-flags/index.php'; require_once __DIR__ . '/src/blocks/release-menu-options/index.php'; require_once __DIR__ . '/src/blocks/release-page/index.php'; diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-flags/block.json b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-flags/block.json deleted file mode 100644 index fc62236ca3..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-flags/block.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "$schema": "https://schemas.wp.org/trunk/block.json", - "apiVersion": 2, - "name": "wporg/release-flags", - "version": "0.1.0", - "title": "Release Flags", - "category": "design", - "icon": "", - "description": "A block to display release flags.", - "textdomain": "wporg", - "attributes": {}, - "supports": { - "html": false - }, - "usesContext": [ "postId" ], - "editorScript": "file:./index.js", - "render": "file:./render.php", - "style": "file:./style-index.css" -} diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-flags/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-flags/index.js deleted file mode 100644 index caf55461d5..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-flags/index.js +++ /dev/null @@ -1,27 +0,0 @@ -/** - * WordPress dependencies - */ -import { Disabled } from '@wordpress/components'; -import { registerBlockType } from '@wordpress/blocks'; -import ServerSideRender from '@wordpress/server-side-render'; -import { useBlockProps } from '@wordpress/block-editor'; - -/** - * Internal dependencies - */ -import metadata from './block.json'; - -function Edit( { attributes, name } ) { - return ( -
    - - - -
    - ); -} - -registerBlockType( metadata.name, { - edit: Edit, - save: () => null, -} ); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-flags/index.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-flags/index.php deleted file mode 100644 index dc67e8ca0a..0000000000 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-flags/index.php +++ /dev/null @@ -1,22 +0,0 @@ -context['postId'] ) { - return; -} - -$release_post = get_post( $block->context['postId'] ); - -if ( 'draft' !== $release_post->post_status ) { - return; -} - -$heading = sprintf( - ' -

    %s

    - ', - esc_attr__( 'Flags', 'wporg-plugins' ) -); - -printf( - '
    %2$s
      %3$s
    ', - wp_kses_data( get_block_wrapper_attributes() ), - do_blocks( $heading ), //phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped - do_blocks( $warnings ) //phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -); From 5664787ef9c784d03ff386e040017792c1abc53b Mon Sep 17 00:00:00 2001 From: tellyworth Date: Thu, 12 Dec 2024 15:02:37 +1100 Subject: [PATCH 68/84] Fix svn log handling Includes the initial trunk commit log for the first release. Also gets the order correct, and should handle plugins with no releases yet. Thanks Steve for the suggestions! --- .../plugin-directory/class-plugin-release.php | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/wordpress.org/public_html/wp-content/plugins/plugin-directory/class-plugin-release.php b/wordpress.org/public_html/wp-content/plugins/plugin-directory/class-plugin-release.php index 693228820a..05461e4da3 100644 --- a/wordpress.org/public_html/wp-content/plugins/plugin-directory/class-plugin-release.php +++ b/wordpress.org/public_html/wp-content/plugins/plugin-directory/class-plugin-release.php @@ -266,7 +266,8 @@ public function add_or_update_draft_release( $plugin, $release ) { $last_release_revision = max( $last_release->release_revision ); if ( $last_release_revision && $release['revision'] ) { $trunk_url = Import::PLUGIN_SVN_BASE . '/' . $plugin->post_name . '/trunk'; - $commit_log = SVN::log( $trunk_url, [ $last_release_revision, max( $release['revision'] ) ] ); + $svn_options = [ 'limit' => 100 ]; // Safety limit + $commit_log = SVN::log( $trunk_url, [ max( $release['revision'] ), $last_release_revision ], $svn_options ); $release['commit_log'] = $commit_log['log'] ?? null; } $draft_id = $this->get_release( $plugin, 'trunk' ); @@ -308,20 +309,25 @@ public function update_releases( $plugin, $releases ) { $current_releases = $this->get_releases( $plugin ); $current_versions = wp_list_pluck( $current_releases, 'post_title', 'ID' ); + // Sort the releases by revision number ascending. + usort( $releases, function( $a, $b ) { + return max($a['revision']) <=> max($b['revision']); + } ); + // Add or update each release. - // Go backwards so we can store the previous revision number for each. - foreach ( array_reverse( $releases ) as $release ) { + foreach ( $releases as $release ) { $release_revision = max( $release['revision'] ); // revision_final is the svn rev number that corresponds to the release tag. // revision_prior is the svn rev number of the previous release. // revision_prior:revision_final is the range of svn rev numbers that are included in this release (noting that you'll need to be specific about paths) - $release['revision_final'] = $release_revision; - $release['revision_prior'] = $last_release_revision ?? null; // TODO: is there a reasonable way to get the initial import revision number? + $release['revision_final'] = $release_revision ?? 'HEAD'; + $release['revision_prior'] = $last_release_revision ?? '1'; // TODO: is there a reasonable way to get the initial import revision number? // FIXME: Is it safe to run this here? Should this be conditional on the context in which we're running? Only on add? Something else? if ( $release['revision_final'] && $release['revision_prior'] ) { $trunk_url = Import::PLUGIN_SVN_BASE . '/' . $plugin->post_name . '/trunk'; - $commit_log = SVN::log( $trunk_url, [ $release['revision_prior'], $release['revision_final'] ] ); + $svn_options = [ 'limit' => 100 ]; // Safety limit + $commit_log = SVN::log( $trunk_url, [ $release['revision_final'], $release['revision_prior'] ], $svn_options ); $release['commit_log'] = $commit_log['log'] ?? null; } From c76f9631de228f098dfb70c6782d21bf5294be45 Mon Sep 17 00:00:00 2001 From: StevenDufresne Date: Thu, 12 Dec 2024 04:27:37 +0000 Subject: [PATCH 69/84] Move away from a form and fix validation. --- .../build/blocks/release-checks/style-index.css | 4 ++-- .../build/blocks/release-publish/render.php | 3 ++- .../blocks/release-publish/style-index.css | 7 ++++--- .../build/blocks/release-publish/view.asset.php | 2 +- .../build/blocks/release-publish/view.js | 16 +++++++++++++--- .../src/blocks/release-checks/index.php | 11 +++++++++-- .../src/blocks/release-checks/style.scss | 7 ++++--- .../src/blocks/release-publish/render.php | 3 ++- .../src/blocks/release-publish/style.scss | 8 ++++---- .../src/blocks/release-publish/view.js | 17 ++++++++++++++--- 10 files changed, 55 insertions(+), 23 deletions(-) diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks/style-index.css b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks/style-index.css index 0843a9b7c9..a88dbe5a66 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks/style-index.css +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-checks/style-index.css @@ -5,13 +5,13 @@ padding: 0; } .wp-block-wporg-release-checks .wp-block-heading { - font-weight: 500; font-size: var(--wp--preset--font-size--small); } .wp-block-wporg-release-checks-results { list-style: none; - padding-left: 0; + padding-left: 12px; + border-left: 4px solid var(--wp--preset--color--light-grey-1); } .wp-block-wporg-release-checks-results li ul { list-style: disc; diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish/render.php index c435b59bb8..4a6547738c 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish/render.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish/render.php @@ -39,6 +39,7 @@ 'nonce' => wp_create_nonce( 'wp_rest' ), 'apiURL' => esc_url( rest_url( 'plugins/v2/plugin/' . $plugin_slug . '/publish' ) ), 'genericErrorMessage' => __( 'An error occurred while publishing the release.', 'wporg-plugins' ), + 'tooltipMessage' => __( 'Please fill out this field.', 'wporg-plugins' ), ); /** @@ -96,7 +97,7 @@ ) ) ?> -
      +
        diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish/style-index.css b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish/style-index.css index f224901570..b73335c2bc 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish/style-index.css +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish/style-index.css @@ -4,13 +4,14 @@ .wp-block-wporg-release-publish label { display: block; } -.wp-block-wporg-release-publish form ul { - padding: 0; -} .wp-block-wporg-release-publish .wp-block-wporg-release-result-item > div:last-child > div { color: var(--wp--preset--color--charcoal-4); } +.wp-block-wporg-release-publish-checklist { + padding: 0; +} + .wp-block-wporg-release-publish-user-confirm { margin-top: var(--wp--preset--spacing--20); } diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish/view.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish/view.asset.php index 5c55fb1a42..6153a2d1d1 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish/view.asset.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish/view.asset.php @@ -1 +1 @@ - array('@wordpress/interactivity'), 'version' => '37a70276480c6c756953', 'type' => 'module'); + array('@wordpress/interactivity'), 'version' => 'ee10e8d222a79fd9ef3b', 'type' => 'module'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish/view.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish/view.js index 02c43c36c0..e089cab359 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish/view.js +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish/view.js @@ -97,14 +97,24 @@ const { }, *handleSubmit(event) { event.preventDefault(); - state.isPublishing = true; - state.errorMessage = ''; const { pluginSlug, nonce, apiURL, - genericErrorMessage + genericErrorMessage, + tooltipMessage } = (0,_wordpress_interactivity__WEBPACK_IMPORTED_MODULE_0__.getContext)(); + + // Replicate form validation. + if (!state.hasConfirmed) { + const input = document.getElementById('confirm-release'); + input.setCustomValidity(tooltipMessage); + input.reportValidity(); + return false; + } + state.isPublishing = true; + state.errorMessage = ''; + state.hasError = false; try { const response = yield fetch(apiURL, { method: 'POST', diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-checks/index.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-checks/index.php index 8e40fb80f7..2d30c117b1 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-checks/index.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-checks/index.php @@ -8,6 +8,8 @@ namespace WordPressdotorg\Theme\Plugins_2024\ReleaseChecks; +use function WordPressdotorg\Plugin_Directory\Theme\get_plugin_slug; + add_action( 'init', __NAMESPACE__ . '\init' ); /** @@ -46,9 +48,14 @@ function format_plugin_check_results( $results ) { $output .= do_blocks( sprintf( ' -
        %s
        +
        %2$s
        ', - esc_html( $file_name ) + sprintf( + 'https://plugins.trac.wordpress.org/browser/%1$s/trunk/%2$s', + esc_html( get_plugin_slug() ), + $file_name + ), + $file_name ) ); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-checks/style.scss b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-checks/style.scss index 8c73fefe48..c4e9333646 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-checks/style.scss +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-checks/style.scss @@ -1,16 +1,17 @@ .wp-block-wporg-release-checks { padding: 0; + .wp-block-heading { - font-weight: 500; font-size: var(--wp--preset--font-size--small); } } .wp-block-wporg-release-checks-results { list-style: none; - padding-left: 0; - + padding-left: 12px; + border-left: 4px solid var(--wp--preset--color--light-grey-1); + li ul { list-style: disc; } diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-publish/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-publish/render.php index c435b59bb8..4a6547738c 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-publish/render.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-publish/render.php @@ -39,6 +39,7 @@ 'nonce' => wp_create_nonce( 'wp_rest' ), 'apiURL' => esc_url( rest_url( 'plugins/v2/plugin/' . $plugin_slug . '/publish' ) ), 'genericErrorMessage' => __( 'An error occurred while publishing the release.', 'wporg-plugins' ), + 'tooltipMessage' => __( 'Please fill out this field.', 'wporg-plugins' ), ); /** @@ -96,7 +97,7 @@ ) ) ?> -
          +
            diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-publish/style.scss b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-publish/style.scss index 20676e2fd8..5f762291f7 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-publish/style.scss +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-publish/style.scss @@ -3,15 +3,15 @@ display: block; } - form ul { - padding: 0; - } - .wp-block-wporg-release-result-item > div:last-child > div { color: var(--wp--preset--color--charcoal-4); } } +.wp-block-wporg-release-publish-checklist { + padding: 0; +} + .wp-block-wporg-release-publish-user-confirm { margin-top: var(--wp--preset--spacing--20); } diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-publish/view.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-publish/view.js index f4bdd843ad..4d35bf7ab8 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-publish/view.js +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-publish/view.js @@ -1,7 +1,7 @@ /** * WordPress dependencies */ -import { store, getContext } from '@wordpress/interactivity'; +import { store, getContext, getElement } from '@wordpress/interactivity'; const { state } = store( 'wporg/publish-draft', { state: { @@ -35,10 +35,21 @@ const { state } = store( 'wporg/publish-draft', { *handleSubmit( event ) { event.preventDefault(); + const { pluginSlug, nonce, apiURL, genericErrorMessage, tooltipMessage } = getContext(); + + // Replicate form validation. + if ( ! state.hasConfirmed ) { + const input = document.getElementById( 'confirm-release' ); + + input.setCustomValidity( tooltipMessage ); + input.reportValidity(); + + return false; + } + state.isPublishing = true; state.errorMessage = ''; - - const { pluginSlug, nonce, apiURL, genericErrorMessage } = getContext(); + state.hasError = false; try { const response = yield fetch( apiURL, { From 308d256511636e4185dd9933c133872d7b66d269 Mon Sep 17 00:00:00 2001 From: StevenDufresne Date: Thu, 12 Dec 2024 04:37:48 +0000 Subject: [PATCH 70/84] Fix heading issues. --- .../pub/wporg-plugins-2024/build/blocks/card/render.php | 4 ++-- .../themes/pub/wporg-plugins-2024/src/blocks/card/render.php | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/card/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/card/render.php index f4ac504879..d0e1cdb712 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/card/render.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/card/render.php @@ -9,9 +9,9 @@
            -

            +

            {$block->attributes['title']} -

            + $content
            diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/card/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/card/render.php index f4ac504879..d0e1cdb712 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/card/render.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/card/render.php @@ -9,9 +9,9 @@
            -

            +

            {$block->attributes['title']} -

            + $content
            From bbcb39e2a5ffac301f9f150e68abd8c5b6142819 Mon Sep 17 00:00:00 2001 From: StevenDufresne Date: Thu, 12 Dec 2024 04:40:21 +0000 Subject: [PATCH 71/84] Make the secondary font size smaller. --- .../build/blocks/release-publish/style-index.css | 1 + .../pub/wporg-plugins-2024/src/blocks/release-publish/style.scss | 1 + 2 files changed, 2 insertions(+) diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish/style-index.css b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish/style-index.css index b73335c2bc..33461bcf47 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish/style-index.css +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-publish/style-index.css @@ -6,6 +6,7 @@ } .wp-block-wporg-release-publish .wp-block-wporg-release-result-item > div:last-child > div { color: var(--wp--preset--color--charcoal-4); + font-size: var(--wp--preset--font-size--extra-small); } .wp-block-wporg-release-publish-checklist { diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-publish/style.scss b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-publish/style.scss index 5f762291f7..112ec79bb7 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-publish/style.scss +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/src/blocks/release-publish/style.scss @@ -5,6 +5,7 @@ .wp-block-wporg-release-result-item > div:last-child > div { color: var(--wp--preset--color--charcoal-4); + font-size: var(--wp--preset--font-size--extra-small); } } From b5a49729a8e042400bf101fea43212c344608e26 Mon Sep 17 00:00:00 2001 From: tellyworth Date: Thu, 12 Dec 2024 15:44:29 +1100 Subject: [PATCH 72/84] Fix fatal when no release exists --- .../plugin-directory/class-plugin-release.php | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/wordpress.org/public_html/wp-content/plugins/plugin-directory/class-plugin-release.php b/wordpress.org/public_html/wp-content/plugins/plugin-directory/class-plugin-release.php index 05461e4da3..b44a2d5325 100644 --- a/wordpress.org/public_html/wp-content/plugins/plugin-directory/class-plugin-release.php +++ b/wordpress.org/public_html/wp-content/plugins/plugin-directory/class-plugin-release.php @@ -260,16 +260,17 @@ public function add_or_update_draft_release( $plugin, $release ) { return false; // Not an error, just skip. } } - } - // Store the commit log in postmeta. We'll only do this for drafts. - $last_release_revision = max( $last_release->release_revision ); - if ( $last_release_revision && $release['revision'] ) { - $trunk_url = Import::PLUGIN_SVN_BASE . '/' . $plugin->post_name . '/trunk'; - $svn_options = [ 'limit' => 100 ]; // Safety limit - $commit_log = SVN::log( $trunk_url, [ max( $release['revision'] ), $last_release_revision ], $svn_options ); - $release['commit_log'] = $commit_log['log'] ?? null; + // Store the commit log in postmeta. We'll only do this for drafts. + $last_release_revision = max( $last_release->release_revision ); + if ( $last_release_revision && $release['revision'] ) { + $trunk_url = Import::PLUGIN_SVN_BASE . '/' . $plugin->post_name . '/trunk'; + $svn_options = [ 'limit' => 100 ]; // Safety limit + $commit_log = SVN::log( $trunk_url, [ max( $release['revision'] ), $last_release_revision ], $svn_options ); + $release['commit_log'] = $commit_log['log'] ?? null; + } } + $draft_id = $this->get_release( $plugin, 'trunk' ); if ( $draft_id ) { $release_id = $this->update_release( $draft_id, $release ); From 467b83686b7e895744b3602b863d6366ea5c8c0d Mon Sep 17 00:00:00 2001 From: StevenDufresne Date: Thu, 12 Dec 2024 04:48:30 +0000 Subject: [PATCH 73/84] Revert block-config.php --- .../wporg-plugins-2024/inc/block-config.php | 66 +++++++++---------- 1 file changed, 33 insertions(+), 33 deletions(-) diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/inc/block-config.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/inc/block-config.php index e4a95e0aa5..a28f5d2ddc 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/inc/block-config.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/inc/block-config.php @@ -30,14 +30,14 @@ function add_site_navigation_menus( $menus ) { $url = 'https://' . $_SERVER['HTTP_HOST'] . parse_url( $_SERVER['REQUEST_URI'], PHP_URL_PATH ); $items = array( - 'plugins' => array( + 'plugins' => array( array( 'label' => __( 'Submit a plugin', 'wporg-plugins' ), - 'url' => '/developers/', + 'url' => '/developers/', ), array( - 'label' => __( 'My favorites', 'wporg-plugins' ), - 'url' => '/browse/favorites/', + 'label' => __( 'My favorites', 'wporg-plugins' ), + 'url' => '/browse/favorites/', 'className' => 'has-separator', ), ), @@ -48,7 +48,7 @@ function add_site_navigation_menus( $menus ) { ), array( 'label' => __( 'Community', 'wporg-plugins' ), - 'url' => is_search() ? esc_url( get_search_link() . '?plugin_business_model=community' ) : esc_url( $url . '?plugin_business_model=community' ), + 'url' => is_search() ? esc_url( get_search_link() . '?plugin_business_model=community' ) : esc_url( $url . '?plugin_business_model=community' ), 'term' => get_term_by( 'slug', 'community', 'plugin_business_model' ), ), array( @@ -73,15 +73,15 @@ function add_site_navigation_menus( $menus ) { 'label' => __( 'Popular', 'wporg-plugins' ), 'term' => get_term_by( 'slug', 'popular', 'plugin_section' ), ),*/ - ), + ) ); if ( ! is_user_logged_in() ) { global $wp; - $redirect_url = home_url( $wp->request ); + $redirect_url = home_url( $wp->request ); $items['plugins'][] = array( 'label' => __( 'Log in', 'wporg-plugins' ), - 'url' => wp_login_url( $redirect_url ), + 'url' => wp_login_url( $redirect_url ), ); } @@ -107,7 +107,7 @@ function wporg_query_filter_options_sort() { global $wp_query; $orderby = strtolower( $wp_query->query['orderby'] ?? '' ); $order = strtolower( $wp_query->query['order'] ?? '' ); - $sort = $orderby . ( $order ? '_' . $order : '' ); + $sort = $orderby . ( $order ? '_' . $order : '' ); $options = array( 'relevance' => __( 'Relevance', 'wporg-plugins' ), @@ -139,7 +139,7 @@ function wporg_query_filter_options_sort() { 'key' => 'orderby', 'action' => '', 'options' => $options, - 'selected' => array( $sort ), + 'selected' => [ $sort ], ); } @@ -149,7 +149,7 @@ function wporg_query_filter_options_business_model() { 'commercial' => __( 'Commercial', 'wporg-plugins' ), 'community' => __( 'Community', 'wporg-plugins' ), ); - $label = __( 'Type', 'wporg-plugins' ); + $label = __( 'Type', 'wporg-plugins' ); if ( get_query_var( 'plugin_business_model' ) && isset( $options[ get_query_var( 'plugin_business_model' ) ] ) ) { $label = sprintf( __( 'Type: %s', 'wporg-plugins' ), $options[ get_query_var( 'plugin_business_model' ) ] ); } @@ -159,25 +159,25 @@ function wporg_query_filter_options_business_model() { 'title' => __( 'Type', 'wporg-plugins' ), 'key' => 'plugin_business_model', 'action' => '', - 'options' => $options, - 'selected' => array( get_query_var( 'plugin_business_model' ) ), + 'options' => $options , + 'selected' => [ get_query_var( 'plugin_business_model' ) ], ); } function wporg_query_filter_options_plugin_category() { - $options = array(); + $options = []; - foreach ( get_terms( 'plugin_category', array( 'hide_empty' => true ) ) as $term ) { + foreach ( get_terms( 'plugin_category', [ 'hide_empty' => true ] ) as $term ) { $options[ $term->slug ] = $term->name; } - + $count = count( (array) get_query_var( 'plugin_category' ) ); $label = sprintf( /* translators: The dropdown label for filtering, %s is the selected term count. */ _n( 'Categories %s', 'Categories %s', number_format_i18n( $count ), 'wporg-plugins' ), $count ); - + return array( 'label' => $label, 'title' => __( 'Category', 'wporg-plugins' ), @@ -228,9 +228,10 @@ function wporg_query_filter_in_form( $key ) { } // Temporary for feature flag - if ( isset( $_GET['show_filters'] ) ) { + if ( isset( $_GET['show_filters'] ) ) { echo ''; } + } function wporg_query_total_label( $label, $count ) { @@ -270,8 +271,8 @@ function wporg_query_total_label( $label, $count ) { */ function get_favorite_settings( $settings, $post_id ) { return array( - 'is_favorite' => Tools::favorited_plugin( $post_id ), - 'add_callback' => function ( $_post_id ) { + 'is_favorite' => Tools::favorited_plugin( $post_id ), + 'add_callback' => function( $_post_id ) { $result = (bool) Tools::favorite_plugin( $_post_id, get_current_user_id(), true ); // `favorite_plugin` can return false for a number of reasons (not logged in, no plugin found, ) if ( ! $result ) { @@ -279,7 +280,7 @@ function get_favorite_settings( $settings, $post_id ) { } return $result; }, - 'delete_callback' => function ( $_post_id ) { + 'delete_callback' => function( $_post_id ) { $result = (bool) Tools::favorite_plugin( $_post_id, get_current_user_id(), false ); // `favorite_plugin` can return false for a number of reasons (not logged in, no plugin found, ) if ( ! $result ) { @@ -311,7 +312,7 @@ function set_rating_data( $data, $post_id ) { /** * Why do we multiply the average rating by 20? - * The themes API does it this way, and the rating plugin was built to fit that. + * The themes API does it this way, and the rating plugin was built to fit that. * Instead of redoing everything, multiplying here keeps things simple and works well. * * @see theme-directory/class-themes-api.php for more info. @@ -319,10 +320,10 @@ function set_rating_data( $data, $post_id ) { $adjusted_rating = $rating * 20; return array( - 'rating' => $adjusted_rating, + 'rating' => $adjusted_rating, 'ratingsCount' => array_sum( $ratings ), - 'ratings' => $ratings, - 'supportUrl' => esc_url( 'https://wordpress.org/support/plugin/' . $post->post_name . '/reviews/' ), + 'ratings' => $ratings, + 'supportUrl' => esc_url( 'https://wordpress.org/support/plugin/' . $post->post_name . '/reviews/' ) ); } @@ -336,8 +337,7 @@ function filter_search_block( $block_content ) { // Remove the required attribute $block_content = preg_replace( '/(]*)\s+required\s*([^>]*)>/', '$1$2>', $block_content ); - /* - Temporarily disable this until filters are enabled. + /* Temporarily disable this until filters are enabled. // Insert the current query filters into the search form. ob_start(); wporg_query_filter_in_form( 's' ); @@ -367,9 +367,9 @@ function filter_site_title_block( $block_content ) { /** * Filter the navigation to add the current item indicator when no business model is selected. - * + * * @param string $block_content - * @param array $block + * @param array $block * @return string */ function filter_navigation_block( $block_content, $block ) { @@ -382,10 +382,10 @@ function filter_navigation_block( $block_content, $block ) { if ( get_query_var( 'plugin_business_model' ) ) { - // The menu doesn't select properly if viewing /tags/ or /browse/. + // The menu doesn't select properly if viewing /tags/ or /browse/. if ( get_query_var( 'browse' ) || get_query_var( 'plugin_tags' ) ) { $tags = new \WP_HTML_Tag_Processor( $block_content ); - + while ( $tags->next_tag( 'li' ) ) { $tags->set_bookmark( 'parent-li' ); $tags->next_tag( 'a' ); @@ -420,9 +420,9 @@ function filter_navigation_block( $block_content, $block ) { /** * Increase the visibilit of the language suggest bar to recruit translators on plugin page. - * + * * @see https://github.com/WordPress/wordpress.org/issues/301 - * + * * @param string $block_content * @return string */ From 3769219ca6c9283aa8ed7f54ca714978b4b5ebc2 Mon Sep 17 00:00:00 2001 From: StevenDufresne Date: Thu, 12 Dec 2024 05:48:13 +0000 Subject: [PATCH 74/84] Rename endpoint to publish. --- .../plugin-directory/api/routes/class-plugin-publish.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/wordpress.org/public_html/wp-content/plugins/plugin-directory/api/routes/class-plugin-publish.php b/wordpress.org/public_html/wp-content/plugins/plugin-directory/api/routes/class-plugin-publish.php index 6620416b82..752a1fa427 100644 --- a/wordpress.org/public_html/wp-content/plugins/plugin-directory/api/routes/class-plugin-publish.php +++ b/wordpress.org/public_html/wp-content/plugins/plugin-directory/api/routes/class-plugin-publish.php @@ -26,7 +26,7 @@ class Plugin_Publish extends Base { public function __construct() { register_rest_route( 'plugins/v2', - '/plugin/(?P[^/]+)/release', // FIXME: 'release' or 'publish' or something else? + '/plugin/(?P[^/]+)/publish', array( 'methods' => \WP_REST_Server::CREATABLE, 'callback' => array( $this, 'publish_release' ), From 10f850daa22802868778a0df734949632a3f0d28 Mon Sep 17 00:00:00 2001 From: StevenDufresne Date: Thu, 12 Dec 2024 06:56:43 +0000 Subject: [PATCH 75/84] Refactor to save commits if there are no releases yet. --- .../plugin-directory/class-plugin-release.php | 34 +++++++++++-------- 1 file changed, 20 insertions(+), 14 deletions(-) diff --git a/wordpress.org/public_html/wp-content/plugins/plugin-directory/class-plugin-release.php b/wordpress.org/public_html/wp-content/plugins/plugin-directory/class-plugin-release.php index b44a2d5325..65938a3fef 100644 --- a/wordpress.org/public_html/wp-content/plugins/plugin-directory/class-plugin-release.php +++ b/wordpress.org/public_html/wp-content/plugins/plugin-directory/class-plugin-release.php @@ -248,29 +248,35 @@ public function add_or_update_draft_release( $plugin, $release ) { // If there's already a published release for this plugin, we only create a draft if there are unreleased trunk commits. $last_release = $this->get_release( $plugin, null ); + + $trunk_url = Import::PLUGIN_SVN_BASE . '/' . $plugin->post_name . '/trunk'; + $svn_options = array( 'limit' => 100 ); // Safety limit. + $commit_log = null; + if ( $last_release ) { - if ( !empty( $release[ 'revision' ] ) ) { + if ( ! empty( $release['revision'] ) ) { // Don't create a draft unless the revision number is higher than the last release. if ( max( $release['revision'] ) <= max( $last_release->release_revision ) ) { return false; // Not an error, just skip. } - } else { - // If we don't have revision numbers, use dates. Maybe this should be removed. - if ( strtotime( $release['date'] ) <= strtotime( $last_release->release_date ) ) { - return false; // Not an error, just skip. - } - } - // Store the commit log in postmeta. We'll only do this for drafts. - $last_release_revision = max( $last_release->release_revision ); - if ( $last_release_revision && $release['revision'] ) { - $trunk_url = Import::PLUGIN_SVN_BASE . '/' . $plugin->post_name . '/trunk'; - $svn_options = [ 'limit' => 100 ]; // Safety limit - $commit_log = SVN::log( $trunk_url, [ max( $release['revision'] ), $last_release_revision ], $svn_options ); - $release['commit_log'] = $commit_log['log'] ?? null; + // Get commits from last release revision to current revision. + $last_release_revision = max( $last_release->release_revision ); + if ( $last_release_revision ) { + $commit_log = SVN::log( $trunk_url, array( max( $release['revision'] ), $last_release_revision ), $svn_options ); + } + } elseif ( strtotime( $release['date'] ) <= strtotime( $last_release->release_date ) ) { + // If we don't have revision numbers, use dates. Maybe this should be removed. + return false; // Not an error, just skip. } + } else { + // No previous release - get commits from revision '1' to 'head'. + $commit_log = SVN::log( $trunk_url, array( '1', 'HEAD' ), $svn_options ); } + // Store the commit log in postmeta. We'll only do this for drafts. + $release['commit_log'] = $commit_log['log'] ?? null; + $draft_id = $this->get_release( $plugin, 'trunk' ); if ( $draft_id ) { $release_id = $this->update_release( $draft_id, $release ); From 5247cde10b51f54530dcd9c8da11136828c0bb06 Mon Sep 17 00:00:00 2001 From: StevenDufresne Date: Thu, 12 Dec 2024 06:57:30 +0000 Subject: [PATCH 76/84] Add tested for new drafts. --- .../wp-content/plugins/plugin-directory/class-plugin-release.php | 1 + 1 file changed, 1 insertion(+) diff --git a/wordpress.org/public_html/wp-content/plugins/plugin-directory/class-plugin-release.php b/wordpress.org/public_html/wp-content/plugins/plugin-directory/class-plugin-release.php index 65938a3fef..cfb97eb19c 100644 --- a/wordpress.org/public_html/wp-content/plugins/plugin-directory/class-plugin-release.php +++ b/wordpress.org/public_html/wp-content/plugins/plugin-directory/class-plugin-release.php @@ -169,6 +169,7 @@ public function add_release( $plugin, $release ) { 'release_confirmations_required' => $release['confirmations_required'], 'release_revision' => $release['revision'], 'release_commit_log' => $release['commit_log'] ?? null, + 'release_tested' => $release['tested'] ?? null, ), // TODO: what else? Could store the changelog or other content at the point of release for comparison purposes. ) ); From a6c47164c268d1fdaed1ec5e7c0c59f4b83561e5 Mon Sep 17 00:00:00 2001 From: StevenDufresne Date: Fri, 13 Dec 2024 01:24:24 +0000 Subject: [PATCH 77/84] Handle errors better. --- .../build/blocks/release-draft/render.php | 2 + .../release-menu-options/index.asset.php | 2 +- .../blocks/release-menu-options/index.js | 215 +++++------------- .../build/blocks/release-publish/render.php | 26 +-- .../blocks/release-publish/style-index.css | 4 + .../blocks/release-publish/view.asset.php | 2 +- .../build/blocks/release-publish/view.js | 7 +- .../pub/wporg-plugins-2024/package.json | 1 + .../src/blocks/card/style.scss | 2 +- .../src/blocks/release-checks/style.scss | 16 +- .../src/blocks/release-commits/style.scss | 6 +- .../src/blocks/release-draft/render.php | 2 + .../src/blocks/release-draft/style.scss | 2 +- .../blocks/release-menu-options/style.scss | 7 +- .../src/blocks/release-page/style.scss | 2 +- .../src/blocks/release-publish/render.php | 26 +-- .../src/blocks/release-publish/style.scss | 7 +- .../src/blocks/release-publish/view.js | 9 +- 18 files changed, 130 insertions(+), 208 deletions(-) diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft/render.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft/render.php index 10afaa0461..4ed83f3baa 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft/render.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-draft/render.php @@ -39,6 +39,8 @@ return; } + + // Fetch the latest draft post. $latest_draft_query->the_post(); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-menu-options/index.asset.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-menu-options/index.asset.php index 77921bd0a1..eb11dd2e03 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-menu-options/index.asset.php +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-menu-options/index.asset.php @@ -1 +1 @@ - array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => 'a82fb3da1323cd72755b'); + array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-server-side-render'), 'version' => 'ae7d8adb1cf1cb0eafb9'); diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-menu-options/index.js b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-menu-options/index.js index ec4a594e7e..c90ecc85c5 100644 --- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-menu-options/index.js +++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/build/blocks/release-menu-options/index.js @@ -1,67 +1,13 @@ /******/ (() => { // webpackBootstrap -/******/ "use strict"; /******/ var __webpack_modules__ = ({ -/***/ "./src/blocks/release-menu-options/index.js": -/*!**************************************************!*\ - !*** ./src/blocks/release-menu-options/index.js ***! - \**************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); -/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/blocks */ "@wordpress/blocks"); -/* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/server-side-render */ "@wordpress/server-side-render"); -/* harmony import */ var _wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/block-editor */ "@wordpress/block-editor"); -/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__); -/* harmony import */ var _block_json__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./block.json */ "./src/blocks/release-menu-options/block.json"); -/* harmony import */ var _style_scss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./style.scss */ "./src/blocks/release-menu-options/style.scss"); - -/** - * WordPress dependencies - */ - - - - - -/** - * Internal dependencies - */ - - -function Edit({ - attributes, - name -}) { - return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", { - ...(0,_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__.useBlockProps)() - }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Disabled, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)((_wordpress_server_side_render__WEBPACK_IMPORTED_MODULE_3___default()), { - block: name, - attributes: attributes - }))); -} -(0,_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__.registerBlockType)(_block_json__WEBPACK_IMPORTED_MODULE_5__.name, { - edit: Edit, - save: () => null -}); - -/***/ }), - /***/ "./src/blocks/release-menu-options/style.scss": /*!****************************************************!*\ !*** ./src/blocks/release-menu-options/style.scss ***! \****************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -// extracted by mini-css-extract-plugin +/***/ (() => { +throw new Error("Module build failed (from ./node_modules/mini-css-extract-plugin/dist/loader.js):\nHookWebpackError: Module build failed (from ./node_modules/sass-loader/dist/cjs.js):\nSassError: expected \")\".\n ╷\n32 │ background-image: url(data:image/svg+xml,
            -
            - -
            -
            -

            -
            - ' - ); - ?> -
            -
            +
            + +
            +
            +

            +
            + ' + ); + ?> +
            +