Commit b0bc8c79 authored by Simon's avatar Simon

Merge branch 'release-1.34.2'

parents ac06e0bd bc5a98b0
......@@ -20,9 +20,9 @@
## Production
- build CSS & JS assets - `C:\web\dev.biuro\ npm run build`
- build new image `docker build -t biuro/web:1.34.0 .` (update version number)
- build new image `docker build -t biuro/web:1.34.2 .` (update version number)
- login to biuro docker account `docker login --username=biuro --password=9Ndtjd2vKsLvGuFOeFq1KdJs`
- push image to docker repository - `docker push biuro/web:1.34.0`
- push image to docker repository - `docker push biuro/web:1.34.2`
## Production
- update biuro/web image version in .env file (staging or www)
......
......@@ -866,7 +866,7 @@ class Pods implements Iterator {
}
} else {
// Handle custom/supported value mappings.
$map_field_values = tribe( Map_Field_Values::class );
$map_field_values = pods_container( Map_Field_Values::class );
$value = $map_field_values->map_value( $first_field, $traverse_fields, $is_field_set ? $field_data : null, $this );
......
......@@ -5323,7 +5323,7 @@ class PodsAPI {
pods_no_conflict_on( $pod['type'] );
}
$static_cache = tribe( Static_Cache::class );
$static_cache = pods_container( Static_Cache::class );
// Save relationship / file data
if ( ! empty( $rel_fields ) ) {
......@@ -5644,7 +5644,7 @@ class PodsAPI {
* @return array List of changed fields (if $mode = 'get')
*/
public static function handle_changed_fields( $pod, $id, $mode = 'set' ) {
$static_cache = tribe( Static_Cache::class );
$static_cache = pods_container( Static_Cache::class );
$changed_pods_cache = $static_cache->get( 'changed_pods_cache', __CLASS__ ) ?: [];
$old_fields_cache = $static_cache->get( 'old_fields_cache', __CLASS__ ) ?: [];
......@@ -5740,7 +5740,7 @@ class PodsAPI {
* @return array List of ID(s) that were setup for saving.
*/
public function save_relationships( $id, $related_ids, $pod, $field ) {
$static_cache = tribe( Static_Cache::class );
$static_cache = pods_container( Static_Cache::class );
$related_data = $static_cache->get( $field['name'] . '/' . $field['id'], 'PodsField_Pick/related_data' ) ?: [];
......@@ -5751,7 +5751,7 @@ class PodsAPI {
$current_ids = $this->lookup_related_items( $field['id'], $pod['id'], $id, $field, $pod );
}
$static_cache = tribe( Static_Cache::class );
$static_cache = pods_container( Static_Cache::class );
$cache_key = $pod['id'] . '|' . $field['id'];
......@@ -7586,7 +7586,7 @@ class PodsAPI {
}
}
$static_cache = tribe( Static_Cache::class );
$static_cache = pods_container( Static_Cache::class );
$cache_key = $related_pod['id'] . '|' . $related_field['id'];
......@@ -9052,7 +9052,7 @@ class PodsAPI {
$idstring = implode( ',', $params->ids );
$static_cache = tribe( Static_Cache::class );
$static_cache = pods_container( Static_Cache::class );
$cache_key = $params->pod_id . '|' . $params->field_id;
......@@ -9676,7 +9676,7 @@ class PodsAPI {
$_info = false;
$static_cache = tribe( Static_Cache::class );
$static_cache = pods_container( Static_Cache::class );
$table_info_cache = $static_cache->get( $cache_key, __CLASS__ . '/table_info_cache' ) ?: [];
......@@ -10506,7 +10506,7 @@ class PodsAPI {
pods_transient_clear( 'pods_wp_cpt_ct' );
}
$static_cache = tribe( Static_Cache::class );
$static_cache = pods_container( Static_Cache::class );
$static_cache->flush( __CLASS__ );
$static_cache->flush( __CLASS__ . '/table_info_cache' );
......
......@@ -1679,9 +1679,9 @@ class PodsAdmin {
* @return array Global config array.
*/
public function get_global_config( $pod = null ) {
$config_pod = tribe( Config_Pod::class );
$config_group = tribe( Config_Group::class );
$config_field = tribe( Config_Field::class );
$config_pod = pods_container( Config_Pod::class );
$config_group = pods_container( Config_Group::class );
$config_field = pods_container( Config_Field::class );
// Pod: Backwards compatible configs and hooks.
$pod_tabs = $config_pod->get_tabs( $pod );
......@@ -3039,7 +3039,7 @@ class PodsAdmin {
// Turn into a string.
$auto_start = (string) $auto_start;
$settings = tribe( Settings::class );
$settings = pods_container( Settings::class );
$fields = $settings->get_setting_fields();
......
......@@ -270,18 +270,18 @@ class PodsInit {
remove_action( 'plugins_loaded', [ 'Tribe__Admin__Notices', 'instance' ], 1 );
/** @var Tribe__Assets $assets */
$assets = tribe( 'assets' );
$assets = pods_container( 'assets' );
$assets->remove( 'tribe-tooltip' );
/** @var Tribe__Asset__Data $asset_data */
$asset_data = tribe( 'asset.data' );
$asset_data = pods_container( 'asset.data' );
remove_action( 'admin_footer', [ $asset_data, 'render_json' ] );
remove_action( 'customize_controls_print_footer_scripts', [ $asset_data, 'render_json' ] );
remove_action( 'wp_footer', [ $asset_data, 'render_json' ] );
/** @var Tribe__Assets_Pipeline $assets_pipeline */
$assets_pipeline = tribe( 'assets.pipeline' );
$assets_pipeline = pods_container( 'assets.pipeline' );
remove_filter( 'script_loader_tag', [ $assets_pipeline, 'prevent_underscore_conflict' ] );
// Disable the Debug Bar panels.
......@@ -1217,7 +1217,7 @@ class PodsInit {
$existing_taxonomies = get_taxonomies( [], 'objects' );
// Handle static cache for determining whether an object was extended or not.
$static_cache = tribe( Static_Cache::class );
$static_cache = pods_container( Static_Cache::class );
$existing_post_types_cached = $static_cache->get( 'post_type', __CLASS__ . '/existing_content_types' );
......
......@@ -2827,7 +2827,7 @@ class PodsMeta {
$cached_is_key_covered = pods_cache_get( $type . '/' . $object_name, __CLASS__ . '/is_key_covered' );
if ( '404' !== $cached_is_key_covered ) {
$static_cache = tribe( Static_Cache::class );
$static_cache = pods_container( Static_Cache::class );
// Check if object type/name/key is not covered.
$cached_is_key_covered = $static_cache->get( $type . '/' . $object_name . '/' . $key, __CLASS__ . '/is_key_covered' );
......@@ -3733,7 +3733,7 @@ class PodsMeta {
}
if ( $meta_key ) {
$static_cache = tribe( Static_Cache::class );
$static_cache = pods_container( Static_Cache::class );
$static_cache->set( $object_type . '/' . $object_name . '/' . $meta_key, '404', __CLASS__ . '/is_key_covered' );
}
......@@ -3932,7 +3932,7 @@ class PodsMeta {
}
if ( $meta_key ) {
$static_cache = tribe( Static_Cache::class );
$static_cache = pods_container( Static_Cache::class );
$static_cache->set( $object_type . '/' . $object_name . '/' . $meta_key, '404', __CLASS__ . '/is_key_covered' );
}
......@@ -4047,7 +4047,7 @@ class PodsMeta {
}
if ( $meta_key ) {
$static_cache = tribe( Static_Cache::class );
$static_cache = pods_container( Static_Cache::class );
$static_cache->set( $object_type . '/' . $object_name . '/' . $meta_key, '404', __CLASS__ . '/is_key_covered' );
}
......
......@@ -264,7 +264,7 @@ class PodsView {
$value = apply_filters( "transient_{$key}", $value );
}
} elseif ( 'static-cache' === $cache_mode && ! in_array( $cache_mode, $nocache ) ) {
$static_cache = tribe( Static_Cache::class );
$static_cache = pods_container( Static_Cache::class );
$value = $static_cache->get( $key, ( empty( $group ) ? 'pods_view' : $group ) );
} else {
......@@ -365,7 +365,7 @@ class PodsView {
do_action( 'setted_transient', $key );
}
} elseif ( 'static-cache' === $cache_mode ) {
$static_cache = tribe( Static_Cache::class );
$static_cache = pods_container( Static_Cache::class );
$static_cache->set( $key, $value, ( empty( $group ) ? __CLASS__ : $group ) );
}//end if
......@@ -474,7 +474,7 @@ class PodsView {
do_action( 'deleted_transient', $key );
}
} elseif ( 'static-cache' === $cache_mode ) {
$static_cache = tribe( Static_Cache::class );
$static_cache = pods_container( Static_Cache::class );
if ( true === $key ) {
$static_cache->flush( ( empty( $group ) ? 'pods_view' : $group ) );
......
......@@ -289,7 +289,7 @@ class PodsField_Link extends PodsField_Website {
* Init the editor needed for WP Link modal to work
*/
public function validate_link_modal() {
$static_cache = tribe( Static_Cache::class );
$static_cache = pods_container( Static_Cache::class );
$init = (boolean) $static_cache->get( 'init', __METHOD__ );
......
......@@ -968,7 +968,7 @@ class PodsField_Pick extends PodsField {
if ( $this->can_ajax( $args->type, $field_options ) ) {
$ajax = true;
$static_cache = tribe( Static_Cache::class );
$static_cache = pods_container( Static_Cache::class );
$field_data = $static_cache->get( $field_options['name'] . '/' . $field_options['id'], __CLASS__ . '/field_data' ) ?: [];
......@@ -1620,7 +1620,7 @@ class PodsField_Pick extends PodsField {
$options['id'] = (int) $options['id'];
$static_cache = tribe( Static_Cache::class );
$static_cache = pods_container( Static_Cache::class );
$related_data = $static_cache->get( $options['name'] . '/' . $options['id'], __CLASS__ . '/related_data' ) ?: [];
......@@ -1745,7 +1745,7 @@ class PodsField_Pick extends PodsField {
$value_ids = array_unique( array_filter( $value ) );
$static_cache = tribe( Static_Cache::class );
$static_cache = pods_container( Static_Cache::class );
$related_data = $static_cache->get( $options['name'] . '/' . $options['id'], __CLASS__ . '/related_data' ) ?: [];
......@@ -2370,7 +2370,7 @@ class PodsField_Pick extends PodsField {
);
if ( 'data' === $context ) {
$static_cache = tribe( Static_Cache::class );
$static_cache = pods_container( Static_Cache::class );
$static_cache->set( $name . '/' . $options['id'], [
'autocomplete' => false,
......@@ -2725,7 +2725,7 @@ class PodsField_Pick extends PodsField {
}//end if
if ( 'data' === $context ) {
$static_cache = tribe( Static_Cache::class );
$static_cache = pods_container( Static_Cache::class );
$static_cache->set( $name . '/' . $options['id'], [
'autocomplete' => $autocomplete,
......
......@@ -1928,7 +1928,7 @@ function pods_redirect( $location, $status = 302, $die = true ) {
* @since 2.0.5
*/
function pods_permission( $object ) {
$permissions = tribe( Permissions::class );
$permissions = pods_container( Permissions::class );
return $permissions->user_has_permission( $object );
}
......@@ -1943,7 +1943,7 @@ function pods_permission( $object ) {
* @return bool Whether the permissions are restricted for an object.
*/
function pods_has_permissions( $object ) {
$permissions = tribe( Permissions::class );
$permissions = pods_container( Permissions::class );
return $permissions->are_permissions_restricted( $object );
}
......@@ -3248,7 +3248,20 @@ function pods_reserved_keywords( $context = null ) {
* @return mixed The setting value.
*/
function pods_get_setting( $setting_name, $default = null ) {
$settings = tribe( Settings::class );
$settings = pods_container( Settings::class );
// Fallback for the setting handling if it's too early.
if ( ! $settings ) {
$settings = get_option( Settings::OPTION_NAME, [] );
$setting = pods_v( $setting_name, (array) $settings, $default );
if ( null === $setting ) {
return $default;
}
return $setting;
}
return $settings->get_setting( $setting_name, $default );
}
......@@ -3261,7 +3274,7 @@ function pods_get_setting( $setting_name, $default = null ) {
* @return array The setting values.
*/
function pods_get_settings() {
$settings = tribe( Settings::class );
$settings = pods_container( Settings::class );
return $settings->get_settings();
}
......@@ -3275,7 +3288,7 @@ function pods_get_settings() {
* @param mixed $setting_value The setting value.
*/
function pods_update_setting( $setting_name, $setting_value ) {
$settings = tribe( Settings::class );
$settings = pods_container( Settings::class );
$settings->update_setting( $setting_name, $setting_value );
}
......@@ -3288,7 +3301,7 @@ function pods_update_setting( $setting_name, $setting_value ) {
* @param array $setting_values The list of settings to update, pass null as a value to remove it.
*/
function pods_update_settings( $setting_values ) {
$settings = tribe( Settings::class );
$settings = pods_container( Settings::class );
$settings->update_settings( $setting_values );
}
......@@ -3744,7 +3757,7 @@ function pods_svg_icon( $icon_path, $default = 'dashicons-database', $mode = 'ba
$icon_path = PODS_DIR . '/ui/images/icon-menu.svg';
}
$static_cache = tribe( Static_Cache::class );
$static_cache = pods_container( Static_Cache::class );
$icon = $static_cache->get( $icon_path, __FUNCTION__ . '/' . $mode );
......@@ -3831,3 +3844,24 @@ function pods_is_types_only( $check_constant_only = false ) {
*/
return (bool) apply_filters( 'pods_is_types_only', $is_types_only );
}
/**
* Set up the container and return it.
*
* @since 2.8.17
*
* @param string|null $slug_or_class Either the slug of a binding previously registered using `tribe_singleton` or
* `tribe_register` or the full class name that should be automagically created or
* `null` to get the container instance itself.
*
* @return mixed|null The pods_container() object or null if the function does not exist yet.
*/
function pods_container( $slug_or_class = null ) {
if ( ! function_exists( 'tribe' ) ) {
_doing_it_wrong( __FUNCTION__, 'The function tribe() is not defined yet, there may be a problem loading the Tribe Common library.', '2.8.17' );
return null;
}
return call_user_func_array( 'tribe', func_get_args() );
}
......@@ -10,7 +10,7 @@
* Plugin Name: Pods - Custom Content Types and Fields
* Plugin URI: https://pods.io/
* Description: Pods is a framework for creating, managing, and deploying customized content types and fields
* Version: 2.8.16
* Version: 2.8.17
* Author: Pods Framework Team
* Author URI: https://pods.io/about/
* Text Domain: pods
......@@ -43,7 +43,7 @@ if ( defined( 'PODS_VERSION' ) || defined( 'PODS_DIR' ) ) {
add_action( 'init', 'pods_deactivate_pods_ui' );
} else {
// Current version.
define( 'PODS_VERSION', '2.8.16' );
define( 'PODS_VERSION', '2.8.17' );
// Current database version, this is the last version the database changed.
define( 'PODS_DB_VERSION', '2.3.5' );
......
......@@ -5,7 +5,7 @@ Tags: pods, custom post types, custom taxonomies, content types, custom fields,
Requires at least: 5.5
Tested up to: 6.0
Requires PHP: 5.6
Stable tag: 2.8.16
Stable tag: 2.8.17
License: GPLv2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
......@@ -156,6 +156,10 @@ Pods really wouldn't be where it is without all the contributions from our [dono
== Changelog ==
= 2.8.17 - May 11th, 2022 =
* Fixed: Attempting to catch potential issues where an issue is detected with loading the Tribe Common library by introducing a wrapper function `pods_container()` to be used before calling `tribe()`. (@sc0ttkclark)
= 2.8.16 - May 6th, 2022 =
* Added: More compatiblity with Advanced Relationship Storage Add-On from Pods Pro by SKCDEV which allows for saving table-based relationship fields during the normal save process. (@sc0ttkclark)
......
......@@ -78,12 +78,12 @@ class API {
*/
do_action( 'pods_blocks_api_pre_init' );
tribe( 'pods.blocks.collection.pods' );
tribe( 'pods.blocks.field' );
tribe( 'pods.blocks.form' );
tribe( 'pods.blocks.list' );
tribe( 'pods.blocks.single' );
tribe( 'pods.blocks.view' );
pods_container( 'pods.blocks.collection.pods' );
pods_container( 'pods.blocks.field' );
pods_container( 'pods.blocks.form' );
pods_container( 'pods.blocks.list' );
pods_container( 'pods.blocks.single' );
pods_container( 'pods.blocks.view' );
/**
* Allow custom blocks to be registered with Pods.
......
......@@ -20,8 +20,8 @@ class Field extends Base {
* @since 2.8.0
*/
public function __construct() {
$this->endpoint_archive = tribe( 'pods.rest-v1.endpoints.fields' );
$this->endpoint_single = tribe( 'pods.rest-v1.endpoints.field' );
$this->endpoint_single_slug = tribe( 'pods.rest-v1.endpoints.field-slug' );
$this->endpoint_archive = pods_container( 'pods.rest-v1.endpoints.fields' );
$this->endpoint_single = pods_container( 'pods.rest-v1.endpoints.field' );
$this->endpoint_single_slug = pods_container( 'pods.rest-v1.endpoints.field-slug' );
}
}
......@@ -20,8 +20,8 @@ class Group extends Base {
* @since 2.8.0
*/
public function __construct() {
$this->endpoint_archive = tribe( 'pods.rest-v1.endpoints.groups' );
$this->endpoint_single = tribe( 'pods.rest-v1.endpoints.group' );
$this->endpoint_single_slug = tribe( 'pods.rest-v1.endpoints.group-slug' );
$this->endpoint_archive = pods_container( 'pods.rest-v1.endpoints.groups' );
$this->endpoint_single = pods_container( 'pods.rest-v1.endpoints.group' );
$this->endpoint_single_slug = pods_container( 'pods.rest-v1.endpoints.group-slug' );
}
}
......@@ -20,8 +20,8 @@ class Pod extends Base {
* @since 2.8.0
*/
public function __construct() {
$this->endpoint_archive = tribe( 'pods.rest-v1.endpoints.pods' );
$this->endpoint_single = tribe( 'pods.rest-v1.endpoints.pod' );
$this->endpoint_single_slug = tribe( 'pods.rest-v1.endpoints.pod-slug' );
$this->endpoint_archive = pods_container( 'pods.rest-v1.endpoints.pods' );
$this->endpoint_single = pods_container( 'pods.rest-v1.endpoints.pod' );
$this->endpoint_single_slug = pods_container( 'pods.rest-v1.endpoints.pod-slug' );
}
}
......@@ -42,9 +42,9 @@ class Service_Provider extends \tad_DI52_ServiceProvider {
*/
protected function hooks() {
// Add dynamic commands.
tribe( 'pods.cli.commands.pods.pod' );
tribe( 'pods.cli.commands.pods.group' );
tribe( 'pods.cli.commands.pods.field' );
pods_container( 'pods.cli.commands.pods.pod' );
pods_container( 'pods.cli.commands.pods.group' );
pods_container( 'pods.cli.commands.pods.field' );
// Add static commands.
if ( defined( 'WP_CLI' ) ) {
......
......@@ -211,7 +211,7 @@ abstract class Base {
*/
public function get_route() {
/** @var Main $main */
$main = tribe( 'pods.rest-v1.main' );
$main = pods_container( 'pods.rest-v1.main' );
$namespace = $main->get_pods_route_namespace();
......@@ -791,7 +791,7 @@ abstract class Base {
}
try {
$doc_endpoint_obj = tribe( 'pods.rest-v1.endpoints.documentation' );
$doc_endpoint_obj = pods_container( 'pods.rest-v1.endpoints.documentation' );
$doc_endpoint_obj->register_documentation_provider( $rest_doc_route, $this );
} catch ( Exception $exception ) {
......
......@@ -38,7 +38,7 @@ class Swagger_Documentation implements Provider_Interface, READ_Endpoint_Interfa
public function hook() {
/** @var Main $main */
$main = tribe( 'pods.rest-v1.main' );
$main = pods_container( 'pods.rest-v1.main' );
$this->set_current_rest_api_version( $main->get_semantic_version() );
}
......@@ -80,7 +80,7 @@ class Swagger_Documentation implements Provider_Interface, READ_Endpoint_Interfa
*/
public function get_documentation() {
/** @var Main $main */
$main = tribe( 'pods.rest-v1.main' );
$main = pods_container( 'pods.rest-v1.main' );
$documentation = [
'openapi' => $this->open_api_version,
......
......@@ -39,7 +39,7 @@ class Post_Repository extends REST_Post_Repository {
'_pods_field' => [ $this, 'get_field_data' ],
];
$this->messages = $messages ? $messages : tribe( 'pods.rest-v1.messages' );
$this->messages = $messages ? $messages : pods_container( 'pods.rest-v1.messages' );
}
/**
......
......@@ -42,9 +42,9 @@ class Service_Provider extends \tad_DI52_ServiceProvider {
$this->container->singleton( 'pods.rest-v1.validator', Base_Validator::class );
$this->container->singleton( 'pods.rest-v1.repository', Post_Repository::class );
$messages = tribe( 'pods.rest-v1.messages' );
$post_repository = tribe( 'pods.rest-v1.repository' );
$validator = tribe( 'pods.rest-v1.validator' );
$messages = pods_container( 'pods.rest-v1.messages' );
$post_repository = pods_container( 'pods.rest-v1.repository' );
$validator = pods_container( 'pods.rest-v1.validator' );
$endpoints = $this->get_endpoints();
......@@ -96,7 +96,7 @@ class Service_Provider extends \tad_DI52_ServiceProvider {
*/
public function register_endpoints() {
/** @var Main $main */
$main = tribe( 'pods.rest-v1.main' );
$main = pods_container( 'pods.rest-v1.main' );
$this->namespace = $main->get_pods_route_namespace();
......@@ -108,7 +108,7 @@ class Service_Provider extends \tad_DI52_ServiceProvider {
}
try {
$endpoint_obj = tribe( $key );
$endpoint_obj = pods_container( $key );
if ( method_exists( $endpoint_obj, 'register_routes' ) ) {
$endpoint_obj->register_routes( $this->namespace, true );
......@@ -130,7 +130,7 @@ class Service_Provider extends \tad_DI52_ServiceProvider {
*/
protected function register_endpoint_documentation() {
/** @var Swagger_Builder_Interface $endpoint */
$endpoint = tribe( 'pods.rest-v1.endpoints.documentation' );
$endpoint = pods_container( 'pods.rest-v1.endpoints.documentation' );
register_rest_route( $this->namespace, '/doc', [
'methods' => WP_REST_Server::READABLE,
......
......@@ -174,7 +174,7 @@ if ( 0 < $pod->id() ) {
}
}
$static_cache = tribe( Static_Cache::class );
$static_cache = pods_container( Static_Cache::class );
$counter = (int) $static_cache->get( $pod->pod . '-counter', 'pods-forms' );
......
......@@ -2,6 +2,57 @@
This file contains only old changelog. See readme.txt for newer versions.
= 3.1.4 (2022-01-31) =
* Pro: Adapt duplication and synchronization of the gallery block refactored in WP 5.9
* Fix UI glitch in the classic editor custom fields form when changing a post language in WP 5.9 #970
= 3.1.3 (2021-12-14) =
* Fix user description escaping #934
* Fix dismissable notice when creating a term in WP 5.9 #936
* Fix empty search not handled correctly. Props Dominik Schilling #937
* Fix warning occurring when a 3rd party plugin attempts to register anything else than a string using the WPML API #942
* Fix Yoast SEO columns not corectly drawn when quick editing a post #943
= 3.1.2 (2021-10-11) =
* Pro: Fix parent page not filtered by language in the block editor since WP 5.6
* Pro: Fix XLIFF mime type for PHP 7.0 and PHP 7.1
* Fix settings page displaying the media modules whne no language are defined
* Enforce Yoast SEO to use dynamic permalinks #882
* Yoast SEO: Fix static front page and blog page breadcrumb
= 3.1.1 (2021-08-16) =
* Pro: Fix a fatal error with The Events Calendar
* Allow to remove the cookie with the pll_cookie_expiration filter #905
= 3.1 (2021-07-27) =
* Add compatibility with WordPress 5.8
* Raise Minimum WordPress version to 5.4
* Pro: Allow to filter blocks by language in the widget block editor
* Pro: Allow to export and import XLIFF files for string translations
* Pro: Add the language switcher in the navigation block (experimental)
* Pro: Replace dashicons by svg icons in the block editor
* Pro: The Events Calendar: Add compatibility with Views V2 (only for sites using only one domain)
* Pro: Fix + icon displayed in the block editor sidebar when the user cannot create a translation
* Add a warning section to the site health for posts and terms without languages #825
* Require the simplexml extension in the site health if a wpml-config.xml is found #827
* Remove the information about the WPML compabitility mode in settings #843
* The browser preferred language detection is now deactivated by default
* The media are now untranslated by default
* Highlight the language filter in the admin toolbar when it's active #821
* Allow to query comments in multiple languages (just as posts and terms) #840
* Don't disable the translation input field in the classic metabox #841 Props Onatcer
* Optimize all images including flags #848 Props lowwebtech
* Don't redirect if WordPress doesn't validate the redirect url to avoid redirects to /wp-admin/ #879
* Fix media appearing to have a language after the language is changed in the media library grid view #807
* Fix media not all deleted when bulk deleting from the grid view of the media library #830
* Fix when more than one language switcher are added to the same menu #853
* Fix PHP notice when adding a CPT archive link to a menu #868 Props davidwebca
= 3.0.6 (2021-06-22) =
* Fix a conflict with the WooCommerce cart translation and cache plugins #876
......
......@@ -335,8 +335,8 @@
#wp-admin-bar-languages.pll-filtered-languages {
background: #a03f3f;
}
/* Enforce white color for WordPress admin light theme. */
#wpadminbar #wp-admin-bar-languages.pll-filtered-languages span.ab-label{
#wpadminbar #wp-admin-bar-languages.pll-filtered-languages span.ab-label{ /* Enforce white color for WordPress admin light theme. */
color: #fff;
}
......@@ -354,25 +354,6 @@
margin-right: 10px;
}
/* Metaboxes holder in Strings translations screen */
.languages_page_mlang_strings .metabox-holder > div {
display: flex;
}
.languages_page_mlang_strings .metabox-holder > div > div {
flex-grow: 1;
}
.languages_page_mlang_strings .metabox-holder > div > div:nth-child(2n) {
margin-left: 1rem;
}
.languages_page_mlang_strings .metabox-holder > div > div.closed {
border:0;
background: none;
}
.languages_page_mlang_strings .metabox-holder > div > div.closed .postbox-header{
border: 1px solid #ccd0d4;
background: #fff;
}
@media screen and ( max-width: 782px ) {
/* settings */
#wpbody-content .pll-settings .pll-configure > td {
......@@ -414,14 +395,6 @@
width: 95%;
}
/* Metaboxes holder in Strings translations screen */
.languages_page_mlang_strings .metabox-holder > div {
flex-direction: column;
}
.languages_page_mlang_strings .metabox-holder > div > div:nth-child(2n) {
margin-left: 0;
}
/* hide selected language flag and translations language name */
#select-add-term-language .pll-select-flag,
#select-edit-term-language .pll-select-flag,
......
......@@ -62,7 +62,7 @@ abstract class PLL_Base {
add_action( 'pll_language_defined', array( $this, 'load_strings_translations' ), 5 );
add_action( 'change_locale', array( $this, 'load_strings_translations' ) ); // Since WP 4.7
add_action( 'personal_options_update', array( $this, 'load_strings_translations' ), 1, 0 ); // Before WP, for confirmation request when changing the user email.
add_action( 'lostpassword_post', array( $this, 'load_strings_translations' ), 10, 0 ); // Password reset email.
// Switch_to_blog
add_action( 'switch_blog', array( $this, 'switch_blog' ), 10, 2 );
}
......
......@@ -86,8 +86,7 @@ class PLL_Model {
if ( ( defined( 'PLL_CACHE_LANGUAGES' ) && ! PLL_CACHE_LANGUAGES ) || false === ( $languages = get_transient( 'pll_languages_list' ) ) ) {
$languages = array();
$post_languages = get_terms( 'language', array( 'hide_empty' => false, 'orderby' => 'term_group' ) );
$post_languages = empty( $post_languages ) || is_wp_error( $post_languages ) ? array() : $post_languages;
$post_languages = $this->get_language_terms();
$term_languages = get_terms( 'term_language', array( 'hide_empty' => false ) );
$term_languages = empty( $term_languages ) || is_wp_error( $term_languages ) ?
......@@ -706,4 +705,52 @@ class PLL_Model {
return $term_ids;
}
/**
* Filters the ORDERBY clause of the languages query.
* This allows to order languages by `term_group` and `term_id`.
*
* @since 3.2.3
*
* @param string $orderby `ORDERBY` clause of the terms query.
* @param array $args An array of term query arguments.
* @param string[] $taxonomies An array of taxonomy names.
* @return string
*/
public function filter_language_terms_orderby( $orderby, $args, $taxonomies ) {
if ( ! is_array( $taxonomies ) || count( $taxonomies ) > 1 ) {
return $orderby;
}
if ( 'language' !== reset( $taxonomies ) ) {
return $orderby;
}
if ( empty( $orderby ) || ! is_string( $orderby ) ) {
return $orderby;
}
if ( ! preg_match( '@^(?<alias>[^.]+)\.term_group$@', $orderby, $matches ) ) {
return $orderby;
}
return sprintf( '%1$s.term_group, %1$s.term_id', $matches['alias'] );
}
/**
* Returns the list of existing language terms.
* - Returns all terms, that are or not assigned to posts.
* - Terms are ordered by `term_group` and `term_id` (see `PLL_Model->filter_language_terms_orderby()`).
*
* @since 3.2.3
*
* @return array<WP_Term>
*/
protected function get_language_terms() {
add_filter( 'get_terms_orderby', array( $this, 'filter_language_terms_orderby' ), 10, 3 );
$post_languages = get_terms( array( 'taxonomy' => 'language', 'hide_empty' => false, 'orderby' => 'term_group' ) );
remove_filter( 'get_terms_orderby', array( $this, 'filter_language_terms_orderby' ) );
return empty( $post_languages ) || is_wp_error( $post_languages ) ? array() : $post_languages;
}
}
......@@ -35,7 +35,7 @@ class PLL_Walker_Dropdown extends Walker {
$output .= sprintf(
"\t" . '<option value="%1$s"%2$s%3$s>%4$s</option>' . "\n",
'url' === $value_type ? esc_url( $element->$value_type ) : esc_attr( $element->$value_type ),
method_exists( $element, 'get_locale' ) ? sprintf( ' lang="%s"', esc_attr( $element->get_locale( 'display' ) ) ) : '',
! empty( $element->locale ) ? sprintf( ' lang="%s"', esc_attr( $element->locale ) ) : '',
selected( isset( $args['selected'] ) && $args['selected'] === $element->$value_type, true, false ),
esc_html( $element->name )
);
......
......@@ -10,7 +10,7 @@
* Plugin Name: Polylang
* Plugin URI: https://polylang.pro
* Description: Adds multilingual capability to WordPress
* Version: 3.2.2
* Version: 3.2.3
* Requires at least: 5.6
* Requires PHP: 5.6
* Author: WP SYNTEX
......@@ -53,7 +53,7 @@ if ( defined( 'POLYLANG_VERSION' ) ) {
}
} else {
// Go on loading the plugin
define( 'POLYLANG_VERSION', '3.2.2' );
define( 'POLYLANG_VERSION', '3.2.3' );
define( 'PLL_MIN_WP_VERSION', '5.6' );
define( 'PLL_MIN_PHP_VERSION', '5.6' );
......
This diff is collapsed.
......@@ -373,6 +373,30 @@ class WPSEO_Admin_Asset_Manager {
'version' => $scripts['workouts']['version'],
];
$scripts['first-time-configuration'] = [
'name' => 'first-time-configuration',
'src' => 'first-time-configuration.js',
'deps' => [
'lodash',
'wp-api-fetch',
'wp-a11y',
'wp-components',
'wp-compose',
'wp-data',
'wp-dom-ready',
'wp-element',
'wp-i18n',
self::PREFIX . 'api-client',
self::PREFIX . 'externals-components',
self::PREFIX . 'externals-contexts',
self::PREFIX . 'externals-redux',
self::PREFIX . 'analysis',
self::PREFIX . 'react-select',
self::PREFIX . 'yoast-components',
],
'version' => $scripts['first-time-configuration']['version'],
];
// Add the current language to every script that requires the analysis package.
foreach ( $scripts as $name => $script ) {
if ( substr( $name, -8 ) === 'language' ) {
......@@ -663,14 +687,15 @@ class WPSEO_Admin_Asset_Manager {
'src' => 'elementor-' . $flat_version,
],
[
'name' => 'workouts',
'src' => 'workouts-' . $flat_version,
'deps' => [ self::PREFIX . 'monorepo' ],
'name' => 'tailwind',
'src' => 'tailwind-' . $flat_version,
],
[
'name' => 'installation-success',
'src' => 'installation-success-' . $flat_version,
'deps' => [ self::PREFIX . 'monorepo' ],
'name' => 'workouts',
'src' => 'workouts-' . $flat_version,
'deps' => [
self::PREFIX . 'monorepo',
],
],
];
}
......
......@@ -66,6 +66,7 @@ class WPSEO_Admin_Pages {
if ( $page === 'wpseo_social' || $page === 'wpseo_licenses' ) {
$this->asset_manager->enqueue_style( 'monorepo' );
$this->asset_manager->enqueue_style( 'tailwind' );
}
}
......@@ -121,6 +122,8 @@ class WPSEO_Admin_Pages {
$script_data['media'] = [
'choose_image' => __( 'Use Image', 'wordpress-seo' ),
];
$script_data['userEditUrl'] = add_query_arg( 'user_id', '{user_id}', admin_url( 'user-edit.php' ) );
}
if ( $page === 'wpseo_tools' ) {
......@@ -128,7 +131,26 @@ class WPSEO_Admin_Pages {
}
if ( $page === 'wpseo_social' ) {
$script_data['social'] = true;
$user_id = WPSEO_Options::get( 'company_or_person_user_id', '' );
$user = \get_userdata( $user_id );
$user_name = '';
if ( $user instanceof \WP_User ) {
$user_name = $user->get( 'display_name' );
}
$script_data['social'] = [
'facebook_url' => WPSEO_Options::get( 'facebook_site', '' ),
'twitter_username' => WPSEO_Options::get( 'twitter_site', '' ),
'other_social_urls' => WPSEO_Options::get( 'other_social_urls', [] ),
'company_or_person' => WPSEO_Options::get( 'company_or_person', '' ),
'user_id' => $user_id,
'user_name' => $user_name
];
$script_data['search_appearance_link'] = admin_url( 'admin.php?page=wpseo_titles' );
$script_data['force_organization'] = ( defined( 'WPSEO_LOCAL_FILE' ) );
}
$this->asset_manager->localize_script( 'settings', 'wpseoScriptData', $script_data );
......
......@@ -15,14 +15,14 @@ class WPSEO_Gutenberg_Compatibility {
*
* @var string
*/
const CURRENT_RELEASE = '13.1.0';
const CURRENT_RELEASE = '13.2.0';
/**
* The minimally supported version of Gutenberg by the plugin.
*
* @var string
*/
const MINIMUM_SUPPORTED = '13.1.0';
const MINIMUM_SUPPORTED = '13.2.0';
/**
* Holds the current version.
......
......@@ -52,7 +52,7 @@ class WPSEO_Admin_Menu extends WPSEO_Base_Menu {
add_menu_page(
'Yoast SEO: ' . __( 'Dashboard', 'wordpress-seo' ),
__( 'SEO', 'wordpress-seo' ) . ' ' . $this->get_notification_counter(),
'Yoast SEO ' . $this->get_notification_counter(),
$manage_capability,
$page_identifier,
$admin_page_callback,
......
......@@ -32,7 +32,7 @@ class WPSEO_Network_Admin_Menu extends WPSEO_Base_Menu {
add_menu_page(
__( 'Network Settings', 'wordpress-seo' ) . ' - Yoast SEO',
__( 'SEO', 'wordpress-seo' ),
'Yoast SEO',
$this->get_manage_capability(),
$this->get_page_identifier(),
[ $this, 'network_config_page' ],
......
......@@ -54,6 +54,9 @@ $dashboard_tabs->add_tab(
)
);
/**
* Allows the addition of tabs to the dashboard by calling $dashboard_tabs->add_tab().
*/
do_action( 'wpseo_settings_tabs_dashboard', $dashboard_tabs );
$dashboard_tabs->display( $yform );
......
......@@ -15,7 +15,7 @@ $yform = Yoast_Form::get_instance();
$yform->admin_header( true, 'wpseo_social' );
$social_tabs = new WPSEO_Option_Tabs( 'social' );
$social_tabs->add_tab( new WPSEO_Option_Tab( 'accounts', __( 'Accounts', 'wordpress-seo' ) ) );
$social_tabs->add_tab( new WPSEO_Option_Tab( 'accounts', __( 'Accounts', 'wordpress-seo' ), [ 'save_button' => false ] ) );
$social_tabs->add_tab( new WPSEO_Option_Tab( 'facebook', __( 'Facebook', 'wordpress-seo' ) ) );
$social_tabs->add_tab( new WPSEO_Option_Tab( 'twitterbox', __( 'Twitter', 'wordpress-seo' ) ) );
$social_tabs->add_tab( new WPSEO_Option_Tab( 'pinterest', __( 'Pinterest', 'wordpress-seo' ) ) );
......
......@@ -44,6 +44,7 @@ class WPSEO_Tracking_Settings_Data implements WPSEO_Collection {
'open_graph_frontpage_desc',
'open_graph_frontpage_image',
'open_graph_frontpage_image_id',
'other_social_urls',
'pinterest_url',
'pinterestverify',
'twitter_site',
......@@ -180,6 +181,7 @@ class WPSEO_Tracking_Settings_Data implements WPSEO_Collection {
'wincher_website_id',
'wincher_automatically_add_keyphrases',
'first_time_install',
'other_social_urls',
];
/**
......
<?php
/**
* WPSEO plugin file.
*
* @package WPSEO\Admin\Views
*/
if ( ! defined( 'WPSEO_VERSION' ) ) {
header( 'Status: 403 Forbidden' );
header( 'HTTP/1.1 403 Forbidden' );
exit();
}
echo '<div id="wpseo-first-time-configuration" class="yst-root"></div>';
......@@ -21,91 +21,7 @@ $social_profiles_help = new WPSEO_Admin_Help_Panel(
'has-wrapper'
);
$company_or_person = WPSEO_Options::get( 'company_or_person', '' );
echo '<div id="yoast-social-profiles"></div>';
$organization_social_fields = [
[
'id' => 'facebook_site',
'label' => __( 'Facebook Page URL', 'wordpress-seo' ),
'attributes' => [ 'type' => 'url' ],
],
[
'id' => 'twitter_site',
'label' => __( 'Twitter Username', 'wordpress-seo' ),
'attributes' => [ 'type' => 'text' ],
],
[
'id' => 'instagram_url',
'label' => __( 'Instagram URL', 'wordpress-seo' ),
'attributes' => [ 'type' => 'url' ],
],
[
'id' => 'linkedin_url',
'label' => __( 'LinkedIn URL', 'wordpress-seo' ),
'attributes' => [ 'type' => 'url' ],
],
[
'id' => 'myspace_url',
'label' => __( 'MySpace URL', 'wordpress-seo' ),
'attributes' => [ 'type' => 'url' ],
],
[
'id' => 'pinterest_url',
'label' => __( 'Pinterest URL', 'wordpress-seo' ),
'attributes' => [ 'type' => 'url' ],
],
[
'id' => 'youtube_url',
'label' => __( 'YouTube URL', 'wordpress-seo' ),
'attributes' => [ 'type' => 'url' ],
],
[
'id' => 'wikipedia_url',
'label' => __( 'Wikipedia URL', 'wordpress-seo' ),
'attributes' => [ 'type' => 'url' ],
],
];
$yform = Yoast_Form::get_instance();
if ( $company_or_person === 'person' ) {
echo '<div class="paper tab-block">';
echo '<h2><span class="dashicons dashicons-warning"></span> ' . esc_html__( 'Your website is currently configured to represent a Person', 'wordpress-seo' ) . '</h2>';
echo '<p><em>';
esc_html_e( 'That means that the form and information below is disabled, and not used.', 'wordpress-seo' );
echo '</em></p>';
echo '<p>';
$user_id = WPSEO_Options::get( 'company_or_person_user_id', '' );
$person = get_userdata( $user_id );
printf(
/* translators: 1: link to edit user page. */
esc_html__( 'To change the social accounts used for your site, update the details for %1$s.', 'wordpress-seo' ),
'<a href="' . esc_url( admin_url( 'user-edit.php?user_id=' . $user_id ) ) . '">' . esc_html( $person->display_name ) . '</a>'
);
echo ' ';
printf(
/* translators: 1: link tag to the relevant WPSEO admin page; 2: link close tag. */
esc_html__( 'To make your site represent a Company or Organization go to %1$sSearch Appearance%2$s and set Organization or Person to "Organization".', 'wordpress-seo' ),
'<a href="' . esc_url( admin_url( 'admin.php?page=wpseo_titles' ) ) . '">',
'</a>'
);
echo '</p></div>';
// Organization social fields should still be rendered, because other wise the values are lost on save.
foreach ( $organization_social_fields as $organization ) {
$yform->hidden( $organization['id'] );
}
}
if ( $company_or_person === 'company' ) {
// phpcs:ignore WordPress.Security.EscapeOutput -- get_button_html() output is properly escaped.
echo '<h2 class="help-button-inline">' . esc_html__( 'Organization social profiles', 'wordpress-seo' ) . $social_profiles_help->get_button_html() . '</h2>';
// phpcs:ignore WordPress.Security.EscapeOutput -- get_panel_html() output is properly escaped.
echo $social_profiles_help->get_panel_html();
foreach ( $organization_social_fields as $organization ) {
$yform->textinput( $organization['id'], $organization['label'], $organization['attributes'] );
}
}
do_action( 'wpseo_admin_other_section' );
......@@ -91,12 +91,13 @@ function wpseo_import_external_select( $name, $plugins ) {
</div>
<div class="tab-block">
<h3><?php esc_html_e( 'Step 4: Do the configuration workout', 'wordpress-seo' ); ?></h3>
<h3><?php esc_html_e( 'Step 4: Go through the first time configuration', 'wordpress-seo' ); ?></h3>
<p>
<?php
printf(
esc_html__( 'You should complete the configuration workout, from the SEO &rarr; Workouts page, to make sure the most important settings for your site are correct and your SEO data has been optimized.', 'wordpress-seo' ),
'<a href="' . esc_url( admin_url( 'admin.php?page=wpseo_dashboard' ) ) . '">',
/* translators: 1: Link start tag to the First time configuration tab in the General page, 2: Link closing tag. */
esc_html__( 'You should finish the %1$sfirst time configuration%2$s to make sure your SEO data has been optimized and you’ve set the essential Yoast SEO settings for your site.', 'wordpress-seo' ),
'<a href="' . esc_url( admin_url( 'admin.php?page=wpseo_dashboard#top#first-time-configuration' ) ) . '">',
'</a>'
);
?>
......
.wpseo-score-icon{display:inline-block!important;width:12px!important;height:12px!important;border-radius:50%!important;margin:3px 3px 0 10px;background:#888;vertical-align:top}.wpseo-score-icon.good{background-color:#7ad03a}.wpseo-score-icon.ok{background-color:#ee7c1b}.wpseo-score-icon.bad{background-color:#dc3232}.wpseo-score-icon.na{background-color:#888}.wpseo-score-icon.noindex{background-color:#1e8cbe}.adminbar-seo-score{margin:10px 4px 0 0!important}#wpadminbar .yoast-issue-added,#wpadminbar .yoast-issue-added:hover{position:absolute;top:32px;right:0;white-space:nowrap;padding:2px 12px;border-radius:10px 0 10px 10px;color:#fff;background-color:#a4286a;box-shadow:-1px 1px 1px 1px grey}#wpadminbar .yoast-issue-added{display:none}#wpadminbar .yoast-issue-counter{display:inline;padding:1px 6px 1px 7px!important;border-radius:9px;color:#fff}#wpadminbar .yoast-logo.svg{float:right;width:26px;height:30px;background-repeat:no-repeat;background-position:100% 6px;background-size:20px;background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA1MTIgNTEyIiBmaWxsPSIjODI4NzhjIj48cGF0aCBkPSJNMjAzLjYgMzk1YzYuOC0xNy40IDYuOC0zNi42IDAtNTRsLTc5LjQtMjA0aDcwLjlsNDcuNyAxNDkuNCA3NC44LTIwNy42SDExNi40Yy00MS44IDAtNzYgMzQuMi03NiA3NlYzNTdjMCA0MS44IDM0LjIgNzYgNzYgNzZIMTczYzE2LTguOSAyNC42LTIyLjcgMzAuNi0zOHpNNDcxLjYgMTU0LjhjMC00MS44LTM0LjItNzYtNzYtNzZoLTNMMjg1LjcgMzY1Yy05LjYgMjYuNy0xOS40IDQ5LjMtMzAuMyA2OGgyMTYuMlYxNTQuOHoiLz48cGF0aCBzdHJva2Utd2lkdGg9IjIuOTc0IiBzdHJva2UtbWl0ZXJsaW1pdD0iMTAiIGQ9Ik0zMzggMS4zbC05My4zIDI1OS4xLTQyLjEtMTMxLjloLTg5LjFsODMuOCAyMTUuMmM2IDE1LjUgNiAzMi41IDAgNDgtNy40IDE5LTE5IDM3LjMtNTMgNDEuOWwtNy4yIDF2NzZoOC4zYzgxLjcgMCAxMTguOS01Ny4yIDE0OS42LTE0Mi45TDQzMS42IDEuM0gzMzh6TTI3OS40IDM2MmMtMzIuOSA5Mi02Ny42IDEyOC43LTEyNS43IDEzMS44di00NWMzNy41LTcuNSA1MS4zLTMxIDU5LjEtNTEuMSA3LjUtMTkuMyA3LjUtNDAuNyAwLTYwbC03NS0xOTIuN2g1Mi44bDUzLjMgMTY2LjggMTA1LjktMjk0aDU4LjFMMjc5LjQgMzYyeiIvPjwvc3ZnPg==")}#wpadminbar #wp-admin-bar-wpseo-licenses .ab-item{color:#f18500}@media screen and (max-width:782px){.adminbar-seo-score{margin:16px 2px 0 10px!important}#wpadminbar #wp-admin-bar-wpseo-menu{display:block;position:static}#wpadminbar .yoast-logo.svg{width:52px;height:46px;background-position:50% 8px;background-size:30px}#wpadminbar .yoast-logo+.yoast-issue-counter{margin-right:-5px;margin-left:10px}#wpadminbar .ab-sub-wrapper .yoast-issue-counter{vertical-align:text-top;position:relative;top:-5px}#wpadminbar .yoast-issue-added,#wpadminbar .yoast-issue-added:hover{top:46px;white-space:normal;line-height:1.8}#wp-admin-bar-wpseo-menu.menupop .ab-sub-wrapper #wp-admin-bar-wpseo-kwresearch,#wp-admin-bar-wpseo-menu.menupop .ab-sub-wrapper #wp-admin-bar-wpseo-settings{display:none}}
\ No newline at end of file
.wpseo-score-icon{display:inline-block!important;width:12px!important;height:12px!important;border-radius:50%!important;margin:3px 3px 0 10px;background:#888;vertical-align:top}.wpseo-score-icon.good{background-color:#7ad03a}.wpseo-score-icon.ok{background-color:#ee7c1b}.wpseo-score-icon.bad{background-color:#dc3232}.wpseo-score-icon.na{background-color:#888}.wpseo-score-icon.noindex{background-color:#1e8cbe}.adminbar-seo-score{margin:10px 4px 0 0!important}#wpadminbar .yoast-issue-added,#wpadminbar .yoast-issue-added:hover{position:absolute;top:32px;right:0;white-space:nowrap;padding:2px 12px;border-radius:10px 0 10px 10px;color:#fff;background-color:#a4286a;box-shadow:-1px 1px 1px 1px grey}#wpadminbar .yoast-issue-added{display:none}#wpadminbar .yoast-issue-counter{display:inline;padding:1px 6px 1px 7px!important;border-radius:9px;color:#fff}#wpadminbar .yoast-logo.svg{float:right;width:26px;height:30px;background-repeat:no-repeat;background-position:100% 6px;background-size:20px;background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA1MTIgNTEyIiBmaWxsPSIjODI4NzhjIj48cGF0aCBkPSJNMjAzLjYgMzk1YzYuOC0xNy40IDYuOC0zNi42IDAtNTRsLTc5LjQtMjA0aDcwLjlsNDcuNyAxNDkuNCA3NC44LTIwNy42SDExNi40Yy00MS44IDAtNzYgMzQuMi03NiA3NlYzNTdjMCA0MS44IDM0LjIgNzYgNzYgNzZIMTczYzE2LTguOSAyNC42LTIyLjcgMzAuNi0zOHpNNDcxLjYgMTU0LjhjMC00MS44LTM0LjItNzYtNzYtNzZoLTNMMjg1LjcgMzY1Yy05LjYgMjYuNy0xOS40IDQ5LjMtMzAuMyA2OGgyMTYuMlYxNTQuOHoiLz48cGF0aCBkPSJNMzM4IDEuM2wtOTMuMyAyNTkuMS00Mi4xLTEzMS45aC04OS4xbDgzLjggMjE1LjJjNiAxNS41IDYgMzIuNSAwIDQ4LTcuNCAxOS0xOSAzNy4zLTUzIDQxLjlsLTcuMiAxdjc2aDguM2M4MS43IDAgMTE4LjktNTcuMiAxNDkuNi0xNDIuOUw0MzEuNiAxLjNIMzM4ek0yNzkuNCAzNjJjLTMyLjkgOTItNjcuNiAxMjguNy0xMjUuNyAxMzEuOHYtNDVjMzcuNS03LjUgNTEuMy0zMSA1OS4xLTUxLjEgNy41LTE5LjMgNy41LTQwLjcgMC02MGwtNzUtMTkyLjdoNTIuOGw1My4zIDE2Ni44IDEwNS45LTI5NGg1OC4xTDI3OS40IDM2MnoiLz48L3N2Zz4=")}#wpadminbar #wp-admin-bar-wpseo-licenses .ab-item{color:#f18500}@media screen and (max-width:782px){.adminbar-seo-score{margin:16px 2px 0 10px!important}#wpadminbar #wp-admin-bar-wpseo-menu{display:block;position:static}#wpadminbar .yoast-logo.svg{width:52px;height:46px;background-position:50% 8px;background-size:30px}#wpadminbar .yoast-logo+.yoast-issue-counter{margin-right:-5px;margin-left:10px}#wpadminbar .ab-sub-wrapper .yoast-issue-counter{vertical-align:text-top;position:relative;top:-5px}#wpadminbar .yoast-issue-added,#wpadminbar .yoast-issue-added:hover{top:46px;white-space:normal;line-height:1.8}#wp-admin-bar-wpseo-menu.menupop .ab-sub-wrapper #wp-admin-bar-wpseo-kwresearch,#wp-admin-bar-wpseo-menu.menupop .ab-sub-wrapper #wp-admin-bar-wpseo-settings{display:none}}
\ No newline at end of file
.wpseo-score-icon{display:inline-block!important;width:12px!important;height:12px!important;border-radius:50%!important;margin:3px 10px 0 3px;background:#888;vertical-align:top}.wpseo-score-icon.good{background-color:#7ad03a}.wpseo-score-icon.ok{background-color:#ee7c1b}.wpseo-score-icon.bad{background-color:#dc3232}.wpseo-score-icon.na{background-color:#888}.wpseo-score-icon.noindex{background-color:#1e8cbe}.adminbar-seo-score{margin:10px 0 0 4px!important}#wpadminbar .yoast-issue-added,#wpadminbar .yoast-issue-added:hover{position:absolute;top:32px;left:0;white-space:nowrap;padding:2px 12px;border-radius:0 10px 10px 10px;color:#fff;background-color:#a4286a;box-shadow:1px 1px 1px 1px grey}#wpadminbar .yoast-issue-added{display:none}#wpadminbar .yoast-issue-counter{display:inline;padding:1px 7px 1px 6px!important;border-radius:9px;color:#fff}#wpadminbar .yoast-logo.svg{float:left;width:26px;height:30px;background-repeat:no-repeat;background-position:0 6px;background-size:20px;background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA1MTIgNTEyIiBmaWxsPSIjODI4NzhjIj48cGF0aCBkPSJNMjAzLjYgMzk1YzYuOC0xNy40IDYuOC0zNi42IDAtNTRsLTc5LjQtMjA0aDcwLjlsNDcuNyAxNDkuNCA3NC44LTIwNy42SDExNi40Yy00MS44IDAtNzYgMzQuMi03NiA3NlYzNTdjMCA0MS44IDM0LjIgNzYgNzYgNzZIMTczYzE2LTguOSAyNC42LTIyLjcgMzAuNi0zOHpNNDcxLjYgMTU0LjhjMC00MS44LTM0LjItNzYtNzYtNzZoLTNMMjg1LjcgMzY1Yy05LjYgMjYuNy0xOS40IDQ5LjMtMzAuMyA2OGgyMTYuMlYxNTQuOHoiLz48cGF0aCBzdHJva2Utd2lkdGg9IjIuOTc0IiBzdHJva2UtbWl0ZXJsaW1pdD0iMTAiIGQ9Ik0zMzggMS4zbC05My4zIDI1OS4xLTQyLjEtMTMxLjloLTg5LjFsODMuOCAyMTUuMmM2IDE1LjUgNiAzMi41IDAgNDgtNy40IDE5LTE5IDM3LjMtNTMgNDEuOWwtNy4yIDF2NzZoOC4zYzgxLjcgMCAxMTguOS01Ny4yIDE0OS42LTE0Mi45TDQzMS42IDEuM0gzMzh6TTI3OS40IDM2MmMtMzIuOSA5Mi02Ny42IDEyOC43LTEyNS43IDEzMS44di00NWMzNy41LTcuNSA1MS4zLTMxIDU5LjEtNTEuMSA3LjUtMTkuMyA3LjUtNDAuNyAwLTYwbC03NS0xOTIuN2g1Mi44bDUzLjMgMTY2LjggMTA1LjktMjk0aDU4LjFMMjc5LjQgMzYyeiIvPjwvc3ZnPg==")}#wpadminbar #wp-admin-bar-wpseo-licenses .ab-item{color:#f18500}@media screen and (max-width:782px){.adminbar-seo-score{margin:16px 10px 0 2px!important}#wpadminbar #wp-admin-bar-wpseo-menu{display:block;position:static}#wpadminbar .yoast-logo.svg{width:52px;height:46px;background-position:50% 8px;background-size:30px}#wpadminbar .yoast-logo+.yoast-issue-counter{margin-left:-5px;margin-right:10px}#wpadminbar .ab-sub-wrapper .yoast-issue-counter{vertical-align:text-top;position:relative;top:-5px}#wpadminbar .yoast-issue-added,#wpadminbar .yoast-issue-added:hover{top:46px;white-space:normal;line-height:1.8}#wp-admin-bar-wpseo-menu.menupop .ab-sub-wrapper #wp-admin-bar-wpseo-kwresearch,#wp-admin-bar-wpseo-menu.menupop .ab-sub-wrapper #wp-admin-bar-wpseo-settings{display:none}}
\ No newline at end of file
.wpseo-score-icon{display:inline-block!important;width:12px!important;height:12px!important;border-radius:50%!important;margin:3px 10px 0 3px;background:#888;vertical-align:top}.wpseo-score-icon.good{background-color:#7ad03a}.wpseo-score-icon.ok{background-color:#ee7c1b}.wpseo-score-icon.bad{background-color:#dc3232}.wpseo-score-icon.na{background-color:#888}.wpseo-score-icon.noindex{background-color:#1e8cbe}.adminbar-seo-score{margin:10px 0 0 4px!important}#wpadminbar .yoast-issue-added,#wpadminbar .yoast-issue-added:hover{position:absolute;top:32px;left:0;white-space:nowrap;padding:2px 12px;border-radius:0 10px 10px 10px;color:#fff;background-color:#a4286a;box-shadow:1px 1px 1px 1px grey}#wpadminbar .yoast-issue-added{display:none}#wpadminbar .yoast-issue-counter{display:inline;padding:1px 7px 1px 6px!important;border-radius:9px;color:#fff}#wpadminbar .yoast-logo.svg{float:left;width:26px;height:30px;background-repeat:no-repeat;background-position:0 6px;background-size:20px;background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA1MTIgNTEyIiBmaWxsPSIjODI4NzhjIj48cGF0aCBkPSJNMjAzLjYgMzk1YzYuOC0xNy40IDYuOC0zNi42IDAtNTRsLTc5LjQtMjA0aDcwLjlsNDcuNyAxNDkuNCA3NC44LTIwNy42SDExNi40Yy00MS44IDAtNzYgMzQuMi03NiA3NlYzNTdjMCA0MS44IDM0LjIgNzYgNzYgNzZIMTczYzE2LTguOSAyNC42LTIyLjcgMzAuNi0zOHpNNDcxLjYgMTU0LjhjMC00MS44LTM0LjItNzYtNzYtNzZoLTNMMjg1LjcgMzY1Yy05LjYgMjYuNy0xOS40IDQ5LjMtMzAuMyA2OGgyMTYuMlYxNTQuOHoiLz48cGF0aCBkPSJNMzM4IDEuM2wtOTMuMyAyNTkuMS00Mi4xLTEzMS45aC04OS4xbDgzLjggMjE1LjJjNiAxNS41IDYgMzIuNSAwIDQ4LTcuNCAxOS0xOSAzNy4zLTUzIDQxLjlsLTcuMiAxdjc2aDguM2M4MS43IDAgMTE4LjktNTcuMiAxNDkuNi0xNDIuOUw0MzEuNiAxLjNIMzM4ek0yNzkuNCAzNjJjLTMyLjkgOTItNjcuNiAxMjguNy0xMjUuNyAxMzEuOHYtNDVjMzcuNS03LjUgNTEuMy0zMSA1OS4xLTUxLjEgNy41LTE5LjMgNy41LTQwLjcgMC02MGwtNzUtMTkyLjdoNTIuOGw1My4zIDE2Ni44IDEwNS45LTI5NGg1OC4xTDI3OS40IDM2MnoiLz48L3N2Zz4=")}#wpadminbar #wp-admin-bar-wpseo-licenses .ab-item{color:#f18500}@media screen and (max-width:782px){.adminbar-seo-score{margin:16px 10px 0 2px!important}#wpadminbar #wp-admin-bar-wpseo-menu{display:block;position:static}#wpadminbar .yoast-logo.svg{width:52px;height:46px;background-position:50% 8px;background-size:30px}#wpadminbar .yoast-logo+.yoast-issue-counter{margin-left:-5px;margin-right:10px}#wpadminbar .ab-sub-wrapper .yoast-issue-counter{vertical-align:text-top;position:relative;top:-5px}#wpadminbar .yoast-issue-added,#wpadminbar .yoast-issue-added:hover{top:46px;white-space:normal;line-height:1.8}#wp-admin-bar-wpseo-menu.menupop .ab-sub-wrapper #wp-admin-bar-wpseo-kwresearch,#wp-admin-bar-wpseo-menu.menupop .ab-sub-wrapper #wp-admin-bar-wpseo-settings{display:none}}
\ No newline at end of file
.installation-success-page{display:flex;flex-direction:column;height:88vh;justify-content:flex-start;padding-top:7%;box-sizing:border-box}.installation-success-page .step-list{display:flex;align-items:center;justify-content:center;margin:24px auto;gap:312px}.installation-success-page .step-list-complete-circle{position:relative;width:2rem;height:2rem;display:flex;align-items:center;justify-content:center;background-color:var(--yoast-color-primary);border-radius:9999px}.installation-success-page .step-list-current-circle{position:relative;width:2rem;height:2rem;display:flex;align-items:center;justify-content:center;background-color:#fff;border-radius:9999px;box-sizing:border-box;border:2px solid var(--yoast-color-primary)}.installation-success-page .complete-check-icon{background-color:#fff;color:#fff;mask-image:var(--yoast-svg-icon-check-ok);-webkit-mask-image:var(--yoast-svg-icon-check-ok);mask-size:100% 100%;-webkit-mask-size:100% 100%;display:inline-block;width:1.25rem;height:1.25rem}.installation-success-page .step-list>li{position:relative}.installation-success-page .step-list-current-inner-circle{height:.625rem;width:.625rem;border-radius:9999px;background-color:var(--yoast-color-primary)}.installation-success-page .step-first-div{position:absolute;inset:0;display:flex;align-items:center;width:376px}.installation-success-page .step-second-div{height:2px;width:100%;background-color:var(--yoast-color-primary)}.installation-success-steps{display:block}.installation-success-cards{display:flex;justify-content:center;gap:24px}.installation-success-page .installation-success-title{font-size:40px;font-weight:400;color:var(--yoast-color-primary);margin:24px auto;letter-spacing:.4px;line-height:normal;text-align:center}.installation-success-card{box-sizing:border-box;background-color:#fff;border:1px solid rgba(0,0,0,.2);border-radius:8px;box-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px 0 rgba(0,0,0,.06);max-width:320px;height:315px;padding:24px;display:flex;flex-direction:column}.installation-success-card.active{border-color:var(--yoast-color-primary);box-shadow:0 10px 20px 0 rgba(0,0,0,.1),0 6px 6px 0 rgba(0,0,0,.06);height:327px}.installation-success-card img{width:150px;height:120px;margin:auto auto 0}.installation-success-card .card-button-section{display:flex;justify-content:center;margin-top:auto}.installation-success-card .card-button-section .yoast-button{flex-grow:1}.installation-success-card>h2{color:var(--yoast-color-primary);margin:0;line-height:25px;font-size:18px;font-weight:500;letter-spacing:.2px}.installation-success-card>p{font-weight:400;font-size:13px;letter-spacing:-.1px;line-height:19px;color:#3c434a;margin:16px 0 24px}#installation-success-card-configuration-workout p{margin:8px 0 0}#installation-success-card-configuration-workout img{margin:24px auto}#installation-success-card-configuration-workout .yoast-button{box-shadow:inset 0 -3px rgba(0,0,0,.3)}#installation-success-skip-link{align-self:end;bottom:20px;left:0;margin-bottom:9px;position:absolute;margin-left:20px;letter-spacing:-.08px;line-height:19px}@media screen and (max-width:768px){.installation-success-page{height:unset;padding-top:unset;padding-left:10px}.installation-success-page .installation-success-title{font-size:32px}.installation-success-content{display:flex;flex-direction:row;justify-content:center;align-items:center}.installation-success-cards{flex-direction:column}.installation-success-page .step-list{flex-direction:column;margin:auto 0 auto 24px}.installation-success-page .step-first-div{width:unset;height:376px;flex-direction:column}.installation-success-page .step-second-div{width:2px;height:100%}}
\ No newline at end of file
.installation-success-page{display:flex;flex-direction:column;height:88vh;justify-content:flex-start;padding-top:7%;box-sizing:border-box}.installation-success-page .step-list{display:flex;align-items:center;justify-content:center;margin:24px auto;gap:312px}.installation-success-page .step-list-complete-circle{position:relative;width:2rem;height:2rem;display:flex;align-items:center;justify-content:center;background-color:var(--yoast-color-primary);border-radius:9999px}.installation-success-page .step-list-current-circle{position:relative;width:2rem;height:2rem;display:flex;align-items:center;justify-content:center;background-color:#fff;border-radius:9999px;box-sizing:border-box;border:2px solid var(--yoast-color-primary)}.installation-success-page .complete-check-icon{background-color:#fff;color:#fff;mask-image:var(--yoast-svg-icon-check-ok);-webkit-mask-image:var(--yoast-svg-icon-check-ok);mask-size:100% 100%;-webkit-mask-size:100% 100%;display:inline-block;width:1.25rem;height:1.25rem}.installation-success-page .step-list>li{position:relative}.installation-success-page .step-list-current-inner-circle{height:.625rem;width:.625rem;border-radius:9999px;background-color:var(--yoast-color-primary)}.installation-success-page .step-first-div{position:absolute;inset:0;display:flex;align-items:center;width:376px}.installation-success-page .step-second-div{height:2px;width:100%;background-color:var(--yoast-color-primary)}.installation-success-steps{display:block}.installation-success-cards{display:flex;justify-content:center;gap:24px}.installation-success-page .installation-success-title{font-size:40px;font-weight:400;color:var(--yoast-color-primary);margin:24px auto;letter-spacing:.4px;line-height:normal;text-align:center}.installation-success-card{box-sizing:border-box;background-color:#fff;border:1px solid rgba(0,0,0,.2);border-radius:8px;box-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px 0 rgba(0,0,0,.06);max-width:320px;height:315px;padding:24px;display:flex;flex-direction:column}.installation-success-card.active{border-color:var(--yoast-color-primary);box-shadow:0 10px 20px 0 rgba(0,0,0,.1),0 6px 6px 0 rgba(0,0,0,.06);height:327px}.installation-success-card img{width:150px;height:120px;margin:auto auto 0}.installation-success-card .card-button-section{display:flex;justify-content:center;margin-top:auto}.installation-success-card .card-button-section .yoast-button{flex-grow:1}.installation-success-card>h2{color:var(--yoast-color-primary);margin:0;line-height:25px;font-size:18px;font-weight:500;letter-spacing:.2px}.installation-success-card>p{font-weight:400;font-size:13px;letter-spacing:-.1px;line-height:19px;color:#3c434a;margin:16px 0 24px}#installation-success-card-configuration-workout p{margin:8px 0 0}#installation-success-card-configuration-workout img{margin:24px auto}#installation-success-card-configuration-workout .yoast-button{box-shadow:inset 0 -3px rgba(0,0,0,.3)}#installation-success-skip-link{align-self:end;bottom:20px;right:0;margin-bottom:9px;position:absolute;margin-right:20px;letter-spacing:-.08px;line-height:19px}@media screen and (max-width:768px){.installation-success-page{height:unset;padding-top:unset;padding-right:10px}.installation-success-page .installation-success-title{font-size:32px}.installation-success-content{display:flex;flex-direction:row;justify-content:center;align-items:center}.installation-success-cards{flex-direction:column}.installation-success-page .step-list{flex-direction:column;margin:auto 24px auto 0}.installation-success-page .step-first-div{width:unset;height:376px;flex-direction:column}.installation-success-page .step-second-div{width:2px;height:100%}}
\ No newline at end of file
This diff is collapsed.
.m6zwb4v,.m6zwb4v:visited{color:#575f67;cursor:pointer;display:inline-block;background:#e6f3ff;padding-right:2px;padding-left:2px;border-radius:2px;-webkit-text-decoration:none;text-decoration:none}.m6zwb4v:focus,.m6zwb4v:hover{color:#677584;background:#edf5fd;outline:0}.m6zwb4v:active{color:#222;background:#455261}.mnw6qvm{border:1px solid #eee;position:absolute;min-width:220px;max-width:440px;background:#fff;border-radius:2px;box-shadow:0 4px 30px 0 #dcdcdc;cursor:pointer;padding-top:8px;padding-bottom:8px;z-index:2;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;box-sizing:border-box;-webkit-transform:scale(0);-ms-transform:scale(0);transform:scale(0)}.m1ymsnxd{opacity:0;-webkit-transition:opacity .25s cubic-bezier(.3,1.2,.2,1);transition:opacity .25s cubic-bezier(.3,1.2,.2,1)}.m126ak5t{opacity:1}.mtiwdxc{padding:7px 10px 3px;-webkit-transition:background-color .4s cubic-bezier(.27,1.27,.48,.56);transition:background-color .4s cubic-bezier(.27,1.27,.48,.56)}.mtiwdxc:active{background-color:#cce7ff}.myz2dw1{padding:7px 10px 3px;-webkit-transition:background-color .4s cubic-bezier(.27,1.27,.48,.56);transition:background-color .4s cubic-bezier(.27,1.27,.48,.56);background-color:#e6f3ff}.myz2dw1:active{background-color:#cce7ff}.mpqdcgq{margin-right:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:368px;font-size:.9em;margin-bottom:.2em}.m1mfvffo,.mpqdcgq{display:inline-block}.m1mfvffo{width:24px;height:24px;border-radius:12px}.public-DraftEditorPlaceholder-root{width:100%}.public-DraftStyleDefault-orderedListItem.public-DraftStyleDefault-depth1:before{content:counter(ol1,lower-alpha) ". "}.public-DraftStyleDefault-orderedListItem.public-DraftStyleDefault-depth2:before{content:counter(ol2,lower-roman) ". "}.public-DraftStyleDefault-orderedListItem.public-DraftStyleDefault-depth4:before{content:counter(ol4,lower-alpha) ". "}.yoast-schema-settings-container{margin-top:18px}.yoast-schema-settings-container:first-child{margin-top:0}.yoast-schema-settings-container .yoast-help{position:relative;flex:0 0 20px;height:20px;margin:2px 6px 0 0}.yoast-schema-settings-container .yoast-help:focus{outline:none;box-shadow:none}.yoast-schema-settings-container .yoast-help .yoast-help__icon{display:flex;align-items:center;justify-content:center;width:28px;height:28px;position:absolute;top:-4px;right:-4px;border-radius:100%}.yoast-schema-settings-container .yoast-help:focus .yoast-help__icon{box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}.collapsible-header .toggleable-container-trigger code{font-weight:300}#yoast-organization-image-select .yoast-field-group,#yoast-organization-image-select .yoast-image-select,#yoast-person-image-select .yoast-field-group,#yoast-person-image-select .yoast-image-select{margin-bottom:0}.social-settings-heading-container{display:flex;align-items:center;flex-wrap:wrap}.social-settings-heading-container .social-settings-heading{margin:0}.social-settings-heading-container .yoast-badge{margin-right:8px}.yoast-settings-section-upsell .yoast-alert{margin:0 16px}.draftJsMentionPlugin__mention__29BEd,.draftJsMentionPlugin__mention__29BEd:visited{color:#575f67;cursor:pointer;display:inline-block;background:#e6f3ff;padding-right:2px;padding-left:2px;border-radius:2px;text-decoration:none}.draftJsMentionPlugin__mention__29BEd:focus,.draftJsMentionPlugin__mention__29BEd:hover{color:#677584;background:#edf5fd;outline:0}.draftJsMentionPlugin__mention__29BEd:active{color:#222;background:#455261}.draftJsMentionPlugin__mentionSuggestionsEntry__3mSwm{padding:7px 10px 3px;transition:background-color .4s cubic-bezier(.27,1.27,.48,.56)}.draftJsMentionPlugin__mentionSuggestionsEntry__3mSwm:active{background-color:#cce7ff}.draftJsMentionPlugin__mentionSuggestionsEntryFocused__3LcTd{background-color:#e6f3ff}.draftJsMentionPlugin__mentionSuggestionsEntryText__3Jobq{display:inline-block;margin-right:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:368px;font-size:.9em;margin-bottom:.2em}.draftJsMentionPlugin__mentionSuggestionsEntryAvatar__1xgA9{display:inline-block;width:24px;height:24px;border-radius:12px}.draftJsMentionPlugin__mentionSuggestions__2DWjA{border:1px solid #eee;margin-top:.4em;position:absolute;min-width:220px;max-width:440px;background:#fff;border-radius:2px;box-shadow:0 4px 30px 0 #dcdcdc;cursor:pointer;padding-top:8px;padding-bottom:8px;z-index:2;display:flex;flex-direction:column;box-sizing:border-box;transform:scale(0)}.DraftEditor-editorContainer,.DraftEditor-root,.public-DraftEditor-content{height:inherit;text-align:initial}.public-DraftEditor-content[contenteditable=true]{-webkit-user-modify:read-write-plaintext-only}.DraftEditor-root{position:relative}.DraftEditor-editorContainer{background-color:hsla(0,0%,100%,0);border-right:.1px solid transparent;position:relative;z-index:1}.public-DraftEditor-block{position:relative}.DraftEditor-alignLeft .public-DraftStyleDefault-block{text-align:right}.DraftEditor-alignLeft .public-DraftEditorPlaceholder-root{right:0;text-align:right}.DraftEditor-alignCenter .public-DraftStyleDefault-block{text-align:center}.DraftEditor-alignCenter .public-DraftEditorPlaceholder-root{margin:0 auto;text-align:center;width:100%}.DraftEditor-alignRight .public-DraftStyleDefault-block{text-align:left}.DraftEditor-alignRight .public-DraftEditorPlaceholder-root{left:0;text-align:left}.public-DraftEditorPlaceholder-root{color:#9197a3;position:absolute;z-index:1}.public-DraftEditorPlaceholder-hasFocus{color:#bdc1c9}.DraftEditorPlaceholder-hidden{display:none}.public-DraftStyleDefault-block{position:relative;white-space:pre-wrap}.public-DraftStyleDefault-ltr{direction:rtl;text-align:right}.public-DraftStyleDefault-rtl{direction:ltr;text-align:left}.public-DraftStyleDefault-listLTR{direction:rtl}.public-DraftStyleDefault-listRTL{direction:ltr}.public-DraftStyleDefault-ol,.public-DraftStyleDefault-ul{margin:16px 0;padding:0}.public-DraftStyleDefault-depth0.public-DraftStyleDefault-listLTR{margin-right:1.5em}.public-DraftStyleDefault-depth0.public-DraftStyleDefault-listRTL{margin-left:1.5em}.public-DraftStyleDefault-depth1.public-DraftStyleDefault-listLTR{margin-right:3em}.public-DraftStyleDefault-depth1.public-DraftStyleDefault-listRTL{margin-left:3em}.public-DraftStyleDefault-depth2.public-DraftStyleDefault-listLTR{margin-right:4.5em}.public-DraftStyleDefault-depth2.public-DraftStyleDefault-listRTL{margin-left:4.5em}.public-DraftStyleDefault-depth3.public-DraftStyleDefault-listLTR{margin-right:6em}.public-DraftStyleDefault-depth3.public-DraftStyleDefault-listRTL{margin-left:6em}.public-DraftStyleDefault-depth4.public-DraftStyleDefault-listLTR{margin-right:7.5em}.public-DraftStyleDefault-depth4.public-DraftStyleDefault-listRTL{margin-left:7.5em}.public-DraftStyleDefault-unorderedListItem{list-style-type:square;position:relative}.public-DraftStyleDefault-unorderedListItem.public-DraftStyleDefault-depth0{list-style-type:disc}.public-DraftStyleDefault-unorderedListItem.public-DraftStyleDefault-depth1{list-style-type:circle}.public-DraftStyleDefault-orderedListItem{list-style-type:none;position:relative}.public-DraftStyleDefault-orderedListItem.public-DraftStyleDefault-listLTR:before{right:-36px;position:absolute;text-align:left;width:30px}.public-DraftStyleDefault-orderedListItem.public-DraftStyleDefault-listRTL:before{position:absolute;left:-36px;text-align:right;width:30px}.public-DraftStyleDefault-orderedListItem:before{content:counter(ol0) ". ";counter-increment:ol0}.public-DraftStyleDefault-orderedListItem.public-DraftStyleDefault-depth1:before{content:counter(ol1) ". ";counter-increment:ol1}.public-DraftStyleDefault-orderedListItem.public-DraftStyleDefault-depth2:before{content:counter(ol2) ". ";counter-increment:ol2}.public-DraftStyleDefault-orderedListItem.public-DraftStyleDefault-depth3:before{content:counter(ol3) ". ";counter-increment:ol3}.public-DraftStyleDefault-orderedListItem.public-DraftStyleDefault-depth4:before{content:counter(ol4) ". ";counter-increment:ol4}.public-DraftStyleDefault-depth0.public-DraftStyleDefault-reset{counter-reset:ol0}.public-DraftStyleDefault-depth1.public-DraftStyleDefault-reset{counter-reset:ol1}.public-DraftStyleDefault-depth2.public-DraftStyleDefault-reset{counter-reset:ol2}.public-DraftStyleDefault-depth3.public-DraftStyleDefault-reset{counter-reset:ol3}.public-DraftStyleDefault-depth4.public-DraftStyleDefault-reset{counter-reset:ol4}#person-selector{width:100%}
\ No newline at end of file
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment