diff --git a/.github/workflows/zipitup.yml b/.github/workflows/zipitup.yml index 8190ae5..a1f26e9 100644 --- a/.github/workflows/zipitup.yml +++ b/.github/workflows/zipitup.yml @@ -23,13 +23,16 @@ jobs: steps: - name: Checkout code uses: actions/checkout@v4 + - name: Build project run: | mkdir build + - name: Create artifact uses: montudor/action-zip@v1 with: - args: zip -X -r build/${{ github.event.repository.name }}.zip . -x *.git* node_modules/\* .* "*/\.*" CODE_OF_CONDUCT.md CONTRIBUTING.md ISSUE_TEMPLATE.md PULL_REQUEST_TEMPLATE.md *.dist *.yml *.neon composer.* package.json dev-helpers** build** wporg-assets** phpunit** + args: zip -X -r build/${{ github.event.repository.name }}.zip . -x *.git* node_modules/\* .* "*/\.*" "*/.git*" "*/.DS_Store" CODE_OF_CONDUCT.md CONTRIBUTING.md ISSUE_TEMPLATE.md PULL_REQUEST_TEMPLATE.md *.dist *.yml *.neon composer.* package.json package-lock.json dev-helpers** build** wporg-assets** docs/\* phpunit** phpstan-bootstrap.php + - name: Upload artifact uses: actions/upload-artifact@v4 with: diff --git a/.gitignore b/.gitignore index 26d32c4..4536701 100644 --- a/.gitignore +++ b/.gitignore @@ -8,4 +8,4 @@ # Lock files package-lock.json -composer.lock +composer.lock \ No newline at end of file diff --git a/README.md b/README.md index 10c69c6..f5b8639 100644 --- a/README.md +++ b/README.md @@ -8,9 +8,9 @@ [![Required PHP](https://img.shields.io/wordpress/plugin/required-php/better-search?style=flat-square)](https://wordpress.org/plugins/better-search/) [![Active installs](https://img.shields.io/wordpress/plugin/installs/better-search?style=flat-square)](https://wordpress.org/plugins/better-search/) -__Requires:__ 6.5 +__Requires:__ 6.6 -__Tested up to:__ 6.8 +__Tested up to:__ 6.9 __License:__ [GPL-2.0+](https://www.gnu.org/licenses/gpl-2.0.html) diff --git a/better-search.php b/better-search.php index f5b8e62..1299209 100644 --- a/better-search.php +++ b/better-search.php @@ -7,13 +7,13 @@ * @author Ajay D'Souza * @license GPL-2.0+ * @link https://webberzone.com - * @copyright 2009-2025 Ajay D'Souza + * @copyright 2009-2026 Ajay D'Souza * * @wordpress-plugin * Plugin Name: Better Search * Plugin URI: https://webberzone.com/plugins/better-search/ * Description: Replace the default WordPress search with a contextual search. Search results are sorted by relevancy ensuring a better visitor search experience. - * Version: 4.2.2-beta1 + * Version: 4.2.2 * Author: WebberZone * Author URI: https://webberzone.com/ * Text Domain: better-search @@ -73,6 +73,15 @@ define( 'BETTER_SEARCH_DB_VERSION', '2.0' ); } +/** + * Holds the default thumbnail URL for Better Search. + * + * @since 4.2.2 + */ +if ( ! defined( 'BETTER_SEARCH_DEFAULT_THUMBNAIL_URL' ) ) { + define( 'BETTER_SEARCH_DEFAULT_THUMBNAIL_URL', BETTER_SEARCH_PLUGIN_URL . 'includes/images/default-thumb.png' ); +} + if ( ! function_exists( __NAMESPACE__ . '\bsearch_deactivate_other_instances' ) ) { /** * Deactivate other instances of Better Search when this plugin is activated. diff --git a/includes/admin/class-admin-banner.php b/includes/admin/class-admin-banner.php new file mode 100644 index 0000000..0c63123 --- /dev/null +++ b/includes/admin/class-admin-banner.php @@ -0,0 +1,466 @@ + + */ + private array $config = array(); + + /** + * Derived class names keyed by component. + * + * @var array> + */ + private array $class_names = array(); + + /** + * Localized strings. + * + * @var array + */ + private array $strings = array(); + + /** + * Style configuration. + * + * @var array + */ + private array $style = array(); + + /** + * Base class prefix shared by all banners. + * + * @var string + */ + private string $base_prefix = 'wz-admin-banner'; + + /** + * Unique class prefix derived from the provided prefix. + * + * @var string + */ + private string $unique_prefix = 'admin-banner'; + + /** + * Constructor. + * + * @param array $config Configuration arguments for the banner. + */ + public function __construct( array $config ) { + $defaults = array( + 'capability' => 'manage_options', + 'allow_network' => false, + 'prefix' => '', + 'screen_ids' => array(), + 'page_slugs' => array(), + 'sections' => array(), + 'exclude_screen_bases' => array( 'post', 'post-new' ), + 'strings' => array(), + 'link_target' => '_self', + 'style' => array(), + ); + + $this->config = wp_parse_args( $config, $defaults ); + $this->strings = $this->prepare_strings( $this->config['strings'] ?? array() ); + + $this->config['sections'] = $this->sanitize_sections( $this->config['sections'] ); + + $this->unique_prefix = $this->resolve_wrapper_prefix( (string) $this->config['prefix'] ); + $this->class_names = $this->derive_class_names(); + $this->style = $this->prepare_style_config( $this->config['style'] ?? array() ); + + if ( empty( $this->config['screen_ids'] ) ) { + $this->config['screen_ids'] = $this->collect_targets_from_sections( 'screen_ids' ); + } + + if ( empty( $this->config['page_slugs'] ) ) { + $this->config['page_slugs'] = $this->collect_targets_from_sections( 'page_slugs' ); + } + + $this->hooks(); + } + + /** + * Register hooks. + */ + private function hooks(): void { + Hook_Registry::add_action( 'admin_enqueue_scripts', array( $this, 'maybe_enqueue_styles' ) ); + Hook_Registry::add_action( 'in_admin_header', array( $this, 'render' ) ); + } + + /** + * Enqueue banner styles if required on the current screen or page slug. + */ + public function maybe_enqueue_styles(): void { + if ( empty( $this->style['url'] ) ) { + return; + } + + $screen = ! is_network_admin() ? get_current_screen() : null; + $page_slug = $this->get_request_page_slug(); + + if ( $screen instanceof \WP_Screen && $this->should_render_on_screen( $screen, $page_slug ) ) { + $this->enqueue_style(); + return; + } + + if ( '' !== $page_slug && in_array( $page_slug, $this->config['page_slugs'], true ) ) { + $this->enqueue_style(); + } + } + + /** + * Render the admin banner markup when conditions are met. + */ + public function render(): void { + if ( is_network_admin() && ! $this->config['allow_network'] ) { + return; + } + + $screen = get_current_screen(); + if ( ! ( $screen instanceof \WP_Screen ) || ! current_user_can( $this->config['capability'] ) ) { + return; + } + + $page_slug = $this->get_request_page_slug(); + + if ( ! $this->should_render_on_screen( $screen, $page_slug ) ) { + return; + } + + $current_section = $this->resolve_current_section( $screen, $page_slug ); + + ?> +
+
+ strings['eyebrow'] ) ) : ?> + strings['eyebrow'] ); ?> + + strings['title'] ) ) : ?> +

strings['title'] ); ?>

+ + strings['text'] ) ) : ?> +

strings['text'] ); ?>

+ +
+ +
+ style['handle'], + $this->style['url'], + (array) $this->style['deps'], + $this->style['version'] + ); + wp_enqueue_style( $this->style['handle'] ); + } + + /** + * Determine whether the banner should display on the current screen. + * + * @param \WP_Screen $screen Current admin screen. + * @param string $page_slug Current request page slug. + */ + private function should_render_on_screen( \WP_Screen $screen, string $page_slug ): bool { + $screen_base = (string) $screen->base; + if ( '' !== $screen_base && in_array( $screen_base, (array) $this->config['exclude_screen_bases'], true ) ) { + return false; + } + + $screen_id = (string) $screen->id; + if ( '' !== $screen_id && in_array( $screen_id, (array) $this->config['screen_ids'], true ) ) { + return true; + } + + if ( '' !== $page_slug && in_array( $page_slug, (array) $this->config['page_slugs'], true ) ) { + return true; + } + + return false; + } + + /** + * Resolve the banner section to highlight based on current screen or page slug. + * + * @param \WP_Screen $screen Current admin screen. + * @param string $page_slug Current request page slug. + */ + private function resolve_current_section( \WP_Screen $screen, string $page_slug ): string { + $screen_id = (string) $screen->id; + + foreach ( $this->config['sections'] as $section_key => $section ) { + if ( ! empty( $section['screen_ids'] ) && in_array( $screen_id, (array) $section['screen_ids'], true ) ) { + return $section_key; + } + } + + foreach ( $this->config['sections'] as $section_key => $section ) { + if ( ! empty( $section['page_slugs'] ) && in_array( $page_slug, (array) $section['page_slugs'], true ) ) { + return $section_key; + } + } + + return ''; + } + + /** + * Prepare localized strings. + * + * @param array $strings Raw strings array. + */ + private function prepare_strings( array $strings ): array { + $defaults = array( + 'region_label' => '', + 'nav_label' => '', + 'eyebrow' => '', + 'title' => '', + 'text' => '', + ); + + return wp_parse_args( $strings, $defaults ); + } + + /** + * Resolve the wrapper prefix based on base prefix provided. + * + * @param string $prefix Base prefix. + */ + private function resolve_wrapper_prefix( string $prefix ): string { + $prefix = sanitize_key( $prefix ); + + if ( '' === $prefix ) { + return $this->base_prefix; + } + + return false === strpos( $prefix, $this->base_prefix ) ? "{$prefix}-admin-banner" : $prefix; + } + + /** + * Prepare style configuration. + * + * @param array $style Style configuration. + */ + private function prepare_style_config( array $style ): array { + $defaults = array( + 'handle' => $this->sanitize_handle( "{$this->unique_prefix}-styles" ), + 'deps' => array(), + 'version' => self::DEFAULT_STYLE_VERSION, + 'filename' => 'admin-banner', + 'url' => '', + ); + + $style_config = wp_parse_args( $style, $defaults ); + + if ( empty( $style_config['url'] ) ) { + $assets_base = trailingslashit( plugin_dir_url( __FILE__ ) ) . 'css/'; + $min_suffix = ( defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ) ? '' : '.min'; + $style_config['url'] = $assets_base . $style_config['filename'] . $min_suffix . '.css'; + } + + return $style_config; + } + + /** + * Sanitize the sections configuration. + * + * @param array $sections Sections configuration. + * + * @return array + */ + private function sanitize_sections( array $sections ): array { + $sanitized = array(); + + foreach ( $sections as $key => $section ) { + if ( empty( $section['label'] ) || empty( $section['url'] ) ) { + continue; + } + + $section_key = sanitize_key( $key ); + + $sanitized[ $section_key ] = array( + 'label' => $section['label'], + 'url' => $section['url'], + 'type' => isset( $section['type'] ) ? sanitize_key( $section['type'] ) : 'secondary', + 'target' => isset( $section['target'] ) ? $section['target'] : '_self', + 'rel' => isset( $section['rel'] ) ? $section['rel'] : '', + 'screen_ids' => isset( $section['screen_ids'] ) ? (array) $section['screen_ids'] : array(), + 'page_slugs' => isset( $section['page_slugs'] ) ? array_map( 'sanitize_key', (array) $section['page_slugs'] ) : array(), + ); + } + + return $sanitized; + } + + /** + * Derive class names following the provided prefix alongside the base prefix. + * + * @return array> + */ + private function derive_class_names(): array { + $build = function ( string $suffix = '' ): array { + $classes = array( $this->base_prefix . $suffix ); + + if ( $this->unique_prefix !== $this->base_prefix ) { + $classes[] = $this->unique_prefix . $suffix; + } + + return $classes; + }; + + return array( + 'wrapper' => $build(), + 'intro' => $build( '__intro' ), + 'eyebrow' => $build( '__eyebrow' ), + 'title' => $build( '__title' ), + 'text' => $build( '__text' ), + 'links_wrapper' => $build( '__links' ), + 'link' => $build( '__link' ), + 'link_primary' => $build( '__link--primary' ), + 'link_secondary' => $build( '__link--secondary' ), + 'link_current' => $build( '__link--current' ), + 'link_new' => $build( '__link--new' ), + ); + } + + /** + * Collect screen IDs or page slugs from the sections configuration. + * + * @param string $target_key screen_ids|page_slugs key. + * + * @return array + */ + private function collect_targets_from_sections( string $target_key ): array { + $values = array(); + + foreach ( $this->config['sections'] as $section ) { + if ( empty( $section[ $target_key ] ) ) { + continue; + } + foreach ( (array) $section[ $target_key ] as $value ) { + $values[] = (string) $value; + } + } + + return array_values( array_unique( array_filter( $values ) ) ); + } + + /** + * Retrieve the CSS classes for a section link. + * + * @param array $section Section configuration. + */ + private function get_section_link_classes( array $section ): array { + $classes = $this->class_names['link'] ?? array(); + $type = isset( $section['type'] ) ? sanitize_key( $section['type'] ) : 'secondary'; + $type = '' !== $type ? $type : 'secondary'; + $type_key = "link_{$type}"; + + if ( isset( $this->class_names[ $type_key ] ) ) { + $classes = array_merge( $classes, (array) $this->class_names[ $type_key ] ); + } elseif ( isset( $this->class_names['link_secondary'] ) ) { + $classes = array_merge( $classes, (array) $this->class_names['link_secondary'] ); + } + + return array_values( array_unique( array_filter( $classes ) ) ); + } + + /** + * Implode a class array into a string. + * + * @param array $classes Class list. + * @return string Class attribute string. + */ + private function implode_classes( array $classes ): string { + return implode( ' ', array_unique( array_filter( $classes ) ) ); + } + + /** + * Retrieve a flattened class attribute by key. + * + * @param string $key Classes array key. + * @return string Class attribute string. + */ + private function class_attr( string $key ): string { + return $this->implode_classes( $this->class_names[ $key ] ?? array() ); + } + + /** + * Sanitize a style handle. + * + * @param string $handle Raw handle. + */ + private function sanitize_handle( string $handle ): string { + return sanitize_title_with_dashes( $handle ); + } + + /** + * Get the current page slug from the request. + */ + private function get_request_page_slug(): string { + $page_param_raw = filter_input( INPUT_GET, 'page', FILTER_UNSAFE_RAW ); + + if ( is_string( $page_param_raw ) && '' !== $page_param_raw ) { + $page_raw = sanitize_text_field( $page_param_raw ); + } elseif ( isset( $_GET['page'] ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended + $page_raw = sanitize_text_field( wp_unslash( $_GET['page'] ) ); // phpcs:ignore WordPress.Security.NonceVerification.Recommended + } else { + return ''; + } + + $page_slug = strtolower( (string) strtok( $page_raw, '&' ) ); + + return sanitize_key( $page_slug ); + } +} diff --git a/includes/admin/class-admin.php b/includes/admin/class-admin.php index 151dd70..e39c187 100644 --- a/includes/admin/class-admin.php +++ b/includes/admin/class-admin.php @@ -108,12 +108,21 @@ class Admin { /** * Settings Wizard. * - * @since 4.2.0 + * @since 4.2.2 * * @var object Settings Wizard. */ public $settings_wizard; + /** + * Admin banner helper instance. + * + * @since 4.2.2 + * + * @var Admin_Banner + */ + public Admin_Banner $admin_banner; + /** * Settings Page in Admin area. * @@ -179,6 +188,7 @@ public function __construct() { $this->dashboard_widgets = new Dashboard_Widgets(); $this->cache = new Cache(); $this->settings_wizard = new Settings_Wizard(); + $this->admin_banner = new Admin_Banner( $this->get_admin_banner_config() ); } /** @@ -197,6 +207,8 @@ public function hooks() { */ public function admin_enqueue_scripts() { + $minimize = ( defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ) ? '' : '.min'; + // Register charj.js, luxon and chartjs-adapter-luxon. wp_register_script( 'better-search-chartjs', @@ -236,7 +248,7 @@ public function admin_enqueue_scripts() { wp_register_script( 'better-search-admin-js', - BETTER_SEARCH_PLUGIN_URL . 'includes/admin/js/admin-scripts.min.js', + BETTER_SEARCH_PLUGIN_URL . "includes/admin/js/admin-scripts{$minimize}.js", array( 'jquery', 'jquery-ui-tabs', 'jquery-ui-datepicker' ), BETTER_SEARCH_VERSION, true @@ -254,7 +266,7 @@ public function admin_enqueue_scripts() { ); wp_register_style( 'better-search-admin-ui-css', - BETTER_SEARCH_PLUGIN_URL . 'includes/admin/css/better-search-admin.min.css', + BETTER_SEARCH_PLUGIN_URL . "includes/admin/css/better-search-admin{$minimize}.css", array(), BETTER_SEARCH_VERSION ); @@ -266,7 +278,7 @@ public function admin_enqueue_scripts() { * @since 3.3.0 */ public static function display_admin_sidebar() { - require_once BETTER_SEARCH_PLUGIN_DIR . 'includes/admin/settings/sidebar.php'; + require_once BETTER_SEARCH_PLUGIN_DIR . 'includes/admin/sidebar.php'; } /** @@ -297,4 +309,70 @@ public static function pro_upgrade_banner( $donate = true, $custom_text = '' ) { + */ + private function get_admin_banner_config(): array { + $dashboard_url = admin_url( 'admin.php?page=bsearch_dashboard' ); + $popular_url = admin_url( 'admin.php?page=bsearch_popular_searches' ); + $settings_url = admin_url( 'admin.php?page=bsearch_options_page' ); + $tools_url = admin_url( 'admin.php?page=bsearch_tools_page' ); + + return array( + 'capability' => 'manage_options', + 'prefix' => 'bsearch', + 'strings' => array( + 'region_label' => esc_html__( 'Better Search quick links', 'better-search' ), + 'nav_label' => esc_html__( 'Better Search admin shortcuts', 'better-search' ), + 'eyebrow' => esc_html__( 'WebberZone Better Search', 'better-search' ), + 'title' => esc_html__( 'Highlight what people search for and act on it faster.', 'better-search' ), + 'text' => esc_html__( 'Check stats, chase trends, refresh settings, run maintenance.', 'better-search' ), + ), + 'sections' => array( + 'dashboard' => array( + 'label' => esc_html__( 'Dashboard', 'better-search' ), + 'url' => $dashboard_url, + 'type' => 'primary', + 'screen_ids' => array( + 'toplevel_page_bsearch_dashboard', + 'better-search_page_bsearch_dashboard', + ), + 'page_slugs' => array( 'bsearch_dashboard' ), + ), + 'popular' => array( + 'label' => esc_html__( 'Popular Searches', 'better-search' ), + 'url' => $popular_url, + 'screen_ids' => array( + 'better-search_page_bsearch_popular_searches', + 'better-search_page_bsearch_popular_searchesorderbydaily_countorderdesc', + ), + 'page_slugs' => array( 'bsearch_popular_searches' ), + ), + 'settings' => array( + 'label' => esc_html__( 'Settings', 'better-search' ), + 'url' => $settings_url, + 'screen_ids' => array( 'better-search_page_bsearch_options_page' ), + 'page_slugs' => array( 'bsearch_options_page' ), + ), + 'tools' => array( + 'label' => esc_html__( 'Tools', 'better-search' ), + 'url' => $tools_url, + 'screen_ids' => array( 'better-search_page_bsearch_tools_page' ), + 'page_slugs' => array( 'bsearch_tools_page' ), + ), + 'plugins' => array( + 'label' => esc_html__( 'WebberZone Plugins', 'better-search' ), + 'url' => 'https://webberzone.com/plugins/', + 'type' => 'secondary', + 'target' => '_blank', + 'rel' => 'noopener noreferrer', + ), + ), + ); + } } diff --git a/includes/admin/class-dashboard.php b/includes/admin/class-dashboard.php index 5a2f255..2229eca 100644 --- a/includes/admin/class-dashboard.php +++ b/includes/admin/class-dashboard.php @@ -157,7 +157,7 @@ public function render_page() {
- +
diff --git a/includes/admin/class-settings-wizard.php b/includes/admin/class-settings-wizard.php index d5c96cd..03f90ff 100644 --- a/includes/admin/class-settings-wizard.php +++ b/includes/admin/class-settings-wizard.php @@ -233,11 +233,14 @@ public function register_wizard_notice() { 'capability' => 'manage_options', 'conditions' => array( function () { + $page = sanitize_key( (string) filter_input( INPUT_GET, 'page', FILTER_SANITIZE_FULL_SPECIAL_CHARS ) ); + // Only show if wizard is not completed, not dismissed, and activation flag is set. // Check both transient and option to ensure it works in multisite environments. return ! $this->is_wizard_completed() && ! get_option( 'bsearch_wizard_notice_dismissed', false ) && - ( get_transient( 'bsearch_show_wizard_activation_redirect' ) || get_option( 'bsearch_show_wizard', false ) ); + ( get_transient( 'bsearch_show_wizard_activation_redirect' ) || get_option( 'bsearch_show_wizard', false ) ) && + 'bsearch_wizard' !== $page; }, ), ) diff --git a/includes/admin/class-settings.php b/includes/admin/class-settings.php index 64478d1..c070636 100644 --- a/includes/admin/class-settings.php +++ b/includes/admin/class-settings.php @@ -165,8 +165,8 @@ public static function get_settings_sections() { 'general' => __( 'General', 'better-search' ), 'performance' => __( 'Performance', 'better-search' ), 'search' => __( 'Search', 'better-search' ), - 'heatmap' => __( 'Heatmap', 'better-search' ), 'output' => __( 'Output', 'better-search' ), + 'heatmap' => __( 'Heatmap', 'better-search' ), ); /** @@ -1138,11 +1138,6 @@ public function admin_enqueue_scripts( $hook ) { if ( ! isset( $this->settings_api->settings_page ) || $hook !== $this->settings_api->settings_page ) { return; } - wp_localize_script( - 'wz-admin-js', - 'bsearch_admin', - array() - ); wp_enqueue_script( 'better-search-admin-js' ); wp_enqueue_style( 'better-search-admin-ui-css' ); wp_enqueue_style( 'wp-spinner' ); @@ -1173,7 +1168,7 @@ public function change_settings_on_save( $settings ) { // Sanitize exclude_cat_slugs to save a new entry of exclude_categories. if ( isset( $settings['exclude_cat_slugs'] ) ) { - $exclude_cat_slugs = array_unique( str_getcsv( $settings['exclude_cat_slugs'] ) ); + $exclude_cat_slugs = array_unique( str_getcsv( $settings['exclude_cat_slugs'], ',', '"', '\\' ) ); foreach ( $exclude_cat_slugs as $cat_name ) { $cat = get_term_by( 'name', $cat_name, 'category' ); diff --git a/includes/admin/class-tools-page.php b/includes/admin/class-tools-page.php index e559fba..533f596 100644 --- a/includes/admin/class-tools-page.php +++ b/includes/admin/class-tools-page.php @@ -356,7 +356,7 @@ public function render_page() {
- +
diff --git a/includes/admin/class-upgrader.php b/includes/admin/class-upgrader.php index 4ed33ec..e8a46f6 100644 --- a/includes/admin/class-upgrader.php +++ b/includes/admin/class-upgrader.php @@ -128,7 +128,7 @@ public function render_page() {
- +
diff --git a/includes/admin/css/admin-banner-rtl.css b/includes/admin/css/admin-banner-rtl.css new file mode 100644 index 0000000..cb4521a --- /dev/null +++ b/includes/admin/css/admin-banner-rtl.css @@ -0,0 +1,169 @@ +/* Admin banner base styles +----------------------------------*/ +.wz-admin-banner { + margin: -20px -20px 0 -20px; + padding: 26px 36px; + background: linear-gradient(-180deg, #041f4e 0%, #031337 55%, #010713 100%); + color: #f6f8ff; + display: flex; + align-items: center; + gap: 28px; + box-sizing: border-box; +} + +.wz-admin-banner__intro { + flex: 1 1 auto; + min-width: 220px; + color: #f6f8ff; +} + +.wz-admin-banner__eyebrow { + display: inline-block; + padding: 2px 10px; + border-radius: 999px; + background-color: rgba(127, 195, 255, 0.2); + color: #7fc3ff; + font-size: 0.9rem; + text-transform: uppercase; + letter-spacing: 0.06em; + font-weight: 600; +} + +.wz-admin-banner__title { + margin: 10px 0 6px; + font-size: 1rem; + font-weight: 700; + line-height: 1.24; + color: #ffffff; +} + +.wz-admin-banner__text { + margin: 0; + font-size: 0.9rem; + line-height: 1.6; + color: #dfe6ff; + max-width: 540px; +} + +.wz-admin-banner__links { + display: flex; + flex-wrap: wrap; + gap: 10px; + align-items: center; +} + +.wz-admin-banner__link { + display: inline-flex; + align-items: center; + gap: 8px; + padding: 9px 16px; + border-radius: 999px; + font-size: 0.9rem; + font-weight: 600; + text-decoration: none; + color: inherit; + transition: + transform 0.2s ease, + box-shadow 0.2s ease, + background-color 0.2s ease, + outline 0.2s ease; + outline: none; +} + +.wz-admin-banner__link:focus, +.wz-admin-banner__link:focus-visible, +.wz-admin-banner__link:active { + outline: 2px solid rgba(255, 255, 255, 0.7); + outline-offset: 2px; +} + +.wz-admin-banner__link--primary { + background-color: #ffbd59; + color: #0a0a0a; + box-shadow: 0 8px 24px rgba(255, 189, 89, 0.45); +} + +.wz-admin-banner__link--primary:hover, +.wz-admin-banner__link--primary:focus, +.wz-admin-banner__link--primary:focus-visible, +.wz-admin-banner__link--primary:active { + background-color: #f08c00; + transform: translateY(-1px); + outline: 2px solid #ffffff; + outline-offset: 2px; + color: #0a0a0a; +} + +.wz-admin-banner__link--secondary { + background-color: rgba(3, 32, 117, 0.18); + color: #f6f8ff; + box-shadow: inset 0 0 0 1px rgba(3, 32, 117, 0.45); +} + +.wz-admin-banner__link--secondary:hover, +.wz-admin-banner__link--secondary:focus, +.wz-admin-banner__link--secondary:focus-visible, +.wz-admin-banner__link--secondary:active { + background-color: #0d2f8d; + transform: translateY(-1px); + outline: 2px solid #ffbd59; + outline-offset: 2px; + color: #ffffff; +} + +.wz-admin-banner__link--current { + background-color: #c8302e; + color: #ffffff; + box-shadow: 0 8px 24px rgba(200, 48, 46, 0.4); +} + +.wz-admin-banner__link--current:hover, +.wz-admin-banner__link--current:focus, +.wz-admin-banner__link--current:focus-visible, +.wz-admin-banner__link--current:active { + background-color: #e04841; + color: #ffffff; + outline: 2px solid #ffffff; + outline-offset: 2px; + transform: translateY(-1px); +} + +@media screen and (max-width: 782px) { + .wz-admin-banner { + flex-direction: column; + align-items: flex-start; + gap: 18px; + margin: -16px -16px 12px -16px; + padding: 20px 20px; + } + + .wz-admin-banner__title { + font-size: 1.125rem; + } +} + +@media (prefers-reduced-motion: reduce) { + .wz-admin-banner__link { + transition: none; + } +} + +@media screen and (max-width: 600px) { + body.wp-admin #wpbody { + padding-top: 0; + } + + body.wp-admin .wz-admin-banner { + margin: 0px -16px 0 -16px; + padding: 48px 20px 28px 20px; + } + + .wz-admin-banner__link { + font-size: 0.875rem; + } + + body.wp-admin .wz-admin-banner__title, + body.wp-admin .wz-admin-banner__text { + display: none; + } +} diff --git a/includes/admin/css/admin-banner-rtl.min.css b/includes/admin/css/admin-banner-rtl.min.css new file mode 100644 index 0000000..a015bcb --- /dev/null +++ b/includes/admin/css/admin-banner-rtl.min.css @@ -0,0 +1 @@ +.wz-admin-banner{margin:-20px -20px 0 -20px;padding:26px 36px;background:linear-gradient(-180deg,#041f4e 0,#031337 55%,#010713 100%);color:#f6f8ff;display:flex;align-items:center;gap:28px;box-sizing:border-box}.wz-admin-banner__intro{flex:1 1 auto;min-width:220px;color:#f6f8ff}.wz-admin-banner__eyebrow{display:inline-block;padding:2px 10px;border-radius:999px;background-color:rgba(127,195,255,.2);color:#7fc3ff;font-size:.9rem;text-transform:uppercase;letter-spacing:.06em;font-weight:600}.wz-admin-banner__title{margin:10px 0 6px;font-size:1rem;font-weight:700;line-height:1.24;color:#fff}.wz-admin-banner__text{margin:0;font-size:.9rem;line-height:1.6;color:#dfe6ff;max-width:540px}.wz-admin-banner__links{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.wz-admin-banner__link{display:inline-flex;align-items:center;gap:8px;padding:9px 16px;border-radius:999px;font-size:.9rem;font-weight:600;text-decoration:none;color:inherit;transition:transform .2s ease,box-shadow .2s ease,background-color .2s ease,outline .2s ease;outline:0}.wz-admin-banner__link:active,.wz-admin-banner__link:focus,.wz-admin-banner__link:focus-visible{outline:2px solid rgba(255,255,255,.7);outline-offset:2px}.wz-admin-banner__link--primary{background-color:#ffbd59;color:#0a0a0a;box-shadow:0 8px 24px rgba(255,189,89,.45)}.wz-admin-banner__link--primary:active,.wz-admin-banner__link--primary:focus,.wz-admin-banner__link--primary:focus-visible,.wz-admin-banner__link--primary:hover{background-color:#f08c00;transform:translateY(-1px);outline:2px solid #ffffff;outline-offset:2px;color:#0a0a0a}.wz-admin-banner__link--secondary{background-color:rgba(3,32,117,.18);color:#f6f8ff;box-shadow:inset 0 0 0 1px rgba(3,32,117,.45)}.wz-admin-banner__link--secondary:active,.wz-admin-banner__link--secondary:focus,.wz-admin-banner__link--secondary:focus-visible,.wz-admin-banner__link--secondary:hover{background-color:#0d2f8d;transform:translateY(-1px);outline:2px solid #ffbd59;outline-offset:2px;color:#fff}.wz-admin-banner__link--current{background-color:#c8302e;color:#fff;box-shadow:0 8px 24px rgba(200,48,46,.4)}.wz-admin-banner__link--current:active,.wz-admin-banner__link--current:focus,.wz-admin-banner__link--current:focus-visible,.wz-admin-banner__link--current:hover{background-color:#e04841;color:#fff;outline:2px solid #ffffff;outline-offset:2px;transform:translateY(-1px)}@media screen and (max-width:782px){.wz-admin-banner{flex-direction:column;align-items:flex-start;gap:18px;margin:-16px -16px 12px -16px;padding:20px 20px}.wz-admin-banner__title{font-size:1.125rem}}@media (prefers-reduced-motion:reduce){.wz-admin-banner__link{transition:none}}@media screen and (max-width:600px){body.wp-admin #wpbody{padding-top:0}body.wp-admin .wz-admin-banner{margin:0 -16px 0 -16px;padding:48px 20px 28px 20px}.wz-admin-banner__link{font-size:.875rem}body.wp-admin .wz-admin-banner__text,body.wp-admin .wz-admin-banner__title{display:none}} \ No newline at end of file diff --git a/includes/admin/css/admin-banner.css b/includes/admin/css/admin-banner.css new file mode 100644 index 0000000..35e812e --- /dev/null +++ b/includes/admin/css/admin-banner.css @@ -0,0 +1,165 @@ +/* Admin banner base styles +----------------------------------*/ +.wz-admin-banner { + margin: -20px -20px 0 -20px; + padding: 26px 36px; + background: linear-gradient(180deg, #041f4e 0%, #031337 55%, #010713 100%); + color: #f6f8ff; + display: flex; + align-items: center; + gap: 28px; + box-sizing: border-box; +} + +.wz-admin-banner__intro { + flex: 1 1 auto; + min-width: 220px; + color: #f6f8ff; +} + +.wz-admin-banner__eyebrow { + display: inline-block; + padding: 2px 10px; + border-radius: 999px; + background-color: rgba(127, 195, 255, 0.2); + color: #7fc3ff; + font-size: 0.9rem; + text-transform: uppercase; + letter-spacing: 0.06em; + font-weight: 600; +} + +.wz-admin-banner__title { + margin: 10px 0 6px; + font-size: 1rem; + font-weight: 700; + line-height: 1.24; + color: #ffffff; +} + +.wz-admin-banner__text { + margin: 0; + font-size: 0.9rem; + line-height: 1.6; + color: #dfe6ff; + max-width: 540px; +} + +.wz-admin-banner__links { + display: flex; + flex-wrap: wrap; + gap: 10px; + align-items: center; +} + +.wz-admin-banner__link { + display: inline-flex; + align-items: center; + gap: 8px; + padding: 9px 16px; + border-radius: 999px; + font-size: 0.9rem; + font-weight: 600; + text-decoration: none; + color: inherit; + transition: transform 0.2s ease, box-shadow 0.2s ease, background-color 0.2s ease, outline 0.2s ease; + outline: none; +} + +.wz-admin-banner__link:focus, +.wz-admin-banner__link:focus-visible, +.wz-admin-banner__link:active { + outline: 2px solid rgba(255, 255, 255, 0.7); + outline-offset: 2px; +} + +.wz-admin-banner__link--primary { + background-color: #ffbd59; + color: #0a0a0a; + box-shadow: 0 8px 24px rgba(255, 189, 89, 0.45); +} + +.wz-admin-banner__link--primary:hover, +.wz-admin-banner__link--primary:focus, +.wz-admin-banner__link--primary:focus-visible, +.wz-admin-banner__link--primary:active { + background-color: #f08c00; + transform: translateY(-1px); + outline: 2px solid #ffffff; + outline-offset: 2px; + color: #0a0a0a; +} + +.wz-admin-banner__link--secondary { + background-color: rgba(3, 32, 117, 0.18); + color: #f6f8ff; + box-shadow: inset 0 0 0 1px rgba(3, 32, 117, 0.45); +} + +.wz-admin-banner__link--secondary:hover, +.wz-admin-banner__link--secondary:focus, +.wz-admin-banner__link--secondary:focus-visible, +.wz-admin-banner__link--secondary:active { + background-color: #0d2f8d; + transform: translateY(-1px); + outline: 2px solid #ffbd59; + outline-offset: 2px; + color: #ffffff; +} + +.wz-admin-banner__link--current { + background-color: #c8302e; + color: #ffffff; + box-shadow: 0 8px 24px rgba(200, 48, 46, 0.4); +} + +.wz-admin-banner__link--current:hover, +.wz-admin-banner__link--current:focus, +.wz-admin-banner__link--current:focus-visible, +.wz-admin-banner__link--current:active { + background-color: #e04841; + color: #ffffff; + outline: 2px solid #ffffff; + outline-offset: 2px; + transform: translateY(-1px); +} + +@media screen and (max-width: 782px) { + .wz-admin-banner { + flex-direction: column; + align-items: flex-start; + gap: 18px; + margin: -16px -16px 12px -16px; + padding: 20px 20px; + } + + .wz-admin-banner__title { + font-size: 1.125rem; + } +} + +@media (prefers-reduced-motion: reduce) { + .wz-admin-banner__link { + transition: none; + } +} + +@media screen and (max-width: 600px) { + body.wp-admin #wpbody { + padding-top: 0; + } + + body.wp-admin .wz-admin-banner { + margin: 0px -16px 0 -16px; + padding: 48px 20px 28px 20px; + } + + .wz-admin-banner__link { + font-size: 0.875rem; + } + + body.wp-admin .wz-admin-banner__title, + body.wp-admin .wz-admin-banner__text { + display: none; + } +} \ No newline at end of file diff --git a/includes/admin/css/admin-banner.min.css b/includes/admin/css/admin-banner.min.css new file mode 100644 index 0000000..9aa6f3d --- /dev/null +++ b/includes/admin/css/admin-banner.min.css @@ -0,0 +1 @@ +.wz-admin-banner{margin:-20px -20px 0 -20px;padding:26px 36px;background:linear-gradient(180deg,#041f4e 0,#031337 55%,#010713 100%);color:#f6f8ff;display:flex;align-items:center;gap:28px;box-sizing:border-box}.wz-admin-banner__intro{flex:1 1 auto;min-width:220px;color:#f6f8ff}.wz-admin-banner__eyebrow{display:inline-block;padding:2px 10px;border-radius:999px;background-color:rgba(127,195,255,.2);color:#7fc3ff;font-size:.9rem;text-transform:uppercase;letter-spacing:.06em;font-weight:600}.wz-admin-banner__title{margin:10px 0 6px;font-size:1rem;font-weight:700;line-height:1.24;color:#fff}.wz-admin-banner__text{margin:0;font-size:.9rem;line-height:1.6;color:#dfe6ff;max-width:540px}.wz-admin-banner__links{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.wz-admin-banner__link{display:inline-flex;align-items:center;gap:8px;padding:9px 16px;border-radius:999px;font-size:.9rem;font-weight:600;text-decoration:none;color:inherit;transition:transform .2s ease,box-shadow .2s ease,background-color .2s ease,outline .2s ease;outline:0}.wz-admin-banner__link:active,.wz-admin-banner__link:focus,.wz-admin-banner__link:focus-visible{outline:2px solid rgba(255,255,255,.7);outline-offset:2px}.wz-admin-banner__link--primary{background-color:#ffbd59;color:#0a0a0a;box-shadow:0 8px 24px rgba(255,189,89,.45)}.wz-admin-banner__link--primary:active,.wz-admin-banner__link--primary:focus,.wz-admin-banner__link--primary:focus-visible,.wz-admin-banner__link--primary:hover{background-color:#f08c00;transform:translateY(-1px);outline:2px solid #ffffff;outline-offset:2px;color:#0a0a0a}.wz-admin-banner__link--secondary{background-color:rgba(3,32,117,.18);color:#f6f8ff;box-shadow:inset 0 0 0 1px rgba(3,32,117,.45)}.wz-admin-banner__link--secondary:active,.wz-admin-banner__link--secondary:focus,.wz-admin-banner__link--secondary:focus-visible,.wz-admin-banner__link--secondary:hover{background-color:#0d2f8d;transform:translateY(-1px);outline:2px solid #ffbd59;outline-offset:2px;color:#fff}.wz-admin-banner__link--current{background-color:#c8302e;color:#fff;box-shadow:0 8px 24px rgba(200,48,46,.4)}.wz-admin-banner__link--current:active,.wz-admin-banner__link--current:focus,.wz-admin-banner__link--current:focus-visible,.wz-admin-banner__link--current:hover{background-color:#e04841;color:#fff;outline:2px solid #ffffff;outline-offset:2px;transform:translateY(-1px)}@media screen and (max-width:782px){.wz-admin-banner{flex-direction:column;align-items:flex-start;gap:18px;margin:-16px -16px 12px -16px;padding:20px 20px}.wz-admin-banner__title{font-size:1.125rem}}@media (prefers-reduced-motion:reduce){.wz-admin-banner__link{transition:none}}@media screen and (max-width:600px){body.wp-admin #wpbody{padding-top:0}body.wp-admin .wz-admin-banner{margin:0 -16px 0 -16px;padding:48px 20px 28px 20px}.wz-admin-banner__link{font-size:.875rem}body.wp-admin .wz-admin-banner__text,body.wp-admin .wz-admin-banner__title{display:none}} \ No newline at end of file diff --git a/includes/admin/css/better-search-admin-rtl.css b/includes/admin/css/better-search-admin-rtl.css new file mode 100644 index 0000000..376c7ba --- /dev/null +++ b/includes/admin/css/better-search-admin-rtl.css @@ -0,0 +1,1548 @@ +/*! jQuery UI - v1.12.1 - 2019-02-05 +* http://jqueryui.com +* Includes: core.css, datepicker.css, theme.css +* To view and modify this theme, visit http://jqueryui.com/themeroller/?scope=&folderName=smoothness&cornerRadiusShadow=8px&offsetLeftShadow=-8px&offsetTopShadow=-8px&thicknessShadow=8px&opacityShadow=30&bgImgOpacityShadow=0&bgTextureShadow=flat&bgColorShadow=aaaaaa&opacityOverlay=30&bgImgOpacityOverlay=0&bgTextureOverlay=flat&bgColorOverlay=aaaaaa&iconColorError=cd0a0a&fcError=cd0a0a&borderColorError=cd0a0a&bgImgOpacityError=95&bgTextureError=glass&bgColorError=fef1ec&iconColorHighlight=2e83ff&fcHighlight=363636&borderColorHighlight=fcefa1&bgImgOpacityHighlight=55&bgTextureHighlight=glass&bgColorHighlight=fbf9ee&iconColorActive=454545&fcActive=212121&borderColorActive=aaaaaa&bgImgOpacityActive=65&bgTextureActive=glass&bgColorActive=ffffff&iconColorHover=454545&fcHover=212121&borderColorHover=999999&bgImgOpacityHover=75&bgTextureHover=glass&bgColorHover=dadada&iconColorDefault=888888&fcDefault=555555&borderColorDefault=d3d3d3&bgImgOpacityDefault=75&bgTextureDefault=glass&bgColorDefault=e6e6e6&iconColorContent=222222&fcContent=222222&borderColorContent=aaaaaa&bgImgOpacityContent=75&bgTextureContent=flat&bgColorContent=ffffff&iconColorHeader=222222&fcHeader=222222&borderColorHeader=aaaaaa&bgImgOpacityHeader=75&bgTextureHeader=highlight_soft&bgColorHeader=cccccc&cornerRadius=4px&fsDefault=1.1em&fwDefault=normal&ffDefault=Verdana%2CArial%2Csans-serif +* Copyright jQuery Foundation and other contributors; Licensed MIT */ + +/* Layout helpers +----------------------------------*/ +.ui-helper-hidden { + display: none; +} + +.ui-helper-hidden-accessible { + border: 0; + clip: rect(0 0 0 0); + height: 1px; + margin: -1px; + overflow: hidden; + padding: 0; + position: absolute; + width: 1px; +} + +.ui-helper-reset { + margin: 0; + padding: 0; + border: 0; + outline: 0; + line-height: 1.3; + text-decoration: none; + font-size: 100%; + list-style: none; +} + +.ui-helper-clearfix:before, +.ui-helper-clearfix:after { + content: ""; + display: table; + border-collapse: collapse; +} + +.ui-helper-clearfix:after { + clear: both; +} + +.ui-helper-zfix { + width: 100%; + height: 100%; + top: 0; + right: 0; + position: absolute; + opacity: 0; + filter: Alpha(Opacity=0); + /* support: IE8 */ +} + +.ui-front { + z-index: 100; +} + +/* Interaction Cues +----------------------------------*/ +.ui-state-disabled { + cursor: default !important; + pointer-events: none; +} + +/* Icons +----------------------------------*/ +.ui-icon { + display: inline-block; + vertical-align: middle; + margin-top: -0.25em; + position: relative; + text-indent: -99999px; + overflow: hidden; + background-repeat: no-repeat; +} + +.ui-widget-icon-block { + right: 50%; + margin-right: -8px; + display: block; +} + +/* Misc visuals +----------------------------------*/ + +/* Overlays */ +.ui-widget-overlay { + position: fixed; + top: 0; + right: 0; + width: 100%; + height: 100%; +} + +.ui-datepicker { + width: 17em; + padding: 0.2em 0.2em 0; + display: none; +} + +.ui-datepicker .ui-datepicker-header { + position: relative; + padding: 0.2em 0; +} + +.ui-datepicker .ui-datepicker-prev, +.ui-datepicker .ui-datepicker-next { + position: absolute; + top: 2px; + width: 1.8em; + height: 1.8em; +} + +.ui-datepicker .ui-datepicker-prev-hover, +.ui-datepicker .ui-datepicker-next-hover { + top: 1px; +} + +.ui-datepicker .ui-datepicker-prev { + right: 2px; +} + +.ui-datepicker .ui-datepicker-next { + left: 2px; +} + +.ui-datepicker .ui-datepicker-prev-hover { + right: 1px; +} + +.ui-datepicker .ui-datepicker-next-hover { + left: 1px; +} + +.ui-datepicker .ui-datepicker-prev span, +.ui-datepicker .ui-datepicker-next span { + display: block; + position: absolute; + right: 50%; + margin-right: -8px; + top: 50%; + margin-top: -8px; +} + +.ui-datepicker .ui-datepicker-title { + margin: 0 2.3em; + line-height: 1.8em; + text-align: center; +} + +.ui-datepicker .ui-datepicker-title select { + font-size: 1em; + margin: 1px 0; +} + +.ui-datepicker select.ui-datepicker-month, +.ui-datepicker select.ui-datepicker-year { + width: 45%; +} + +.ui-datepicker table { + width: 100%; + font-size: 0.9em; + border-collapse: collapse; + margin: 0 0 0.4em; +} + +.ui-datepicker th { + padding: 0.7em 0.3em; + text-align: center; + font-weight: bold; + border: 0; +} + +.ui-datepicker td { + border: 0; + padding: 1px; +} + +.ui-datepicker td span, +.ui-datepicker td a { + display: block; + padding: 0.2em; + text-align: left; + text-decoration: none; +} + +.ui-datepicker .ui-datepicker-buttonpane { + background-image: none; + margin: 0.7em 0 0 0; + padding: 0 0.2em; + border-right: 0; + border-left: 0; + border-bottom: 0; +} + +.ui-datepicker .ui-datepicker-buttonpane button { + float: left; + margin: 0.5em 0.2em 0.4em; + cursor: pointer; + padding: 0.2em 0.6em 0.3em 0.6em; + width: auto; + overflow: visible; +} + +.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { + float: right; +} + +/* with multiple calendars */ +.ui-datepicker.ui-datepicker-multi { + width: auto; +} + +.ui-datepicker-multi .ui-datepicker-group { + float: right; +} + +.ui-datepicker-multi .ui-datepicker-group table { + width: 95%; + margin: 0 auto 0.4em; +} + +.ui-datepicker-multi-2 .ui-datepicker-group { + width: 50%; +} + +.ui-datepicker-multi-3 .ui-datepicker-group { + width: 33.3%; +} + +.ui-datepicker-multi-4 .ui-datepicker-group { + width: 25%; +} + +.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header, +.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { + border-right-width: 0; +} + +.ui-datepicker-multi .ui-datepicker-buttonpane { + clear: right; +} + +.ui-datepicker-row-break { + clear: both; + width: 100%; + font-size: 0; +} + +/* RTL support */ +.ui-datepicker-rtl { + direction: ltr; +} + +.ui-datepicker-rtl .ui-datepicker-prev { + left: 2px; + right: auto; +} + +.ui-datepicker-rtl .ui-datepicker-next { + right: 2px; + left: auto; +} + +.ui-datepicker-rtl .ui-datepicker-prev:hover { + left: 1px; + right: auto; +} + +.ui-datepicker-rtl .ui-datepicker-next:hover { + right: 1px; + left: auto; +} + +.ui-datepicker-rtl .ui-datepicker-buttonpane { + clear: left; +} + +.ui-datepicker-rtl .ui-datepicker-buttonpane button { + float: right; +} + +.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current, +.ui-datepicker-rtl .ui-datepicker-group { + float: left; +} + +.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header, +.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { + border-left-width: 0; + border-right-width: 1px; +} + +/* Icons */ +.ui-datepicker .ui-icon { + display: block; + text-indent: -99999px; + overflow: hidden; + background-repeat: no-repeat; + right: 0.5em; + top: 0.3em; +} + +.ui-datepicker { + border: 1px solid #aaaaaa; + background: #ffffff; + color: #222222; +} + +.ui-datepicker a { + color: #222222; +} + +/* Interaction states +----------------------------------*/ +.ui-state-default, +.ui-widget-content .ui-state-default, +.ui-widget-header .ui-state-default, +.ui-button, + +/* We use html here because we need a greater specificity to make sure disabled +works properly when clicked or hovered */ +html .ui-button.ui-state-disabled:hover, +html .ui-button.ui-state-disabled:active { + border: 1px solid #d3d3d3; + background: #e6e6e6 url("images/ui-bg_glass_75_e6e6e6_1x400.png") 50% 50% + repeat-x; + font-weight: normal; + color: #555555; +} + +.ui-state-default a, +.ui-state-default a:link, +.ui-state-default a:visited, +a.ui-button, +a:link.ui-button, +a:visited.ui-button, +.ui-button { + color: #555555; + text-decoration: none; +} + +.ui-state-hover, +.ui-widget-content .ui-state-hover, +.ui-widget-header .ui-state-hover, +.ui-state-focus, +.ui-widget-content .ui-state-focus, +.ui-widget-header .ui-state-focus, +.ui-button:hover, +.ui-button:focus { + border: 1px solid #999999; + background: #dadada url("images/ui-bg_glass_75_dadada_1x400.png") 50% 50% + repeat-x; + font-weight: normal; + color: #212121; +} + +.ui-state-hover a, +.ui-state-hover a:hover, +.ui-state-hover a:link, +.ui-state-hover a:visited, +.ui-state-focus a, +.ui-state-focus a:hover, +.ui-state-focus a:link, +.ui-state-focus a:visited, +a.ui-button:hover, +a.ui-button:focus { + color: #212121; + text-decoration: none; +} + +.ui-visual-focus { + box-shadow: 0 0 3px 1px rgb(94, 158, 214); +} + +.ui-state-active, +.ui-widget-content .ui-state-active, +.ui-widget-header .ui-state-active, +a.ui-button:active, +.ui-button:active, +.ui-button.ui-state-active:hover { + border: 1px solid #aaaaaa; + background: #ffffff url("images/ui-bg_glass_65_ffffff_1x400.png") 50% 50% + repeat-x; + font-weight: normal; + color: #212121; +} + +.ui-icon-background, +.ui-state-active .ui-icon-background { + border: #aaaaaa; + background-color: #212121; +} + +.ui-state-active a, +.ui-state-active a:link, +.ui-state-active a:visited { + color: #212121; + text-decoration: none; +} + +/* Interaction Cues +----------------------------------*/ +.ui-state-highlight, +.ui-widget-content .ui-state-highlight, +.ui-widget-header .ui-state-highlight { + border: 1px solid #fcefa1; + background: #fbf9ee url("images/ui-bg_glass_55_fbf9ee_1x400.png") 50% 50% + repeat-x; + color: #363636; +} + +.ui-state-checked { + border: 1px solid #fcefa1; + background: #fbf9ee; +} + +.ui-state-highlight a, +.ui-widget-content .ui-state-highlight a, +.ui-widget-header .ui-state-highlight a { + color: #363636; +} + +.ui-state-error, +.ui-widget-content .ui-state-error, +.ui-widget-header .ui-state-error { + border: 1px solid #cd0a0a; + background: #fef1ec url("images/ui-bg_glass_95_fef1ec_1x400.png") 50% 50% + repeat-x; + color: #cd0a0a; +} + +.ui-state-error a, +.ui-widget-content .ui-state-error a, +.ui-widget-header .ui-state-error a { + color: #cd0a0a; +} + +.ui-state-error-text, +.ui-widget-content .ui-state-error-text, +.ui-widget-header .ui-state-error-text { + color: #cd0a0a; +} + +.ui-priority-primary, +.ui-widget-content .ui-priority-primary, +.ui-widget-header .ui-priority-primary { + font-weight: bold; +} + +.ui-priority-secondary, +.ui-widget-content .ui-priority-secondary, +.ui-widget-header .ui-priority-secondary { + opacity: 0.7; + filter: Alpha(Opacity=70); + /* support: IE8 */ + font-weight: normal; +} + +.ui-state-disabled, +.ui-widget-content .ui-state-disabled, +.ui-widget-header .ui-state-disabled { + opacity: 0.35; + filter: Alpha(Opacity=35); + /* support: IE8 */ + background-image: none; +} + +.ui-state-disabled .ui-icon { + filter: Alpha(Opacity=35); + /* support: IE8 - See #6059 */ +} + +/* Icons +----------------------------------*/ + +/* states and images */ +.ui-icon { + width: 16px; + height: 16px; +} + +.ui-icon, +.ui-widget-content .ui-icon { + background-image: url("images/ui-icons_222222_256x240.png"); +} + +.ui-widget-header .ui-icon { + background-image: url("images/ui-icons_222222_256x240.png"); +} + +.ui-state-hover .ui-icon, +.ui-state-focus .ui-icon, +.ui-button:hover .ui-icon, +.ui-button:focus .ui-icon { + background-image: url("images/ui-icons_454545_256x240.png"); +} + +.ui-state-active .ui-icon, +.ui-button:active .ui-icon { + background-image: url("images/ui-icons_454545_256x240.png"); +} + +.ui-state-highlight .ui-icon, +.ui-button .ui-state-highlight.ui-icon { + background-image: url("images/ui-icons_2e83ff_256x240.png"); +} + +.ui-state-error .ui-icon, +.ui-state-error-text .ui-icon { + background-image: url("images/ui-icons_cd0a0a_256x240.png"); +} + +.ui-button .ui-icon { + background-image: url("images/ui-icons_888888_256x240.png"); +} + +/* positioning */ +.ui-icon-blank { + background-position: right 16px top 16px; +} + +.ui-icon-caret-1-n { + background-position: 100% 0; +} + +.ui-icon-caret-1-ne { + background-position: right -16px top 0; +} + +.ui-icon-caret-1-e { + background-position: right -32px top 0; +} + +.ui-icon-caret-1-se { + background-position: right -48px top 0; +} + +.ui-icon-caret-1-s { + background-position: right -65px top 0; +} + +.ui-icon-caret-1-sw { + background-position: right -80px top 0; +} + +.ui-icon-caret-1-w { + background-position: right -96px top 0; +} + +.ui-icon-caret-1-nw { + background-position: right -112px top 0; +} + +.ui-icon-caret-2-n-s { + background-position: right -128px top 0; +} + +.ui-icon-caret-2-e-w { + background-position: right -144px top 0; +} + +.ui-icon-triangle-1-n { + background-position: 100% -16px; +} + +.ui-icon-triangle-1-ne { + background-position: right -16px top -16px; +} + +.ui-icon-triangle-1-e { + background-position: right -32px top -16px; +} + +.ui-icon-triangle-1-se { + background-position: right -48px top -16px; +} + +.ui-icon-triangle-1-s { + background-position: right -65px top -16px; +} + +.ui-icon-triangle-1-sw { + background-position: right -80px top -16px; +} + +.ui-icon-triangle-1-w { + background-position: right -96px top -16px; +} + +.ui-icon-triangle-1-nw { + background-position: right -112px top -16px; +} + +.ui-icon-triangle-2-n-s { + background-position: right -128px top -16px; +} + +.ui-icon-triangle-2-e-w { + background-position: right -144px top -16px; +} + +.ui-icon-arrow-1-n { + background-position: 100% -32px; +} + +.ui-icon-arrow-1-ne { + background-position: right -16px top -32px; +} + +.ui-icon-arrow-1-e { + background-position: right -32px top -32px; +} + +.ui-icon-arrow-1-se { + background-position: right -48px top -32px; +} + +.ui-icon-arrow-1-s { + background-position: right -65px top -32px; +} + +.ui-icon-arrow-1-sw { + background-position: right -80px top -32px; +} + +.ui-icon-arrow-1-w { + background-position: right -96px top -32px; +} + +.ui-icon-arrow-1-nw { + background-position: right -112px top -32px; +} + +.ui-icon-arrow-2-n-s { + background-position: right -128px top -32px; +} + +.ui-icon-arrow-2-ne-sw { + background-position: right -144px top -32px; +} + +.ui-icon-arrow-2-e-w { + background-position: right -160px top -32px; +} + +.ui-icon-arrow-2-se-nw { + background-position: right -176px top -32px; +} + +.ui-icon-arrowstop-1-n { + background-position: right -192px top -32px; +} + +.ui-icon-arrowstop-1-e { + background-position: right -208px top -32px; +} + +.ui-icon-arrowstop-1-s { + background-position: right -224px top -32px; +} + +.ui-icon-arrowstop-1-w { + background-position: right -240px top -32px; +} + +.ui-icon-arrowthick-1-n { + background-position: right 1px top -48px; +} + +.ui-icon-arrowthick-1-ne { + background-position: right -16px top -48px; +} + +.ui-icon-arrowthick-1-e { + background-position: right -32px top -48px; +} + +.ui-icon-arrowthick-1-se { + background-position: right -48px top -48px; +} + +.ui-icon-arrowthick-1-s { + background-position: right -64px top -48px; +} + +.ui-icon-arrowthick-1-sw { + background-position: right -80px top -48px; +} + +.ui-icon-arrowthick-1-w { + background-position: right -96px top -48px; +} + +.ui-icon-arrowthick-1-nw { + background-position: right -112px top -48px; +} + +.ui-icon-arrowthick-2-n-s { + background-position: right -128px top -48px; +} + +.ui-icon-arrowthick-2-ne-sw { + background-position: right -144px top -48px; +} + +.ui-icon-arrowthick-2-e-w { + background-position: right -160px top -48px; +} + +.ui-icon-arrowthick-2-se-nw { + background-position: right -176px top -48px; +} + +.ui-icon-arrowthickstop-1-n { + background-position: right -192px top -48px; +} + +.ui-icon-arrowthickstop-1-e { + background-position: right -208px top -48px; +} + +.ui-icon-arrowthickstop-1-s { + background-position: right -224px top -48px; +} + +.ui-icon-arrowthickstop-1-w { + background-position: right -240px top -48px; +} + +.ui-icon-arrowreturnthick-1-w { + background-position: 100% -64px; +} + +.ui-icon-arrowreturnthick-1-n { + background-position: right -16px top -64px; +} + +.ui-icon-arrowreturnthick-1-e { + background-position: right -32px top -64px; +} + +.ui-icon-arrowreturnthick-1-s { + background-position: right -48px top -64px; +} + +.ui-icon-arrowreturn-1-w { + background-position: right -64px top -64px; +} + +.ui-icon-arrowreturn-1-n { + background-position: right -80px top -64px; +} + +.ui-icon-arrowreturn-1-e { + background-position: right -96px top -64px; +} + +.ui-icon-arrowreturn-1-s { + background-position: right -112px top -64px; +} + +.ui-icon-arrowrefresh-1-w { + background-position: right -128px top -64px; +} + +.ui-icon-arrowrefresh-1-n { + background-position: right -144px top -64px; +} + +.ui-icon-arrowrefresh-1-e { + background-position: right -160px top -64px; +} + +.ui-icon-arrowrefresh-1-s { + background-position: right -176px top -64px; +} + +.ui-icon-arrow-4 { + background-position: 100% -80px; +} + +.ui-icon-arrow-4-diag { + background-position: right -16px top -80px; +} + +.ui-icon-extlink { + background-position: right -32px top -80px; +} + +.ui-icon-newwin { + background-position: right -48px top -80px; +} + +.ui-icon-refresh { + background-position: right -64px top -80px; +} + +.ui-icon-shuffle { + background-position: right -80px top -80px; +} + +.ui-icon-transfer-e-w { + background-position: right -96px top -80px; +} + +.ui-icon-transferthick-e-w { + background-position: right -112px top -80px; +} + +.ui-icon-folder-collapsed { + background-position: 100% -96px; +} + +.ui-icon-folder-open { + background-position: right -16px top -96px; +} + +.ui-icon-document { + background-position: right -32px top -96px; +} + +.ui-icon-document-b { + background-position: right -48px top -96px; +} + +.ui-icon-note { + background-position: right -64px top -96px; +} + +.ui-icon-mail-closed { + background-position: right -80px top -96px; +} + +.ui-icon-mail-open { + background-position: right -96px top -96px; +} + +.ui-icon-suitcase { + background-position: right -112px top -96px; +} + +.ui-icon-comment { + background-position: right -128px top -96px; +} + +.ui-icon-person { + background-position: right -144px top -96px; +} + +.ui-icon-print { + background-position: right -160px top -96px; +} + +.ui-icon-trash { + background-position: right -176px top -96px; +} + +.ui-icon-locked { + background-position: right -192px top -96px; +} + +.ui-icon-unlocked { + background-position: right -208px top -96px; +} + +.ui-icon-bookmark { + background-position: right -224px top -96px; +} + +.ui-icon-tag { + background-position: right -240px top -96px; +} + +.ui-icon-home { + background-position: 100% -112px; +} + +.ui-icon-flag { + background-position: right -16px top -112px; +} + +.ui-icon-calendar { + background-position: right -32px top -112px; +} + +.ui-icon-cart { + background-position: right -48px top -112px; +} + +.ui-icon-pencil { + background-position: right -64px top -112px; +} + +.ui-icon-clock { + background-position: right -80px top -112px; +} + +.ui-icon-disk { + background-position: right -96px top -112px; +} + +.ui-icon-calculator { + background-position: right -112px top -112px; +} + +.ui-icon-zoomin { + background-position: right -128px top -112px; +} + +.ui-icon-zoomout { + background-position: right -144px top -112px; +} + +.ui-icon-search { + background-position: right -160px top -112px; +} + +.ui-icon-wrench { + background-position: right -176px top -112px; +} + +.ui-icon-gear { + background-position: right -192px top -112px; +} + +.ui-icon-heart { + background-position: right -208px top -112px; +} + +.ui-icon-star { + background-position: right -224px top -112px; +} + +.ui-icon-link { + background-position: right -240px top -112px; +} + +.ui-icon-cancel { + background-position: 100% -128px; +} + +.ui-icon-plus { + background-position: right -16px top -128px; +} + +.ui-icon-plusthick { + background-position: right -32px top -128px; +} + +.ui-icon-minus { + background-position: right -48px top -128px; +} + +.ui-icon-minusthick { + background-position: right -64px top -128px; +} + +.ui-icon-close { + background-position: right -80px top -128px; +} + +.ui-icon-closethick { + background-position: right -96px top -128px; +} + +.ui-icon-key { + background-position: right -112px top -128px; +} + +.ui-icon-lightbulb { + background-position: right -128px top -128px; +} + +.ui-icon-scissors { + background-position: right -144px top -128px; +} + +.ui-icon-clipboard { + background-position: right -160px top -128px; +} + +.ui-icon-copy { + background-position: right -176px top -128px; +} + +.ui-icon-contact { + background-position: right -192px top -128px; +} + +.ui-icon-image { + background-position: right -208px top -128px; +} + +.ui-icon-video { + background-position: right -224px top -128px; +} + +.ui-icon-script { + background-position: right -240px top -128px; +} + +.ui-icon-alert { + background-position: 100% -144px; +} + +.ui-icon-info { + background-position: right -16px top -144px; +} + +.ui-icon-notice { + background-position: right -32px top -144px; +} + +.ui-icon-help { + background-position: right -48px top -144px; +} + +.ui-icon-check { + background-position: right -64px top -144px; +} + +.ui-icon-bullet { + background-position: right -80px top -144px; +} + +.ui-icon-radio-on { + background-position: right -96px top -144px; +} + +.ui-icon-radio-off { + background-position: right -112px top -144px; +} + +.ui-icon-pin-w { + background-position: right -128px top -144px; +} + +.ui-icon-pin-s { + background-position: right -144px top -144px; +} + +.ui-icon-play { + background-position: 100% -160px; +} + +.ui-icon-pause { + background-position: right -16px top -160px; +} + +.ui-icon-seek-next { + background-position: right -32px top -160px; +} + +.ui-icon-seek-prev { + background-position: right -48px top -160px; +} + +.ui-icon-seek-end { + background-position: right -64px top -160px; +} + +.ui-icon-seek-start { + background-position: right -80px top -160px; +} + +/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */ +.ui-icon-seek-first { + background-position: right -80px top -160px; +} + +.ui-icon-stop { + background-position: right -96px top -160px; +} + +.ui-icon-eject { + background-position: right -112px top -160px; +} + +.ui-icon-volume-off { + background-position: right -128px top -160px; +} + +.ui-icon-volume-on { + background-position: right -144px top -160px; +} + +.ui-icon-power { + background-position: 100% -176px; +} + +.ui-icon-signal-diag { + background-position: right -16px top -176px; +} + +.ui-icon-signal { + background-position: right -32px top -176px; +} + +.ui-icon-battery-0 { + background-position: right -48px top -176px; +} + +.ui-icon-battery-1 { + background-position: right -64px top -176px; +} + +.ui-icon-battery-2 { + background-position: right -80px top -176px; +} + +.ui-icon-battery-3 { + background-position: right -96px top -176px; +} + +.ui-icon-circle-plus { + background-position: 100% -192px; +} + +.ui-icon-circle-minus { + background-position: right -16px top -192px; +} + +.ui-icon-circle-close { + background-position: right -32px top -192px; +} + +.ui-icon-circle-triangle-e { + background-position: right -48px top -192px; +} + +.ui-icon-circle-triangle-s { + background-position: right -64px top -192px; +} + +.ui-icon-circle-triangle-w { + background-position: right -80px top -192px; +} + +.ui-icon-circle-triangle-n { + background-position: right -96px top -192px; +} + +.ui-icon-circle-arrow-e { + background-position: right -112px top -192px; +} + +.ui-icon-circle-arrow-s { + background-position: right -128px top -192px; +} + +.ui-icon-circle-arrow-w { + background-position: right -144px top -192px; +} + +.ui-icon-circle-arrow-n { + background-position: right -160px top -192px; +} + +.ui-icon-circle-zoomin { + background-position: right -176px top -192px; +} + +.ui-icon-circle-zoomout { + background-position: right -192px top -192px; +} + +.ui-icon-circle-check { + background-position: right -208px top -192px; +} + +.ui-icon-circlesmall-plus { + background-position: 100% -208px; +} + +.ui-icon-circlesmall-minus { + background-position: right -16px top -208px; +} + +.ui-icon-circlesmall-close { + background-position: right -32px top -208px; +} + +.ui-icon-squaresmall-plus { + background-position: right -48px top -208px; +} + +.ui-icon-squaresmall-minus { + background-position: right -64px top -208px; +} + +.ui-icon-squaresmall-close { + background-position: right -80px top -208px; +} + +.ui-icon-grip-dotted-vertical { + background-position: 100% -224px; +} + +.ui-icon-grip-dotted-horizontal { + background-position: right -16px top -224px; +} + +.ui-icon-grip-solid-vertical { + background-position: right -32px top -224px; +} + +.ui-icon-grip-solid-horizontal { + background-position: right -48px top -224px; +} + +.ui-icon-gripsmall-diagonal-se { + background-position: right -64px top -224px; +} + +.ui-icon-grip-diagonal-se { + background-position: right -80px top -224px; +} + +/* Misc visuals +----------------------------------*/ + +/* Corner radius */ +.ui-corner-all, +.ui-corner-top, +.ui-corner-left, +.ui-corner-tl { + border-top-right-radius: 4px; +} + +.ui-corner-all, +.ui-corner-top, +.ui-corner-right, +.ui-corner-tr { + border-top-left-radius: 4px; +} + +.ui-corner-all, +.ui-corner-bottom, +.ui-corner-left, +.ui-corner-bl { + border-bottom-right-radius: 4px; +} + +.ui-corner-all, +.ui-corner-bottom, +.ui-corner-right, +.ui-corner-br { + border-bottom-left-radius: 4px; +} + +/* Overlays */ +.ui-widget-overlay { + background: #aaaaaa; + opacity: 0.3; + filter: Alpha(Opacity=30); + /* support: IE8 */ +} + +.ui-widget-shadow { + -webkit-box-shadow: 8px -8px 8px #aaaaaa; + box-shadow: 8px -8px 8px #aaaaaa; +} + +/* Buttons +----------------------------------*/ +a.bsearch_button { + padding: 10px; + text-decoration: none; + text-shadow: none; + border-radius: 3px; + transition: all 0.3s ease 0s; + margin-left: 10px; + display: inline-block; +} + +a.bsearch_button:hover { + box-shadow: -3px 3px 10px #666; +} + +a.bsearch_button.bsearch_button_green { + color: #fff; + background: #008000; + border: 1px solid #003400; +} + +a.bsearch_button.bsearch_button_green:hover { + color: #fff; + background: #006400; +} + +a.bsearch_button.bsearch_button_red { + color: #fff; + background: #d63638; + border: 1px solid #b92c2e; +} + +a.bsearch_button.bsearch_button_red:hover { + color: #fff; + background: #b92c2e; +} + +a.bsearch_button.bsearch_button_blue { + color: #fff; + background: #032075; + border: 1px solid #001f5b; +} + +a.bsearch_button.bsearch_button_blue:hover { + color: #fff; + background: #001f5b; +} + +a.bsearch_button.bsearch_button_gold { + color: #000; + background: #ffbd59; + border: 1px solid #ffa500; +} + +a.bsearch_button.bsearch_button_gold:hover { + color: #000; + background: #ffa500; +} + +/* Custom Tables */ +#bsearch-start-reindex.loading.initial-loading { + cursor: not-allowed; + pointer-events: none; +} + +#bsearch-start-reindex.loading:after, +.bsearch-reindex-progress.loading:after { + content: ""; + display: inline-flex; + width: 1em; + height: 1em; + border: 3px solid var(--wp-admin-theme-color, #ffffff); + border-top-color: var(--wp-admin-theme-color-darker-20, #333333); + border-left-color: var(--wp-admin-theme-color-darker-20, #333333); + border-radius: 50%; + animation: spin 2s linear infinite; + -webkit-animation: spin 2s linear infinite; + transform-origin: center center; + vertical-align: middle; + box-sizing: border-box; + margin-right: 0.5em; +} + +@keyframes spin { + from { + transform: rotate(0deg); + } + + to { + transform: rotate(-360deg); + } +} + +@-webkit-keyframes spin { + from { + -webkit-transform: rotate(0deg); + } + + to { + -webkit-transform: rotate(-360deg); + } +} + +/* Multisite Site Selection Table */ +.bsearch-site-selection table { + margin-top: 10px; +} + +.bsearch-index-status { + position: relative; + width: 100%; + height: 24px; + background: #f0f0f0; + border-radius: 4px; + overflow: hidden; +} + +.bsearch-index-bar { + height: 100%; + transition: width 0.4s ease; +} + +.bsearch-index-status span { + position: absolute; + top: 0; + right: 0; + left: 0; + bottom: 0; + text-align: center; + line-height: 24px; + font-weight: bold; + color: #000; + text-shadow: 0 0 2px rgba(255, 255, 255, 0.8); +} + +/* Reindex Status Styling */ +#bsearch-reindex-status { + margin: 10px 0; + padding: 10px 12px; + border-radius: 4px; + font-size: 14px; + line-height: 1.5; + border-right: 4px solid #72aee6; + background-color: #f6f7f7; + color: #000; + transition: all 0.3s ease; +} + +/* Success state - green with high contrast */ +#bsearch-reindex-status.success { + border-right-color: #00843c; + background-color: #e6f6ed; + color: #095228; +} + +/* Error state - red with high contrast */ +#bsearch-reindex-status.error { + border-right-color: #b91c1c; + background-color: #fce8e8; + color: #7f1d1d; +} + +/* Preparing state - blue with animation */ +#bsearch-reindex-status.preparing { + border-right-color: #2271b1; + background-color: #f0f6fc; + color: #135e96; +} + +/* Progress bar animation */ +@keyframes progress-bar-stripes { + from { + background-position: right 40px top 0; + } + + to { + background-position: 100% 0; + } +} + +/* Hover and focus states for better accessibility */ +#bsearch-reindex-status:hover, +#bsearch-reindex-status:focus { + box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.1); +} + +/* Reindex Progress Bar */ +#bsearch-reindex-progress-container { + display: none; + margin-top: 10px; +} + +#bsearch-reindex-progress-container.active { + display: block; +} + +.bsearch-progress-bar-wrapper { + background: #e5e5e5; + height: 25px; + position: relative; + border-radius: 3px; + overflow: hidden; +} + +#bsearch-progress-bar { + background: #2271b1; + height: 100%; + transition: width 0.3s ease-in-out; + border-radius: 3px; +} + +#bsearch-progress-bar.preparing { + background-image: linear-gradient( + -45deg, + rgba(255, 255, 255, 0.15) 25%, + transparent 25%, + transparent 50%, + rgba(255, 255, 255, 0.15) 50%, + rgba(255, 255, 255, 0.15) 75%, + transparent 75%, + transparent + ); + background-size: 40px 40px; + animation: progress-bar-stripes 2s linear infinite; +} + +#bsearch-progress-text { + position: absolute; + right: 0; + left: 0; + top: 0; + bottom: 0; + color: #fff; + text-align: center; + line-height: 25px; + font-weight: bold; + text-shadow: 0 1px 1px rgba(0, 0, 0, 0.4); +} + +@media screen and (max-width: 782px) { + .bsearch-site-selection table th, + .bsearch-site-selection table td { + padding: 8px 10px; + } +} + +/* Copy to clipboard button */ +.bsearch-code-wrapper { + position: relative; +} + +.bsearch-code-wrapper pre { + margin: 0; + white-space: pre-wrap; +} + +.bsearch-code-wrapper code { + display: block; +} + +.bsearch-copy-button { + position: absolute; + top: 1px; + left: 1px; + background: none; + border: none; + padding: 4px; + cursor: pointer; + color: #2271b1; + transition: color 0.1s ease-in-out; +} + +.bsearch-copy-button:hover { + color: #135e96; +} + +.bsearch-copy-button.copied { + color: #00a32a; +} diff --git a/includes/admin/css/better-search-admin-rtl.min.css b/includes/admin/css/better-search-admin-rtl.min.css new file mode 100644 index 0000000..b6efd98 --- /dev/null +++ b/includes/admin/css/better-search-admin-rtl.min.css @@ -0,0 +1,5 @@ +/*! jQuery UI - v1.12.1 - 2019-02-05 +* http://jqueryui.com +* Includes: core.css, datepicker.css, theme.css +* To view and modify this theme, visit http://jqueryui.com/themeroller/?scope=&folderName=smoothness&cornerRadiusShadow=8px&offsetLeftShadow=-8px&offsetTopShadow=-8px&thicknessShadow=8px&opacityShadow=30&bgImgOpacityShadow=0&bgTextureShadow=flat&bgColorShadow=aaaaaa&opacityOverlay=30&bgImgOpacityOverlay=0&bgTextureOverlay=flat&bgColorOverlay=aaaaaa&iconColorError=cd0a0a&fcError=cd0a0a&borderColorError=cd0a0a&bgImgOpacityError=95&bgTextureError=glass&bgColorError=fef1ec&iconColorHighlight=2e83ff&fcHighlight=363636&borderColorHighlight=fcefa1&bgImgOpacityHighlight=55&bgTextureHighlight=glass&bgColorHighlight=fbf9ee&iconColorActive=454545&fcActive=212121&borderColorActive=aaaaaa&bgImgOpacityActive=65&bgTextureActive=glass&bgColorActive=ffffff&iconColorHover=454545&fcHover=212121&borderColorHover=999999&bgImgOpacityHover=75&bgTextureHover=glass&bgColorHover=dadada&iconColorDefault=888888&fcDefault=555555&borderColorDefault=d3d3d3&bgImgOpacityDefault=75&bgTextureDefault=glass&bgColorDefault=e6e6e6&iconColorContent=222222&fcContent=222222&borderColorContent=aaaaaa&bgImgOpacityContent=75&bgTextureContent=flat&bgColorContent=ffffff&iconColorHeader=222222&fcHeader=222222&borderColorHeader=aaaaaa&bgImgOpacityHeader=75&bgTextureHeader=highlight_soft&bgColorHeader=cccccc&cornerRadius=4px&fsDefault=1.1em&fwDefault=normal&ffDefault=Verdana%2CArial%2Csans-serif +* Copyright jQuery Foundation and other contributors; Licensed MIT */.ui-helper-hidden{display:none}.ui-helper-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none}.ui-helper-clearfix:after,.ui-helper-clearfix:before{content:"";display:table;border-collapse:collapse}.ui-helper-clearfix:after{clear:both}.ui-helper-zfix{width:100%;height:100%;top:0;right:0;position:absolute;opacity:0;filter:Alpha(Opacity=0)}.ui-front{z-index:100}.ui-state-disabled{cursor:default!important;pointer-events:none}.ui-icon{display:inline-block;vertical-align:middle;margin-top:-.25em;position:relative;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat}.ui-widget-icon-block{right:50%;margin-right:-8px;display:block}.ui-widget-overlay{position:fixed;top:0;right:0;width:100%;height:100%}.ui-datepicker{width:17em;padding:.2em .2em 0;display:none}.ui-datepicker .ui-datepicker-header{position:relative;padding:.2em 0}.ui-datepicker .ui-datepicker-next,.ui-datepicker .ui-datepicker-prev{position:absolute;top:2px;width:1.8em;height:1.8em}.ui-datepicker .ui-datepicker-next-hover,.ui-datepicker .ui-datepicker-prev-hover{top:1px}.ui-datepicker .ui-datepicker-prev{right:2px}.ui-datepicker .ui-datepicker-next{left:2px}.ui-datepicker .ui-datepicker-prev-hover{right:1px}.ui-datepicker .ui-datepicker-next-hover{left:1px}.ui-datepicker .ui-datepicker-next span,.ui-datepicker .ui-datepicker-prev span{display:block;position:absolute;right:50%;margin-right:-8px;top:50%;margin-top:-8px}.ui-datepicker .ui-datepicker-title{margin:0 2.3em;line-height:1.8em;text-align:center}.ui-datepicker .ui-datepicker-title select{font-size:1em;margin:1px 0}.ui-datepicker select.ui-datepicker-month,.ui-datepicker select.ui-datepicker-year{width:45%}.ui-datepicker table{width:100%;font-size:.9em;border-collapse:collapse;margin:0 0 .4em}.ui-datepicker th{padding:.7em .3em;text-align:center;font-weight:700;border:0}.ui-datepicker td{border:0;padding:1px}.ui-datepicker td a,.ui-datepicker td span{display:block;padding:.2em;text-align:left;text-decoration:none}.ui-datepicker .ui-datepicker-buttonpane{background-image:none;margin:.7em 0 0 0;padding:0 .2em;border-right:0;border-left:0;border-bottom:0}.ui-datepicker .ui-datepicker-buttonpane button{float:left;margin:.5em .2em .4em;cursor:pointer;padding:.2em .6em .3em .6em;width:auto;overflow:visible}.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current{float:right}.ui-datepicker.ui-datepicker-multi{width:auto}.ui-datepicker-multi .ui-datepicker-group{float:right}.ui-datepicker-multi .ui-datepicker-group table{width:95%;margin:0 auto .4em}.ui-datepicker-multi-2 .ui-datepicker-group{width:50%}.ui-datepicker-multi-3 .ui-datepicker-group{width:33.3%}.ui-datepicker-multi-4 .ui-datepicker-group{width:25%}.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header,.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header{border-right-width:0}.ui-datepicker-multi .ui-datepicker-buttonpane{clear:right}.ui-datepicker-row-break{clear:both;width:100%;font-size:0}.ui-datepicker-rtl{direction:ltr}.ui-datepicker-rtl .ui-datepicker-prev{left:2px;right:auto}.ui-datepicker-rtl .ui-datepicker-next{right:2px;left:auto}.ui-datepicker-rtl .ui-datepicker-prev:hover{left:1px;right:auto}.ui-datepicker-rtl .ui-datepicker-next:hover{right:1px;left:auto}.ui-datepicker-rtl .ui-datepicker-buttonpane{clear:left}.ui-datepicker-rtl .ui-datepicker-buttonpane button{float:right}.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current,.ui-datepicker-rtl .ui-datepicker-group{float:left}.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header,.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header{border-left-width:0;border-right-width:1px}.ui-datepicker .ui-icon{display:block;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat;right:.5em;top:.3em}.ui-datepicker{border:1px solid #aaa;background:#fff;color:#222}.ui-datepicker a{color:#222}.ui-button,.ui-state-default,.ui-widget-content .ui-state-default,.ui-widget-header .ui-state-default,html .ui-button.ui-state-disabled:active,html .ui-button.ui-state-disabled:hover{border:1px solid #d3d3d3;background:#e6e6e6 url("images/ui-bg_glass_75_e6e6e6_1x400.png") 50% 50% repeat-x;font-weight:400;color:#555}.ui-button,.ui-state-default a,.ui-state-default a:link,.ui-state-default a:visited,a.ui-button,a:link.ui-button,a:visited.ui-button{color:#555;text-decoration:none}.ui-button:focus,.ui-button:hover,.ui-state-focus,.ui-state-hover,.ui-widget-content .ui-state-focus,.ui-widget-content .ui-state-hover,.ui-widget-header .ui-state-focus,.ui-widget-header .ui-state-hover{border:1px solid #999;background:#dadada url("images/ui-bg_glass_75_dadada_1x400.png") 50% 50% repeat-x;font-weight:400;color:#212121}.ui-state-focus a,.ui-state-focus a:hover,.ui-state-focus a:link,.ui-state-focus a:visited,.ui-state-hover a,.ui-state-hover a:hover,.ui-state-hover a:link,.ui-state-hover a:visited,a.ui-button:focus,a.ui-button:hover{color:#212121;text-decoration:none}.ui-visual-focus{box-shadow:0 0 3px 1px #5e9ed6}.ui-button.ui-state-active:hover,.ui-button:active,.ui-state-active,.ui-widget-content .ui-state-active,.ui-widget-header .ui-state-active,a.ui-button:active{border:1px solid #aaa;background:#fff url("images/ui-bg_glass_65_ffffff_1x400.png") 50% 50% repeat-x;font-weight:400;color:#212121}.ui-icon-background,.ui-state-active .ui-icon-background{border:#aaa;background-color:#212121}.ui-state-active a,.ui-state-active a:link,.ui-state-active a:visited{color:#212121;text-decoration:none}.ui-state-highlight,.ui-widget-content .ui-state-highlight,.ui-widget-header .ui-state-highlight{border:1px solid #fcefa1;background:#fbf9ee url("images/ui-bg_glass_55_fbf9ee_1x400.png") 50% 50% repeat-x;color:#363636}.ui-state-checked{border:1px solid #fcefa1;background:#fbf9ee}.ui-state-highlight a,.ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a{color:#363636}.ui-state-error,.ui-widget-content .ui-state-error,.ui-widget-header .ui-state-error{border:1px solid #cd0a0a;background:#fef1ec url("images/ui-bg_glass_95_fef1ec_1x400.png") 50% 50% repeat-x;color:#cd0a0a}.ui-state-error a,.ui-widget-content .ui-state-error a,.ui-widget-header .ui-state-error a{color:#cd0a0a}.ui-state-error-text,.ui-widget-content .ui-state-error-text,.ui-widget-header .ui-state-error-text{color:#cd0a0a}.ui-priority-primary,.ui-widget-content .ui-priority-primary,.ui-widget-header .ui-priority-primary{font-weight:700}.ui-priority-secondary,.ui-widget-content .ui-priority-secondary,.ui-widget-header .ui-priority-secondary{opacity:.7;filter:Alpha(Opacity=70);font-weight:400}.ui-state-disabled,.ui-widget-content .ui-state-disabled,.ui-widget-header .ui-state-disabled{opacity:.35;filter:Alpha(Opacity=35);background-image:none}.ui-state-disabled .ui-icon{filter:Alpha(Opacity=35)}.ui-icon{width:16px;height:16px}.ui-icon,.ui-widget-content .ui-icon{background-image:url("images/ui-icons_222222_256x240.png")}.ui-widget-header .ui-icon{background-image:url("images/ui-icons_222222_256x240.png")}.ui-button:focus .ui-icon,.ui-button:hover .ui-icon,.ui-state-focus .ui-icon,.ui-state-hover .ui-icon{background-image:url("images/ui-icons_454545_256x240.png")}.ui-button:active .ui-icon,.ui-state-active .ui-icon{background-image:url("images/ui-icons_454545_256x240.png")}.ui-button .ui-state-highlight.ui-icon,.ui-state-highlight .ui-icon{background-image:url("images/ui-icons_2e83ff_256x240.png")}.ui-state-error .ui-icon,.ui-state-error-text .ui-icon{background-image:url("images/ui-icons_cd0a0a_256x240.png")}.ui-button .ui-icon{background-image:url("images/ui-icons_888888_256x240.png")}.ui-icon-blank{background-position:right 16px top 16px}.ui-icon-caret-1-n{background-position:100% 0}.ui-icon-caret-1-ne{background-position:right -16px top 0}.ui-icon-caret-1-e{background-position:right -32px top 0}.ui-icon-caret-1-se{background-position:right -48px top 0}.ui-icon-caret-1-s{background-position:right -65px top 0}.ui-icon-caret-1-sw{background-position:right -80px top 0}.ui-icon-caret-1-w{background-position:right -96px top 0}.ui-icon-caret-1-nw{background-position:right -112px top 0}.ui-icon-caret-2-n-s{background-position:right -128px top 0}.ui-icon-caret-2-e-w{background-position:right -144px top 0}.ui-icon-triangle-1-n{background-position:100% -16px}.ui-icon-triangle-1-ne{background-position:right -16px top -16px}.ui-icon-triangle-1-e{background-position:right -32px top -16px}.ui-icon-triangle-1-se{background-position:right -48px top -16px}.ui-icon-triangle-1-s{background-position:right -65px top -16px}.ui-icon-triangle-1-sw{background-position:right -80px top -16px}.ui-icon-triangle-1-w{background-position:right -96px top -16px}.ui-icon-triangle-1-nw{background-position:right -112px top -16px}.ui-icon-triangle-2-n-s{background-position:right -128px top -16px}.ui-icon-triangle-2-e-w{background-position:right -144px top -16px}.ui-icon-arrow-1-n{background-position:100% -32px}.ui-icon-arrow-1-ne{background-position:right -16px top -32px}.ui-icon-arrow-1-e{background-position:right -32px top -32px}.ui-icon-arrow-1-se{background-position:right -48px top -32px}.ui-icon-arrow-1-s{background-position:right -65px top -32px}.ui-icon-arrow-1-sw{background-position:right -80px top -32px}.ui-icon-arrow-1-w{background-position:right -96px top -32px}.ui-icon-arrow-1-nw{background-position:right -112px top -32px}.ui-icon-arrow-2-n-s{background-position:right -128px top -32px}.ui-icon-arrow-2-ne-sw{background-position:right -144px top -32px}.ui-icon-arrow-2-e-w{background-position:right -160px top -32px}.ui-icon-arrow-2-se-nw{background-position:right -176px top -32px}.ui-icon-arrowstop-1-n{background-position:right -192px top -32px}.ui-icon-arrowstop-1-e{background-position:right -208px top -32px}.ui-icon-arrowstop-1-s{background-position:right -224px top -32px}.ui-icon-arrowstop-1-w{background-position:right -240px top -32px}.ui-icon-arrowthick-1-n{background-position:right 1px top -48px}.ui-icon-arrowthick-1-ne{background-position:right -16px top -48px}.ui-icon-arrowthick-1-e{background-position:right -32px top -48px}.ui-icon-arrowthick-1-se{background-position:right -48px top -48px}.ui-icon-arrowthick-1-s{background-position:right -64px top -48px}.ui-icon-arrowthick-1-sw{background-position:right -80px top -48px}.ui-icon-arrowthick-1-w{background-position:right -96px top -48px}.ui-icon-arrowthick-1-nw{background-position:right -112px top -48px}.ui-icon-arrowthick-2-n-s{background-position:right -128px top -48px}.ui-icon-arrowthick-2-ne-sw{background-position:right -144px top -48px}.ui-icon-arrowthick-2-e-w{background-position:right -160px top -48px}.ui-icon-arrowthick-2-se-nw{background-position:right -176px top -48px}.ui-icon-arrowthickstop-1-n{background-position:right -192px top -48px}.ui-icon-arrowthickstop-1-e{background-position:right -208px top -48px}.ui-icon-arrowthickstop-1-s{background-position:right -224px top -48px}.ui-icon-arrowthickstop-1-w{background-position:right -240px top -48px}.ui-icon-arrowreturnthick-1-w{background-position:100% -64px}.ui-icon-arrowreturnthick-1-n{background-position:right -16px top -64px}.ui-icon-arrowreturnthick-1-e{background-position:right -32px top -64px}.ui-icon-arrowreturnthick-1-s{background-position:right -48px top -64px}.ui-icon-arrowreturn-1-w{background-position:right -64px top -64px}.ui-icon-arrowreturn-1-n{background-position:right -80px top -64px}.ui-icon-arrowreturn-1-e{background-position:right -96px top -64px}.ui-icon-arrowreturn-1-s{background-position:right -112px top -64px}.ui-icon-arrowrefresh-1-w{background-position:right -128px top -64px}.ui-icon-arrowrefresh-1-n{background-position:right -144px top -64px}.ui-icon-arrowrefresh-1-e{background-position:right -160px top -64px}.ui-icon-arrowrefresh-1-s{background-position:right -176px top -64px}.ui-icon-arrow-4{background-position:100% -80px}.ui-icon-arrow-4-diag{background-position:right -16px top -80px}.ui-icon-extlink{background-position:right -32px top -80px}.ui-icon-newwin{background-position:right -48px top -80px}.ui-icon-refresh{background-position:right -64px top -80px}.ui-icon-shuffle{background-position:right -80px top -80px}.ui-icon-transfer-e-w{background-position:right -96px top -80px}.ui-icon-transferthick-e-w{background-position:right -112px top -80px}.ui-icon-folder-collapsed{background-position:100% -96px}.ui-icon-folder-open{background-position:right -16px top -96px}.ui-icon-document{background-position:right -32px top -96px}.ui-icon-document-b{background-position:right -48px top -96px}.ui-icon-note{background-position:right -64px top -96px}.ui-icon-mail-closed{background-position:right -80px top -96px}.ui-icon-mail-open{background-position:right -96px top -96px}.ui-icon-suitcase{background-position:right -112px top -96px}.ui-icon-comment{background-position:right -128px top -96px}.ui-icon-person{background-position:right -144px top -96px}.ui-icon-print{background-position:right -160px top -96px}.ui-icon-trash{background-position:right -176px top -96px}.ui-icon-locked{background-position:right -192px top -96px}.ui-icon-unlocked{background-position:right -208px top -96px}.ui-icon-bookmark{background-position:right -224px top -96px}.ui-icon-tag{background-position:right -240px top -96px}.ui-icon-home{background-position:100% -112px}.ui-icon-flag{background-position:right -16px top -112px}.ui-icon-calendar{background-position:right -32px top -112px}.ui-icon-cart{background-position:right -48px top -112px}.ui-icon-pencil{background-position:right -64px top -112px}.ui-icon-clock{background-position:right -80px top -112px}.ui-icon-disk{background-position:right -96px top -112px}.ui-icon-calculator{background-position:right -112px top -112px}.ui-icon-zoomin{background-position:right -128px top -112px}.ui-icon-zoomout{background-position:right -144px top -112px}.ui-icon-search{background-position:right -160px top -112px}.ui-icon-wrench{background-position:right -176px top -112px}.ui-icon-gear{background-position:right -192px top -112px}.ui-icon-heart{background-position:right -208px top -112px}.ui-icon-star{background-position:right -224px top -112px}.ui-icon-link{background-position:right -240px top -112px}.ui-icon-cancel{background-position:100% -128px}.ui-icon-plus{background-position:right -16px top -128px}.ui-icon-plusthick{background-position:right -32px top -128px}.ui-icon-minus{background-position:right -48px top -128px}.ui-icon-minusthick{background-position:right -64px top -128px}.ui-icon-close{background-position:right -80px top -128px}.ui-icon-closethick{background-position:right -96px top -128px}.ui-icon-key{background-position:right -112px top -128px}.ui-icon-lightbulb{background-position:right -128px top -128px}.ui-icon-scissors{background-position:right -144px top -128px}.ui-icon-clipboard{background-position:right -160px top -128px}.ui-icon-copy{background-position:right -176px top -128px}.ui-icon-contact{background-position:right -192px top -128px}.ui-icon-image{background-position:right -208px top -128px}.ui-icon-video{background-position:right -224px top -128px}.ui-icon-script{background-position:right -240px top -128px}.ui-icon-alert{background-position:100% -144px}.ui-icon-info{background-position:right -16px top -144px}.ui-icon-notice{background-position:right -32px top -144px}.ui-icon-help{background-position:right -48px top -144px}.ui-icon-check{background-position:right -64px top -144px}.ui-icon-bullet{background-position:right -80px top -144px}.ui-icon-radio-on{background-position:right -96px top -144px}.ui-icon-radio-off{background-position:right -112px top -144px}.ui-icon-pin-w{background-position:right -128px top -144px}.ui-icon-pin-s{background-position:right -144px top -144px}.ui-icon-play{background-position:100% -160px}.ui-icon-pause{background-position:right -16px top -160px}.ui-icon-seek-next{background-position:right -32px top -160px}.ui-icon-seek-prev{background-position:right -48px top -160px}.ui-icon-seek-end{background-position:right -64px top -160px}.ui-icon-seek-start{background-position:right -80px top -160px}.ui-icon-seek-first{background-position:right -80px top -160px}.ui-icon-stop{background-position:right -96px top -160px}.ui-icon-eject{background-position:right -112px top -160px}.ui-icon-volume-off{background-position:right -128px top -160px}.ui-icon-volume-on{background-position:right -144px top -160px}.ui-icon-power{background-position:100% -176px}.ui-icon-signal-diag{background-position:right -16px top -176px}.ui-icon-signal{background-position:right -32px top -176px}.ui-icon-battery-0{background-position:right -48px top -176px}.ui-icon-battery-1{background-position:right -64px top -176px}.ui-icon-battery-2{background-position:right -80px top -176px}.ui-icon-battery-3{background-position:right -96px top -176px}.ui-icon-circle-plus{background-position:100% -192px}.ui-icon-circle-minus{background-position:right -16px top -192px}.ui-icon-circle-close{background-position:right -32px top -192px}.ui-icon-circle-triangle-e{background-position:right -48px top -192px}.ui-icon-circle-triangle-s{background-position:right -64px top -192px}.ui-icon-circle-triangle-w{background-position:right -80px top -192px}.ui-icon-circle-triangle-n{background-position:right -96px top -192px}.ui-icon-circle-arrow-e{background-position:right -112px top -192px}.ui-icon-circle-arrow-s{background-position:right -128px top -192px}.ui-icon-circle-arrow-w{background-position:right -144px top -192px}.ui-icon-circle-arrow-n{background-position:right -160px top -192px}.ui-icon-circle-zoomin{background-position:right -176px top -192px}.ui-icon-circle-zoomout{background-position:right -192px top -192px}.ui-icon-circle-check{background-position:right -208px top -192px}.ui-icon-circlesmall-plus{background-position:100% -208px}.ui-icon-circlesmall-minus{background-position:right -16px top -208px}.ui-icon-circlesmall-close{background-position:right -32px top -208px}.ui-icon-squaresmall-plus{background-position:right -48px top -208px}.ui-icon-squaresmall-minus{background-position:right -64px top -208px}.ui-icon-squaresmall-close{background-position:right -80px top -208px}.ui-icon-grip-dotted-vertical{background-position:100% -224px}.ui-icon-grip-dotted-horizontal{background-position:right -16px top -224px}.ui-icon-grip-solid-vertical{background-position:right -32px top -224px}.ui-icon-grip-solid-horizontal{background-position:right -48px top -224px}.ui-icon-gripsmall-diagonal-se{background-position:right -64px top -224px}.ui-icon-grip-diagonal-se{background-position:right -80px top -224px}.ui-corner-all,.ui-corner-left,.ui-corner-tl,.ui-corner-top{border-top-right-radius:4px}.ui-corner-all,.ui-corner-right,.ui-corner-top,.ui-corner-tr{border-top-left-radius:4px}.ui-corner-all,.ui-corner-bl,.ui-corner-bottom,.ui-corner-left{border-bottom-right-radius:4px}.ui-corner-all,.ui-corner-bottom,.ui-corner-br,.ui-corner-right{border-bottom-left-radius:4px}.ui-widget-overlay{background:#aaa;opacity:.3;filter:Alpha(Opacity=30)}.ui-widget-shadow{-webkit-box-shadow:8px -8px 8px #aaa;box-shadow:8px -8px 8px #aaa}a.bsearch_button{padding:10px;text-decoration:none;text-shadow:none;border-radius:3px;transition:all .3s ease 0s;margin-left:10px;display:inline-block}a.bsearch_button:hover{box-shadow:-3px 3px 10px #666}a.bsearch_button.bsearch_button_green{color:#fff;background:green;border:1px solid #003400}a.bsearch_button.bsearch_button_green:hover{color:#fff;background:#006400}a.bsearch_button.bsearch_button_red{color:#fff;background:#d63638;border:1px solid #b92c2e}a.bsearch_button.bsearch_button_red:hover{color:#fff;background:#b92c2e}a.bsearch_button.bsearch_button_blue{color:#fff;background:#032075;border:1px solid #001f5b}a.bsearch_button.bsearch_button_blue:hover{color:#fff;background:#001f5b}a.bsearch_button.bsearch_button_gold{color:#000;background:#ffbd59;border:1px solid orange}a.bsearch_button.bsearch_button_gold:hover{color:#000;background:orange}#bsearch-start-reindex.loading.initial-loading{cursor:not-allowed;pointer-events:none}#bsearch-start-reindex.loading:after,.bsearch-reindex-progress.loading:after{content:'';display:inline-flex;width:1em;height:1em;border:3px solid var(--wp-admin-theme-color,#fff);border-top-color:var(--wp-admin-theme-color-darker-20,#333);border-left-color:var(--wp-admin-theme-color-darker-20,#333);border-radius:50%;animation:spin 2s linear infinite;-webkit-animation:spin 2s linear infinite;transform-origin:center center;vertical-align:middle;box-sizing:border-box;margin-right:.5em}@keyframes spin{from{transform:rotate(0)}to{transform:rotate(-360deg)}}@-webkit-keyframes spin{from{-webkit-transform:rotate(0)}to{-webkit-transform:rotate(-360deg)}}.bsearch-site-selection table{margin-top:10px}.bsearch-index-status{position:relative;width:100%;height:24px;background:#f0f0f0;border-radius:4px;overflow:hidden}.bsearch-index-bar{height:100%;transition:width .4s ease}.bsearch-index-status span{position:absolute;top:0;right:0;left:0;bottom:0;text-align:center;line-height:24px;font-weight:700;color:#000;text-shadow:0 0 2px rgba(255,255,255,.8)}#bsearch-reindex-status{margin:10px 0;padding:10px 12px;border-radius:4px;font-size:14px;line-height:1.5;border-right:4px solid #72aee6;background-color:#f6f7f7;color:#000;transition:all .3s ease}#bsearch-reindex-status.success{border-right-color:#00843c;background-color:#e6f6ed;color:#095228}#bsearch-reindex-status.error{border-right-color:#b91c1c;background-color:#fce8e8;color:#7f1d1d}#bsearch-reindex-status.preparing{border-right-color:#2271b1;background-color:#f0f6fc;color:#135e96}@keyframes progress-bar-stripes{from{background-position:right 40px top 0}to{background-position:100% 0}}#bsearch-reindex-status:focus,#bsearch-reindex-status:hover{box-shadow:0 0 0 1px rgba(0,0,0,.1)}#bsearch-reindex-progress-container{display:none;margin-top:10px}#bsearch-reindex-progress-container.active{display:block}.bsearch-progress-bar-wrapper{background:#e5e5e5;height:25px;position:relative;border-radius:3px;overflow:hidden}#bsearch-progress-bar{background:#2271b1;height:100%;transition:width .3s ease-in-out;border-radius:3px}#bsearch-progress-bar.preparing{background-image:linear-gradient(-45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:40px 40px;animation:progress-bar-stripes 2s linear infinite}#bsearch-progress-text{position:absolute;right:0;left:0;top:0;bottom:0;color:#fff;text-align:center;line-height:25px;font-weight:700;text-shadow:0 1px 1px rgba(0,0,0,.4)}@media screen and (max-width:782px){.bsearch-site-selection table td,.bsearch-site-selection table th{padding:8px 10px}}.bsearch-code-wrapper{position:relative}.bsearch-code-wrapper pre{margin:0;white-space:pre-wrap}.bsearch-code-wrapper code{display:block}.bsearch-copy-button{position:absolute;top:1px;left:1px;background:100% 0;border:none;padding:4px;cursor:pointer;color:#2271b1;transition:color .1s ease-in-out}.bsearch-copy-button:hover{color:#135e96}.bsearch-copy-button.copied{color:#00a32a} \ No newline at end of file diff --git a/includes/admin/css/better-search-admin.min.css b/includes/admin/css/better-search-admin.min.css index e1d65bc..0fa95e4 100644 --- a/includes/admin/css/better-search-admin.min.css +++ b/includes/admin/css/better-search-admin.min.css @@ -1 +1,5 @@ -.ui-helper-hidden{display:none;}.ui-helper-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none;}.ui-helper-clearfix:before,.ui-helper-clearfix:after{content:"";display:table;border-collapse:collapse;}.ui-helper-clearfix:after{clear:both;}.ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0)}.ui-front{z-index:100;}.ui-state-disabled{cursor:default!important;pointer-events:none;}.ui-icon{display:inline-block;vertical-align:middle;margin-top:-.25em;position:relative;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat;}.ui-widget-icon-block{left:50%;margin-left:-8px;display:block;}.ui-widget-overlay{position:fixed;top:0;left:0;width:100%;height:100%;}.ui-datepicker{width:17em;padding:.2em .2em 0;display:none;}.ui-datepicker .ui-datepicker-header{position:relative;padding:.2em 0;}.ui-datepicker .ui-datepicker-prev,.ui-datepicker .ui-datepicker-next{position:absolute;top:2px;width:1.8em;height:1.8em;}.ui-datepicker .ui-datepicker-prev-hover,.ui-datepicker .ui-datepicker-next-hover{top:1px;}.ui-datepicker .ui-datepicker-prev{left:2px;}.ui-datepicker .ui-datepicker-next{right:2px;}.ui-datepicker .ui-datepicker-prev-hover{left:1px;}.ui-datepicker .ui-datepicker-next-hover{right:1px;}.ui-datepicker .ui-datepicker-prev span,.ui-datepicker .ui-datepicker-next span{display:block;position:absolute;left:50%;margin-left:-8px;top:50%;margin-top:-8px;}.ui-datepicker .ui-datepicker-title{margin:0 2.3em;line-height:1.8em;text-align:center;}.ui-datepicker .ui-datepicker-title select{font-size:1em;margin:1px 0;}.ui-datepicker select.ui-datepicker-month,.ui-datepicker select.ui-datepicker-year{width:45%;}.ui-datepicker table{width:100%;font-size:.9em;border-collapse:collapse;margin:0 0 .4em;}.ui-datepicker th{padding:.7em .3em;text-align:center;font-weight:bold;border:0;}.ui-datepicker td{border:0;padding:1px;}.ui-datepicker td span,.ui-datepicker td a{display:block;padding:.2em;text-align:right;text-decoration:none;}.ui-datepicker .ui-datepicker-buttonpane{background-image:none;margin:.7em 0 0 0;padding:0 .2em;border-left:0;border-right:0;border-bottom:0;}.ui-datepicker .ui-datepicker-buttonpane button{float:right;margin:.5em .2em .4em;cursor:pointer;padding:.2em .6em .3em .6em;width:auto;overflow:visible;}.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current{float:left;}.ui-datepicker.ui-datepicker-multi{width:auto;}.ui-datepicker-multi .ui-datepicker-group{float:left;}.ui-datepicker-multi .ui-datepicker-group table{width:95%;margin:0 auto .4em;}.ui-datepicker-multi-2 .ui-datepicker-group{width:50%;}.ui-datepicker-multi-3 .ui-datepicker-group{width:33.3%;}.ui-datepicker-multi-4 .ui-datepicker-group{width:25%;}.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header,.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header{border-left-width:0;}.ui-datepicker-multi .ui-datepicker-buttonpane{clear:left;}.ui-datepicker-row-break{clear:both;width:100%;font-size:0;}.ui-datepicker-rtl{direction:rtl;}.ui-datepicker-rtl .ui-datepicker-prev{right:2px;left:auto;}.ui-datepicker-rtl .ui-datepicker-next{left:2px;right:auto;}.ui-datepicker-rtl .ui-datepicker-prev:hover{right:1px;left:auto;}.ui-datepicker-rtl .ui-datepicker-next:hover{left:1px;right:auto;}.ui-datepicker-rtl .ui-datepicker-buttonpane{clear:right;}.ui-datepicker-rtl .ui-datepicker-buttonpane button{float:left;}.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current,.ui-datepicker-rtl .ui-datepicker-group{float:right;}.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header,.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header{border-right-width:0;border-left-width:1px;}.ui-datepicker .ui-icon{display:block;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat;left:.5em;top:.3em;}.ui-datepicker{border:1px solid #aaaaaa;background:#ffffff;color:#222222;}.ui-datepicker a{color:#222222;}.ui-state-default,.ui-widget-content .ui-state-default,.ui-widget-header .ui-state-default,.ui-button,html .ui-button.ui-state-disabled:hover,html .ui-button.ui-state-disabled:active{border:1px solid #d3d3d3;background:#e6e6e6 url("images/ui-bg_glass_75_e6e6e6_1x400.png") 50% 50% repeat-x;font-weight:normal;color:#555555;}.ui-state-default a,.ui-state-default a:link,.ui-state-default a:visited,a.ui-button,a:link.ui-button,a:visited.ui-button,.ui-button{color:#555555;text-decoration:none;}.ui-state-hover,.ui-widget-content .ui-state-hover,.ui-widget-header .ui-state-hover,.ui-state-focus,.ui-widget-content .ui-state-focus,.ui-widget-header .ui-state-focus,.ui-button:hover,.ui-button:focus{border:1px solid #999999;background:#dadada url("images/ui-bg_glass_75_dadada_1x400.png") 50% 50% repeat-x;font-weight:normal;color:#212121;}.ui-state-hover a,.ui-state-hover a:hover,.ui-state-hover a:link,.ui-state-hover a:visited,.ui-state-focus a,.ui-state-focus a:hover,.ui-state-focus a:link,.ui-state-focus a:visited,a.ui-button:hover,a.ui-button:focus{color:#212121;text-decoration:none;}.ui-visual-focus{box-shadow:0 0 3px 1px rgb(94,158,214);}.ui-state-active,.ui-widget-content .ui-state-active,.ui-widget-header .ui-state-active,a.ui-button:active,.ui-button:active,.ui-button.ui-state-active:hover{border:1px solid #aaaaaa;background:#ffffff url("images/ui-bg_glass_65_ffffff_1x400.png") 50% 50% repeat-x;font-weight:normal;color:#212121;}.ui-icon-background,.ui-state-active .ui-icon-background{border:#aaaaaa;background-color:#212121;}.ui-state-active a,.ui-state-active a:link,.ui-state-active a:visited{color:#212121;text-decoration:none;}.ui-state-highlight,.ui-widget-content .ui-state-highlight,.ui-widget-header .ui-state-highlight{border:1px solid #fcefa1;background:#fbf9ee url("images/ui-bg_glass_55_fbf9ee_1x400.png") 50% 50% repeat-x;color:#363636;}.ui-state-checked{border:1px solid #fcefa1;background:#fbf9ee;}.ui-state-highlight a,.ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a{color:#363636;}.ui-state-error,.ui-widget-content .ui-state-error,.ui-widget-header .ui-state-error{border:1px solid #cd0a0a;background:#fef1ec url("images/ui-bg_glass_95_fef1ec_1x400.png") 50% 50% repeat-x;color:#cd0a0a;}.ui-state-error a,.ui-widget-content .ui-state-error a,.ui-widget-header .ui-state-error a{color:#cd0a0a;}.ui-state-error-text,.ui-widget-content .ui-state-error-text,.ui-widget-header .ui-state-error-text{color:#cd0a0a;}.ui-priority-primary,.ui-widget-content .ui-priority-primary,.ui-widget-header .ui-priority-primary{font-weight:bold;}.ui-priority-secondary,.ui-widget-content .ui-priority-secondary,.ui-widget-header .ui-priority-secondary{opacity:.7;filter:Alpha(Opacity=70);font-weight:normal;}.ui-state-disabled,.ui-widget-content .ui-state-disabled,.ui-widget-header .ui-state-disabled{opacity:.35;filter:Alpha(Opacity=35);background-image:none;}.ui-state-disabled .ui-icon{filter:Alpha(Opacity=35)}.ui-icon{width:16px;height:16px;}.ui-icon,.ui-widget-content .ui-icon{background-image:url("images/ui-icons_222222_256x240.png");}.ui-widget-header .ui-icon{background-image:url("images/ui-icons_222222_256x240.png");}.ui-state-hover .ui-icon,.ui-state-focus .ui-icon,.ui-button:hover .ui-icon,.ui-button:focus .ui-icon{background-image:url("images/ui-icons_454545_256x240.png");}.ui-state-active .ui-icon,.ui-button:active .ui-icon{background-image:url("images/ui-icons_454545_256x240.png");}.ui-state-highlight .ui-icon,.ui-button .ui-state-highlight.ui-icon{background-image:url("images/ui-icons_2e83ff_256x240.png");}.ui-state-error .ui-icon,.ui-state-error-text .ui-icon{background-image:url("images/ui-icons_cd0a0a_256x240.png");}.ui-button .ui-icon{background-image:url("images/ui-icons_888888_256x240.png");}.ui-icon-blank{background-position:16px 16px;}.ui-icon-caret-1-n{background-position:0 0;}.ui-icon-caret-1-ne{background-position:-16px 0;}.ui-icon-caret-1-e{background-position:-32px 0;}.ui-icon-caret-1-se{background-position:-48px 0;}.ui-icon-caret-1-s{background-position:-65px 0;}.ui-icon-caret-1-sw{background-position:-80px 0;}.ui-icon-caret-1-w{background-position:-96px 0;}.ui-icon-caret-1-nw{background-position:-112px 0;}.ui-icon-caret-2-n-s{background-position:-128px 0;}.ui-icon-caret-2-e-w{background-position:-144px 0;}.ui-icon-triangle-1-n{background-position:0 -16px;}.ui-icon-triangle-1-ne{background-position:-16px -16px;}.ui-icon-triangle-1-e{background-position:-32px -16px;}.ui-icon-triangle-1-se{background-position:-48px -16px;}.ui-icon-triangle-1-s{background-position:-65px -16px;}.ui-icon-triangle-1-sw{background-position:-80px -16px;}.ui-icon-triangle-1-w{background-position:-96px -16px;}.ui-icon-triangle-1-nw{background-position:-112px -16px;}.ui-icon-triangle-2-n-s{background-position:-128px -16px;}.ui-icon-triangle-2-e-w{background-position:-144px -16px;}.ui-icon-arrow-1-n{background-position:0 -32px;}.ui-icon-arrow-1-ne{background-position:-16px -32px;}.ui-icon-arrow-1-e{background-position:-32px -32px;}.ui-icon-arrow-1-se{background-position:-48px -32px;}.ui-icon-arrow-1-s{background-position:-65px -32px;}.ui-icon-arrow-1-sw{background-position:-80px -32px;}.ui-icon-arrow-1-w{background-position:-96px -32px;}.ui-icon-arrow-1-nw{background-position:-112px -32px;}.ui-icon-arrow-2-n-s{background-position:-128px -32px;}.ui-icon-arrow-2-ne-sw{background-position:-144px -32px;}.ui-icon-arrow-2-e-w{background-position:-160px -32px;}.ui-icon-arrow-2-se-nw{background-position:-176px -32px;}.ui-icon-arrowstop-1-n{background-position:-192px -32px;}.ui-icon-arrowstop-1-e{background-position:-208px -32px;}.ui-icon-arrowstop-1-s{background-position:-224px -32px;}.ui-icon-arrowstop-1-w{background-position:-240px -32px;}.ui-icon-arrowthick-1-n{background-position:1px -48px;}.ui-icon-arrowthick-1-ne{background-position:-16px -48px;}.ui-icon-arrowthick-1-e{background-position:-32px -48px;}.ui-icon-arrowthick-1-se{background-position:-48px -48px;}.ui-icon-arrowthick-1-s{background-position:-64px -48px;}.ui-icon-arrowthick-1-sw{background-position:-80px -48px;}.ui-icon-arrowthick-1-w{background-position:-96px -48px;}.ui-icon-arrowthick-1-nw{background-position:-112px -48px;}.ui-icon-arrowthick-2-n-s{background-position:-128px -48px;}.ui-icon-arrowthick-2-ne-sw{background-position:-144px -48px;}.ui-icon-arrowthick-2-e-w{background-position:-160px -48px;}.ui-icon-arrowthick-2-se-nw{background-position:-176px -48px;}.ui-icon-arrowthickstop-1-n{background-position:-192px -48px;}.ui-icon-arrowthickstop-1-e{background-position:-208px -48px;}.ui-icon-arrowthickstop-1-s{background-position:-224px -48px;}.ui-icon-arrowthickstop-1-w{background-position:-240px -48px;}.ui-icon-arrowreturnthick-1-w{background-position:0 -64px;}.ui-icon-arrowreturnthick-1-n{background-position:-16px -64px;}.ui-icon-arrowreturnthick-1-e{background-position:-32px -64px;}.ui-icon-arrowreturnthick-1-s{background-position:-48px -64px;}.ui-icon-arrowreturn-1-w{background-position:-64px -64px;}.ui-icon-arrowreturn-1-n{background-position:-80px -64px;}.ui-icon-arrowreturn-1-e{background-position:-96px -64px;}.ui-icon-arrowreturn-1-s{background-position:-112px -64px;}.ui-icon-arrowrefresh-1-w{background-position:-128px -64px;}.ui-icon-arrowrefresh-1-n{background-position:-144px -64px;}.ui-icon-arrowrefresh-1-e{background-position:-160px -64px;}.ui-icon-arrowrefresh-1-s{background-position:-176px -64px;}.ui-icon-arrow-4{background-position:0 -80px;}.ui-icon-arrow-4-diag{background-position:-16px -80px;}.ui-icon-extlink{background-position:-32px -80px;}.ui-icon-newwin{background-position:-48px -80px;}.ui-icon-refresh{background-position:-64px -80px;}.ui-icon-shuffle{background-position:-80px -80px;}.ui-icon-transfer-e-w{background-position:-96px -80px;}.ui-icon-transferthick-e-w{background-position:-112px -80px;}.ui-icon-folder-collapsed{background-position:0 -96px;}.ui-icon-folder-open{background-position:-16px -96px;}.ui-icon-document{background-position:-32px -96px;}.ui-icon-document-b{background-position:-48px -96px;}.ui-icon-note{background-position:-64px -96px;}.ui-icon-mail-closed{background-position:-80px -96px;}.ui-icon-mail-open{background-position:-96px -96px;}.ui-icon-suitcase{background-position:-112px -96px;}.ui-icon-comment{background-position:-128px -96px;}.ui-icon-person{background-position:-144px -96px;}.ui-icon-print{background-position:-160px -96px;}.ui-icon-trash{background-position:-176px -96px;}.ui-icon-locked{background-position:-192px -96px;}.ui-icon-unlocked{background-position:-208px -96px;}.ui-icon-bookmark{background-position:-224px -96px;}.ui-icon-tag{background-position:-240px -96px;}.ui-icon-home{background-position:0 -112px;}.ui-icon-flag{background-position:-16px -112px;}.ui-icon-calendar{background-position:-32px -112px;}.ui-icon-cart{background-position:-48px -112px;}.ui-icon-pencil{background-position:-64px -112px;}.ui-icon-clock{background-position:-80px -112px;}.ui-icon-disk{background-position:-96px -112px;}.ui-icon-calculator{background-position:-112px -112px;}.ui-icon-zoomin{background-position:-128px -112px;}.ui-icon-zoomout{background-position:-144px -112px;}.ui-icon-search{background-position:-160px -112px;}.ui-icon-wrench{background-position:-176px -112px;}.ui-icon-gear{background-position:-192px -112px;}.ui-icon-heart{background-position:-208px -112px;}.ui-icon-star{background-position:-224px -112px;}.ui-icon-link{background-position:-240px -112px;}.ui-icon-cancel{background-position:0 -128px;}.ui-icon-plus{background-position:-16px -128px;}.ui-icon-plusthick{background-position:-32px -128px;}.ui-icon-minus{background-position:-48px -128px;}.ui-icon-minusthick{background-position:-64px -128px;}.ui-icon-close{background-position:-80px -128px;}.ui-icon-closethick{background-position:-96px -128px;}.ui-icon-key{background-position:-112px -128px;}.ui-icon-lightbulb{background-position:-128px -128px;}.ui-icon-scissors{background-position:-144px -128px;}.ui-icon-clipboard{background-position:-160px -128px;}.ui-icon-copy{background-position:-176px -128px;}.ui-icon-contact{background-position:-192px -128px;}.ui-icon-image{background-position:-208px -128px;}.ui-icon-video{background-position:-224px -128px;}.ui-icon-script{background-position:-240px -128px;}.ui-icon-alert{background-position:0 -144px;}.ui-icon-info{background-position:-16px -144px;}.ui-icon-notice{background-position:-32px -144px;}.ui-icon-help{background-position:-48px -144px;}.ui-icon-check{background-position:-64px -144px;}.ui-icon-bullet{background-position:-80px -144px;}.ui-icon-radio-on{background-position:-96px -144px;}.ui-icon-radio-off{background-position:-112px -144px;}.ui-icon-pin-w{background-position:-128px -144px;}.ui-icon-pin-s{background-position:-144px -144px;}.ui-icon-play{background-position:0 -160px;}.ui-icon-pause{background-position:-16px -160px;}.ui-icon-seek-next{background-position:-32px -160px;}.ui-icon-seek-prev{background-position:-48px -160px;}.ui-icon-seek-end{background-position:-64px -160px;}.ui-icon-seek-start{background-position:-80px -160px;}.ui-icon-seek-first{background-position:-80px -160px;}.ui-icon-stop{background-position:-96px -160px;}.ui-icon-eject{background-position:-112px -160px;}.ui-icon-volume-off{background-position:-128px -160px;}.ui-icon-volume-on{background-position:-144px -160px;}.ui-icon-power{background-position:0 -176px;}.ui-icon-signal-diag{background-position:-16px -176px;}.ui-icon-signal{background-position:-32px -176px;}.ui-icon-battery-0{background-position:-48px -176px;}.ui-icon-battery-1{background-position:-64px -176px;}.ui-icon-battery-2{background-position:-80px -176px;}.ui-icon-battery-3{background-position:-96px -176px;}.ui-icon-circle-plus{background-position:0 -192px;}.ui-icon-circle-minus{background-position:-16px -192px;}.ui-icon-circle-close{background-position:-32px -192px;}.ui-icon-circle-triangle-e{background-position:-48px -192px;}.ui-icon-circle-triangle-s{background-position:-64px -192px;}.ui-icon-circle-triangle-w{background-position:-80px -192px;}.ui-icon-circle-triangle-n{background-position:-96px -192px;}.ui-icon-circle-arrow-e{background-position:-112px -192px;}.ui-icon-circle-arrow-s{background-position:-128px -192px;}.ui-icon-circle-arrow-w{background-position:-144px -192px;}.ui-icon-circle-arrow-n{background-position:-160px -192px;}.ui-icon-circle-zoomin{background-position:-176px -192px;}.ui-icon-circle-zoomout{background-position:-192px -192px;}.ui-icon-circle-check{background-position:-208px -192px;}.ui-icon-circlesmall-plus{background-position:0 -208px;}.ui-icon-circlesmall-minus{background-position:-16px -208px;}.ui-icon-circlesmall-close{background-position:-32px -208px;}.ui-icon-squaresmall-plus{background-position:-48px -208px;}.ui-icon-squaresmall-minus{background-position:-64px -208px;}.ui-icon-squaresmall-close{background-position:-80px -208px;}.ui-icon-grip-dotted-vertical{background-position:0 -224px;}.ui-icon-grip-dotted-horizontal{background-position:-16px -224px;}.ui-icon-grip-solid-vertical{background-position:-32px -224px;}.ui-icon-grip-solid-horizontal{background-position:-48px -224px;}.ui-icon-gripsmall-diagonal-se{background-position:-64px -224px;}.ui-icon-grip-diagonal-se{background-position:-80px -224px;}.ui-corner-all,.ui-corner-top,.ui-corner-left,.ui-corner-tl{border-top-left-radius:4px;}.ui-corner-all,.ui-corner-top,.ui-corner-right,.ui-corner-tr{border-top-right-radius:4px;}.ui-corner-all,.ui-corner-bottom,.ui-corner-left,.ui-corner-bl{border-bottom-left-radius:4px;}.ui-corner-all,.ui-corner-bottom,.ui-corner-right,.ui-corner-br{border-bottom-right-radius:4px;}.ui-widget-overlay{background:#aaaaaa;opacity:.3;filter:Alpha(Opacity=30)}.ui-widget-shadow{-webkit-box-shadow:-8px -8px 8px #aaaaaa;box-shadow:-8px -8px 8px #aaaaaa;}a.bsearch_button{padding:10px;text-decoration:none;text-shadow:none;border-radius:3px;transition:all .3s ease 0s;margin-right:10px;display:inline-block;}a.bsearch_button:hover{box-shadow:3px 3px 10px #666;}a.bsearch_button.bsearch_button_green{color:#fff;background:#008000;border:1px solid #003400;}a.bsearch_button.bsearch_button_green:hover{color:#fff;background:#006400;}a.bsearch_button.bsearch_button_red{color:#fff;background:#d63638;border:1px solid #b92c2e;}a.bsearch_button.bsearch_button_red:hover{color:#fff;background:#b92c2e;}a.bsearch_button.bsearch_button_blue{color:#fff;background:#032075;border:1px solid #001f5b;}a.bsearch_button.bsearch_button_blue:hover{color:#fff;background:#001f5b;}a.bsearch_button.bsearch_button_gold{color:#000;background:#FFBD59;border:1px solid #FFA500;}a.bsearch_button.bsearch_button_gold:hover{color:#000;background:#FFA500;}#bsearch-start-reindex.loading.initial-loading{cursor:not-allowed;pointer-events:none;}#bsearch-start-reindex.loading:after,.bsearch-reindex-progress.loading:after{content:'';display:inline-flex;width:1em;height:1em;border:3px solid var(--wp-admin-theme-color,#ffffff);border-top-color:var(--wp-admin-theme-color-darker-20,#333333);border-right-color:var(--wp-admin-theme-color-darker-20,#333333);border-radius:50%;animation:spin 2s linear infinite;-webkit-animation:spin 2s linear infinite;transform-origin:center center;vertical-align:middle;box-sizing:border-box;margin-left:.5em;}@keyframes spin{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}@-webkit-keyframes spin{from{-webkit-transform:rotate(0deg)}to{-webkit-transform:rotate(360deg)}}.bsearch-site-selection table{margin-top:10px;}.bsearch-index-status{position:relative;width:100%;height:24px;background:#f0f0f0;border-radius:4px;overflow:hidden;}.bsearch-index-bar{height:100%;transition:width .4s ease;}.bsearch-index-status span{position:absolute;top:0;left:0;right:0;bottom:0;text-align:center;line-height:24px;font-weight:bold;color:#000;text-shadow:0 0 2px rgba(255,255,255,.8);}#bsearch-reindex-status{margin:10px 0;padding:10px 12px;border-radius:4px;font-size:14px;line-height:1.5;border-left:4px solid #72aee6;background-color:#f6f7f7;color:#000;transition:all .3s ease;}#bsearch-reindex-status.success{border-left-color:#00843c;background-color:#e6f6ed;color:#095228;}#bsearch-reindex-status.error{border-left-color:#b91c1c;background-color:#fce8e8;color:#7f1d1d;}#bsearch-reindex-status.preparing{border-left-color:#2271b1;background-color:#f0f6fc;color:#135e96;}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}#bsearch-reindex-status:hover,#bsearch-reindex-status:focus{box-shadow:0 0 0 1px rgba(0,0,0,.1);}#bsearch-reindex-progress-container{display:none;margin-top:10px;}#bsearch-reindex-progress-container.active{display:block;}.bsearch-progress-bar-wrapper{background:#e5e5e5;height:25px;position:relative;border-radius:3px;overflow:hidden;}#bsearch-progress-bar{background:#2271b1;height:100%;transition:width .3s ease-in-out;border-radius:3px;}#bsearch-progress-bar.preparing{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:40px 40px;animation:progress-bar-stripes 2s linear infinite;}#bsearch-progress-text{position:absolute;left:0;right:0;top:0;bottom:0;color:#fff;text-align:center;line-height:25px;font-weight:bold;text-shadow:0 1px 1px rgba(0,0,0,.4);}@media screen and (max-width:782px){.bsearch-site-selection table th,.bsearch-site-selection table td{padding:8px 10px}}.bsearch-code-wrapper{position:relative;}.bsearch-code-wrapper pre{margin:0;white-space:pre-wrap;}.bsearch-code-wrapper code{display:block;}.bsearch-copy-button{position:absolute;top:1px;right:1px;background:none;border:none;padding:4px;cursor:pointer;color:#2271b1;transition:color .1s ease-in-out;}.bsearch-copy-button:hover{color:#135e96;}.bsearch-copy-button.copied{color:#00a32a;} \ No newline at end of file +/*! jQuery UI - v1.12.1 - 2019-02-05 +* http://jqueryui.com +* Includes: core.css, datepicker.css, theme.css +* To view and modify this theme, visit http://jqueryui.com/themeroller/?scope=&folderName=smoothness&cornerRadiusShadow=8px&offsetLeftShadow=-8px&offsetTopShadow=-8px&thicknessShadow=8px&opacityShadow=30&bgImgOpacityShadow=0&bgTextureShadow=flat&bgColorShadow=aaaaaa&opacityOverlay=30&bgImgOpacityOverlay=0&bgTextureOverlay=flat&bgColorOverlay=aaaaaa&iconColorError=cd0a0a&fcError=cd0a0a&borderColorError=cd0a0a&bgImgOpacityError=95&bgTextureError=glass&bgColorError=fef1ec&iconColorHighlight=2e83ff&fcHighlight=363636&borderColorHighlight=fcefa1&bgImgOpacityHighlight=55&bgTextureHighlight=glass&bgColorHighlight=fbf9ee&iconColorActive=454545&fcActive=212121&borderColorActive=aaaaaa&bgImgOpacityActive=65&bgTextureActive=glass&bgColorActive=ffffff&iconColorHover=454545&fcHover=212121&borderColorHover=999999&bgImgOpacityHover=75&bgTextureHover=glass&bgColorHover=dadada&iconColorDefault=888888&fcDefault=555555&borderColorDefault=d3d3d3&bgImgOpacityDefault=75&bgTextureDefault=glass&bgColorDefault=e6e6e6&iconColorContent=222222&fcContent=222222&borderColorContent=aaaaaa&bgImgOpacityContent=75&bgTextureContent=flat&bgColorContent=ffffff&iconColorHeader=222222&fcHeader=222222&borderColorHeader=aaaaaa&bgImgOpacityHeader=75&bgTextureHeader=highlight_soft&bgColorHeader=cccccc&cornerRadius=4px&fsDefault=1.1em&fwDefault=normal&ffDefault=Verdana%2CArial%2Csans-serif +* Copyright jQuery Foundation and other contributors; Licensed MIT */.ui-helper-hidden{display:none}.ui-helper-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none}.ui-helper-clearfix:after,.ui-helper-clearfix:before{content:"";display:table;border-collapse:collapse}.ui-helper-clearfix:after{clear:both}.ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0)}.ui-front{z-index:100}.ui-state-disabled{cursor:default!important;pointer-events:none}.ui-icon{display:inline-block;vertical-align:middle;margin-top:-.25em;position:relative;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat}.ui-widget-icon-block{left:50%;margin-left:-8px;display:block}.ui-widget-overlay{position:fixed;top:0;left:0;width:100%;height:100%}.ui-datepicker{width:17em;padding:.2em .2em 0;display:none}.ui-datepicker .ui-datepicker-header{position:relative;padding:.2em 0}.ui-datepicker .ui-datepicker-next,.ui-datepicker .ui-datepicker-prev{position:absolute;top:2px;width:1.8em;height:1.8em}.ui-datepicker .ui-datepicker-next-hover,.ui-datepicker .ui-datepicker-prev-hover{top:1px}.ui-datepicker .ui-datepicker-prev{left:2px}.ui-datepicker .ui-datepicker-next{right:2px}.ui-datepicker .ui-datepicker-prev-hover{left:1px}.ui-datepicker .ui-datepicker-next-hover{right:1px}.ui-datepicker .ui-datepicker-next span,.ui-datepicker .ui-datepicker-prev span{display:block;position:absolute;left:50%;margin-left:-8px;top:50%;margin-top:-8px}.ui-datepicker .ui-datepicker-title{margin:0 2.3em;line-height:1.8em;text-align:center}.ui-datepicker .ui-datepicker-title select{font-size:1em;margin:1px 0}.ui-datepicker select.ui-datepicker-month,.ui-datepicker select.ui-datepicker-year{width:45%}.ui-datepicker table{width:100%;font-size:.9em;border-collapse:collapse;margin:0 0 .4em}.ui-datepicker th{padding:.7em .3em;text-align:center;font-weight:700;border:0}.ui-datepicker td{border:0;padding:1px}.ui-datepicker td a,.ui-datepicker td span{display:block;padding:.2em;text-align:right;text-decoration:none}.ui-datepicker .ui-datepicker-buttonpane{background-image:none;margin:.7em 0 0 0;padding:0 .2em;border-left:0;border-right:0;border-bottom:0}.ui-datepicker .ui-datepicker-buttonpane button{float:right;margin:.5em .2em .4em;cursor:pointer;padding:.2em .6em .3em .6em;width:auto;overflow:visible}.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current{float:left}.ui-datepicker.ui-datepicker-multi{width:auto}.ui-datepicker-multi .ui-datepicker-group{float:left}.ui-datepicker-multi .ui-datepicker-group table{width:95%;margin:0 auto .4em}.ui-datepicker-multi-2 .ui-datepicker-group{width:50%}.ui-datepicker-multi-3 .ui-datepicker-group{width:33.3%}.ui-datepicker-multi-4 .ui-datepicker-group{width:25%}.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header,.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header{border-left-width:0}.ui-datepicker-multi .ui-datepicker-buttonpane{clear:left}.ui-datepicker-row-break{clear:both;width:100%;font-size:0}.ui-datepicker-rtl{direction:rtl}.ui-datepicker-rtl .ui-datepicker-prev{right:2px;left:auto}.ui-datepicker-rtl .ui-datepicker-next{left:2px;right:auto}.ui-datepicker-rtl .ui-datepicker-prev:hover{right:1px;left:auto}.ui-datepicker-rtl .ui-datepicker-next:hover{left:1px;right:auto}.ui-datepicker-rtl .ui-datepicker-buttonpane{clear:right}.ui-datepicker-rtl .ui-datepicker-buttonpane button{float:left}.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current,.ui-datepicker-rtl .ui-datepicker-group{float:right}.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header,.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header{border-right-width:0;border-left-width:1px}.ui-datepicker .ui-icon{display:block;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat;left:.5em;top:.3em}.ui-datepicker{border:1px solid #aaa;background:#fff;color:#222}.ui-datepicker a{color:#222}.ui-button,.ui-state-default,.ui-widget-content .ui-state-default,.ui-widget-header .ui-state-default,html .ui-button.ui-state-disabled:active,html .ui-button.ui-state-disabled:hover{border:1px solid #d3d3d3;background:#e6e6e6 url("images/ui-bg_glass_75_e6e6e6_1x400.png") 50% 50% repeat-x;font-weight:400;color:#555}.ui-button,.ui-state-default a,.ui-state-default a:link,.ui-state-default a:visited,a.ui-button,a:link.ui-button,a:visited.ui-button{color:#555;text-decoration:none}.ui-button:focus,.ui-button:hover,.ui-state-focus,.ui-state-hover,.ui-widget-content .ui-state-focus,.ui-widget-content .ui-state-hover,.ui-widget-header .ui-state-focus,.ui-widget-header .ui-state-hover{border:1px solid #999;background:#dadada url("images/ui-bg_glass_75_dadada_1x400.png") 50% 50% repeat-x;font-weight:400;color:#212121}.ui-state-focus a,.ui-state-focus a:hover,.ui-state-focus a:link,.ui-state-focus a:visited,.ui-state-hover a,.ui-state-hover a:hover,.ui-state-hover a:link,.ui-state-hover a:visited,a.ui-button:focus,a.ui-button:hover{color:#212121;text-decoration:none}.ui-visual-focus{box-shadow:0 0 3px 1px #5e9ed6}.ui-button.ui-state-active:hover,.ui-button:active,.ui-state-active,.ui-widget-content .ui-state-active,.ui-widget-header .ui-state-active,a.ui-button:active{border:1px solid #aaa;background:#fff url("images/ui-bg_glass_65_ffffff_1x400.png") 50% 50% repeat-x;font-weight:400;color:#212121}.ui-icon-background,.ui-state-active .ui-icon-background{border:#aaa;background-color:#212121}.ui-state-active a,.ui-state-active a:link,.ui-state-active a:visited{color:#212121;text-decoration:none}.ui-state-highlight,.ui-widget-content .ui-state-highlight,.ui-widget-header .ui-state-highlight{border:1px solid #fcefa1;background:#fbf9ee url("images/ui-bg_glass_55_fbf9ee_1x400.png") 50% 50% repeat-x;color:#363636}.ui-state-checked{border:1px solid #fcefa1;background:#fbf9ee}.ui-state-highlight a,.ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a{color:#363636}.ui-state-error,.ui-widget-content .ui-state-error,.ui-widget-header .ui-state-error{border:1px solid #cd0a0a;background:#fef1ec url("images/ui-bg_glass_95_fef1ec_1x400.png") 50% 50% repeat-x;color:#cd0a0a}.ui-state-error a,.ui-widget-content .ui-state-error a,.ui-widget-header .ui-state-error a{color:#cd0a0a}.ui-state-error-text,.ui-widget-content .ui-state-error-text,.ui-widget-header .ui-state-error-text{color:#cd0a0a}.ui-priority-primary,.ui-widget-content .ui-priority-primary,.ui-widget-header .ui-priority-primary{font-weight:700}.ui-priority-secondary,.ui-widget-content .ui-priority-secondary,.ui-widget-header .ui-priority-secondary{opacity:.7;filter:Alpha(Opacity=70);font-weight:400}.ui-state-disabled,.ui-widget-content .ui-state-disabled,.ui-widget-header .ui-state-disabled{opacity:.35;filter:Alpha(Opacity=35);background-image:none}.ui-state-disabled .ui-icon{filter:Alpha(Opacity=35)}.ui-icon{width:16px;height:16px}.ui-icon,.ui-widget-content .ui-icon{background-image:url("images/ui-icons_222222_256x240.png")}.ui-widget-header .ui-icon{background-image:url("images/ui-icons_222222_256x240.png")}.ui-button:focus .ui-icon,.ui-button:hover .ui-icon,.ui-state-focus .ui-icon,.ui-state-hover .ui-icon{background-image:url("images/ui-icons_454545_256x240.png")}.ui-button:active .ui-icon,.ui-state-active .ui-icon{background-image:url("images/ui-icons_454545_256x240.png")}.ui-button .ui-state-highlight.ui-icon,.ui-state-highlight .ui-icon{background-image:url("images/ui-icons_2e83ff_256x240.png")}.ui-state-error .ui-icon,.ui-state-error-text .ui-icon{background-image:url("images/ui-icons_cd0a0a_256x240.png")}.ui-button .ui-icon{background-image:url("images/ui-icons_888888_256x240.png")}.ui-icon-blank{background-position:16px 16px}.ui-icon-caret-1-n{background-position:0 0}.ui-icon-caret-1-ne{background-position:-16px 0}.ui-icon-caret-1-e{background-position:-32px 0}.ui-icon-caret-1-se{background-position:-48px 0}.ui-icon-caret-1-s{background-position:-65px 0}.ui-icon-caret-1-sw{background-position:-80px 0}.ui-icon-caret-1-w{background-position:-96px 0}.ui-icon-caret-1-nw{background-position:-112px 0}.ui-icon-caret-2-n-s{background-position:-128px 0}.ui-icon-caret-2-e-w{background-position:-144px 0}.ui-icon-triangle-1-n{background-position:0 -16px}.ui-icon-triangle-1-ne{background-position:-16px -16px}.ui-icon-triangle-1-e{background-position:-32px -16px}.ui-icon-triangle-1-se{background-position:-48px -16px}.ui-icon-triangle-1-s{background-position:-65px -16px}.ui-icon-triangle-1-sw{background-position:-80px -16px}.ui-icon-triangle-1-w{background-position:-96px -16px}.ui-icon-triangle-1-nw{background-position:-112px -16px}.ui-icon-triangle-2-n-s{background-position:-128px -16px}.ui-icon-triangle-2-e-w{background-position:-144px -16px}.ui-icon-arrow-1-n{background-position:0 -32px}.ui-icon-arrow-1-ne{background-position:-16px -32px}.ui-icon-arrow-1-e{background-position:-32px -32px}.ui-icon-arrow-1-se{background-position:-48px -32px}.ui-icon-arrow-1-s{background-position:-65px -32px}.ui-icon-arrow-1-sw{background-position:-80px -32px}.ui-icon-arrow-1-w{background-position:-96px -32px}.ui-icon-arrow-1-nw{background-position:-112px -32px}.ui-icon-arrow-2-n-s{background-position:-128px -32px}.ui-icon-arrow-2-ne-sw{background-position:-144px -32px}.ui-icon-arrow-2-e-w{background-position:-160px -32px}.ui-icon-arrow-2-se-nw{background-position:-176px -32px}.ui-icon-arrowstop-1-n{background-position:-192px -32px}.ui-icon-arrowstop-1-e{background-position:-208px -32px}.ui-icon-arrowstop-1-s{background-position:-224px -32px}.ui-icon-arrowstop-1-w{background-position:-240px -32px}.ui-icon-arrowthick-1-n{background-position:1px -48px}.ui-icon-arrowthick-1-ne{background-position:-16px -48px}.ui-icon-arrowthick-1-e{background-position:-32px -48px}.ui-icon-arrowthick-1-se{background-position:-48px -48px}.ui-icon-arrowthick-1-s{background-position:-64px -48px}.ui-icon-arrowthick-1-sw{background-position:-80px -48px}.ui-icon-arrowthick-1-w{background-position:-96px -48px}.ui-icon-arrowthick-1-nw{background-position:-112px -48px}.ui-icon-arrowthick-2-n-s{background-position:-128px -48px}.ui-icon-arrowthick-2-ne-sw{background-position:-144px -48px}.ui-icon-arrowthick-2-e-w{background-position:-160px -48px}.ui-icon-arrowthick-2-se-nw{background-position:-176px -48px}.ui-icon-arrowthickstop-1-n{background-position:-192px -48px}.ui-icon-arrowthickstop-1-e{background-position:-208px -48px}.ui-icon-arrowthickstop-1-s{background-position:-224px -48px}.ui-icon-arrowthickstop-1-w{background-position:-240px -48px}.ui-icon-arrowreturnthick-1-w{background-position:0 -64px}.ui-icon-arrowreturnthick-1-n{background-position:-16px -64px}.ui-icon-arrowreturnthick-1-e{background-position:-32px -64px}.ui-icon-arrowreturnthick-1-s{background-position:-48px -64px}.ui-icon-arrowreturn-1-w{background-position:-64px -64px}.ui-icon-arrowreturn-1-n{background-position:-80px -64px}.ui-icon-arrowreturn-1-e{background-position:-96px -64px}.ui-icon-arrowreturn-1-s{background-position:-112px -64px}.ui-icon-arrowrefresh-1-w{background-position:-128px -64px}.ui-icon-arrowrefresh-1-n{background-position:-144px -64px}.ui-icon-arrowrefresh-1-e{background-position:-160px -64px}.ui-icon-arrowrefresh-1-s{background-position:-176px -64px}.ui-icon-arrow-4{background-position:0 -80px}.ui-icon-arrow-4-diag{background-position:-16px -80px}.ui-icon-extlink{background-position:-32px -80px}.ui-icon-newwin{background-position:-48px -80px}.ui-icon-refresh{background-position:-64px -80px}.ui-icon-shuffle{background-position:-80px -80px}.ui-icon-transfer-e-w{background-position:-96px -80px}.ui-icon-transferthick-e-w{background-position:-112px -80px}.ui-icon-folder-collapsed{background-position:0 -96px}.ui-icon-folder-open{background-position:-16px -96px}.ui-icon-document{background-position:-32px -96px}.ui-icon-document-b{background-position:-48px -96px}.ui-icon-note{background-position:-64px -96px}.ui-icon-mail-closed{background-position:-80px -96px}.ui-icon-mail-open{background-position:-96px -96px}.ui-icon-suitcase{background-position:-112px -96px}.ui-icon-comment{background-position:-128px -96px}.ui-icon-person{background-position:-144px -96px}.ui-icon-print{background-position:-160px -96px}.ui-icon-trash{background-position:-176px -96px}.ui-icon-locked{background-position:-192px -96px}.ui-icon-unlocked{background-position:-208px -96px}.ui-icon-bookmark{background-position:-224px -96px}.ui-icon-tag{background-position:-240px -96px}.ui-icon-home{background-position:0 -112px}.ui-icon-flag{background-position:-16px -112px}.ui-icon-calendar{background-position:-32px -112px}.ui-icon-cart{background-position:-48px -112px}.ui-icon-pencil{background-position:-64px -112px}.ui-icon-clock{background-position:-80px -112px}.ui-icon-disk{background-position:-96px -112px}.ui-icon-calculator{background-position:-112px -112px}.ui-icon-zoomin{background-position:-128px -112px}.ui-icon-zoomout{background-position:-144px -112px}.ui-icon-search{background-position:-160px -112px}.ui-icon-wrench{background-position:-176px -112px}.ui-icon-gear{background-position:-192px -112px}.ui-icon-heart{background-position:-208px -112px}.ui-icon-star{background-position:-224px -112px}.ui-icon-link{background-position:-240px -112px}.ui-icon-cancel{background-position:0 -128px}.ui-icon-plus{background-position:-16px -128px}.ui-icon-plusthick{background-position:-32px -128px}.ui-icon-minus{background-position:-48px -128px}.ui-icon-minusthick{background-position:-64px -128px}.ui-icon-close{background-position:-80px -128px}.ui-icon-closethick{background-position:-96px -128px}.ui-icon-key{background-position:-112px -128px}.ui-icon-lightbulb{background-position:-128px -128px}.ui-icon-scissors{background-position:-144px -128px}.ui-icon-clipboard{background-position:-160px -128px}.ui-icon-copy{background-position:-176px -128px}.ui-icon-contact{background-position:-192px -128px}.ui-icon-image{background-position:-208px -128px}.ui-icon-video{background-position:-224px -128px}.ui-icon-script{background-position:-240px -128px}.ui-icon-alert{background-position:0 -144px}.ui-icon-info{background-position:-16px -144px}.ui-icon-notice{background-position:-32px -144px}.ui-icon-help{background-position:-48px -144px}.ui-icon-check{background-position:-64px -144px}.ui-icon-bullet{background-position:-80px -144px}.ui-icon-radio-on{background-position:-96px -144px}.ui-icon-radio-off{background-position:-112px -144px}.ui-icon-pin-w{background-position:-128px -144px}.ui-icon-pin-s{background-position:-144px -144px}.ui-icon-play{background-position:0 -160px}.ui-icon-pause{background-position:-16px -160px}.ui-icon-seek-next{background-position:-32px -160px}.ui-icon-seek-prev{background-position:-48px -160px}.ui-icon-seek-end{background-position:-64px -160px}.ui-icon-seek-start{background-position:-80px -160px}.ui-icon-seek-first{background-position:-80px -160px}.ui-icon-stop{background-position:-96px -160px}.ui-icon-eject{background-position:-112px -160px}.ui-icon-volume-off{background-position:-128px -160px}.ui-icon-volume-on{background-position:-144px -160px}.ui-icon-power{background-position:0 -176px}.ui-icon-signal-diag{background-position:-16px -176px}.ui-icon-signal{background-position:-32px -176px}.ui-icon-battery-0{background-position:-48px -176px}.ui-icon-battery-1{background-position:-64px -176px}.ui-icon-battery-2{background-position:-80px -176px}.ui-icon-battery-3{background-position:-96px -176px}.ui-icon-circle-plus{background-position:0 -192px}.ui-icon-circle-minus{background-position:-16px -192px}.ui-icon-circle-close{background-position:-32px -192px}.ui-icon-circle-triangle-e{background-position:-48px -192px}.ui-icon-circle-triangle-s{background-position:-64px -192px}.ui-icon-circle-triangle-w{background-position:-80px -192px}.ui-icon-circle-triangle-n{background-position:-96px -192px}.ui-icon-circle-arrow-e{background-position:-112px -192px}.ui-icon-circle-arrow-s{background-position:-128px -192px}.ui-icon-circle-arrow-w{background-position:-144px -192px}.ui-icon-circle-arrow-n{background-position:-160px -192px}.ui-icon-circle-zoomin{background-position:-176px -192px}.ui-icon-circle-zoomout{background-position:-192px -192px}.ui-icon-circle-check{background-position:-208px -192px}.ui-icon-circlesmall-plus{background-position:0 -208px}.ui-icon-circlesmall-minus{background-position:-16px -208px}.ui-icon-circlesmall-close{background-position:-32px -208px}.ui-icon-squaresmall-plus{background-position:-48px -208px}.ui-icon-squaresmall-minus{background-position:-64px -208px}.ui-icon-squaresmall-close{background-position:-80px -208px}.ui-icon-grip-dotted-vertical{background-position:0 -224px}.ui-icon-grip-dotted-horizontal{background-position:-16px -224px}.ui-icon-grip-solid-vertical{background-position:-32px -224px}.ui-icon-grip-solid-horizontal{background-position:-48px -224px}.ui-icon-gripsmall-diagonal-se{background-position:-64px -224px}.ui-icon-grip-diagonal-se{background-position:-80px -224px}.ui-corner-all,.ui-corner-left,.ui-corner-tl,.ui-corner-top{border-top-left-radius:4px}.ui-corner-all,.ui-corner-right,.ui-corner-top,.ui-corner-tr{border-top-right-radius:4px}.ui-corner-all,.ui-corner-bl,.ui-corner-bottom,.ui-corner-left{border-bottom-left-radius:4px}.ui-corner-all,.ui-corner-bottom,.ui-corner-br,.ui-corner-right{border-bottom-right-radius:4px}.ui-widget-overlay{background:#aaa;opacity:.3;filter:Alpha(Opacity=30)}.ui-widget-shadow{-webkit-box-shadow:-8px -8px 8px #aaa;box-shadow:-8px -8px 8px #aaa}a.bsearch_button{padding:10px;text-decoration:none;text-shadow:none;border-radius:3px;transition:all .3s ease 0s;margin-right:10px;display:inline-block}a.bsearch_button:hover{box-shadow:3px 3px 10px #666}a.bsearch_button.bsearch_button_green{color:#fff;background:green;border:1px solid #003400}a.bsearch_button.bsearch_button_green:hover{color:#fff;background:#006400}a.bsearch_button.bsearch_button_red{color:#fff;background:#d63638;border:1px solid #b92c2e}a.bsearch_button.bsearch_button_red:hover{color:#fff;background:#b92c2e}a.bsearch_button.bsearch_button_blue{color:#fff;background:#032075;border:1px solid #001f5b}a.bsearch_button.bsearch_button_blue:hover{color:#fff;background:#001f5b}a.bsearch_button.bsearch_button_gold{color:#000;background:#ffbd59;border:1px solid orange}a.bsearch_button.bsearch_button_gold:hover{color:#000;background:orange}#bsearch-start-reindex.loading.initial-loading{cursor:not-allowed;pointer-events:none}#bsearch-start-reindex.loading:after,.bsearch-reindex-progress.loading:after{content:'';display:inline-flex;width:1em;height:1em;border:3px solid var(--wp-admin-theme-color,#fff);border-top-color:var(--wp-admin-theme-color-darker-20,#333);border-right-color:var(--wp-admin-theme-color-darker-20,#333);border-radius:50%;animation:spin 2s linear infinite;-webkit-animation:spin 2s linear infinite;transform-origin:center center;vertical-align:middle;box-sizing:border-box;margin-left:.5em}@keyframes spin{from{transform:rotate(0)}to{transform:rotate(360deg)}}@-webkit-keyframes spin{from{-webkit-transform:rotate(0)}to{-webkit-transform:rotate(360deg)}}.bsearch-site-selection table{margin-top:10px}.bsearch-index-status{position:relative;width:100%;height:24px;background:#f0f0f0;border-radius:4px;overflow:hidden}.bsearch-index-bar{height:100%;transition:width .4s ease}.bsearch-index-status span{position:absolute;top:0;left:0;right:0;bottom:0;text-align:center;line-height:24px;font-weight:700;color:#000;text-shadow:0 0 2px rgba(255,255,255,.8)}#bsearch-reindex-status{margin:10px 0;padding:10px 12px;border-radius:4px;font-size:14px;line-height:1.5;border-left:4px solid #72aee6;background-color:#f6f7f7;color:#000;transition:all .3s ease}#bsearch-reindex-status.success{border-left-color:#00843c;background-color:#e6f6ed;color:#095228}#bsearch-reindex-status.error{border-left-color:#b91c1c;background-color:#fce8e8;color:#7f1d1d}#bsearch-reindex-status.preparing{border-left-color:#2271b1;background-color:#f0f6fc;color:#135e96}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}#bsearch-reindex-status:focus,#bsearch-reindex-status:hover{box-shadow:0 0 0 1px rgba(0,0,0,.1)}#bsearch-reindex-progress-container{display:none;margin-top:10px}#bsearch-reindex-progress-container.active{display:block}.bsearch-progress-bar-wrapper{background:#e5e5e5;height:25px;position:relative;border-radius:3px;overflow:hidden}#bsearch-progress-bar{background:#2271b1;height:100%;transition:width .3s ease-in-out;border-radius:3px}#bsearch-progress-bar.preparing{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:40px 40px;animation:progress-bar-stripes 2s linear infinite}#bsearch-progress-text{position:absolute;left:0;right:0;top:0;bottom:0;color:#fff;text-align:center;line-height:25px;font-weight:700;text-shadow:0 1px 1px rgba(0,0,0,.4)}@media screen and (max-width:782px){.bsearch-site-selection table td,.bsearch-site-selection table th{padding:8px 10px}}.bsearch-code-wrapper{position:relative}.bsearch-code-wrapper pre{margin:0;white-space:pre-wrap}.bsearch-code-wrapper code{display:block}.bsearch-copy-button{position:absolute;top:1px;right:1px;background:0 0;border:none;padding:4px;cursor:pointer;color:#2271b1;transition:color .1s ease-in-out}.bsearch-copy-button:hover{color:#135e96}.bsearch-copy-button.copied{color:#00a32a} \ No newline at end of file diff --git a/includes/admin/js/admin-scripts.min.js b/includes/admin/js/admin-scripts.min.js index f0ef4d2..ebe5d21 100644 --- a/includes/admin/js/admin-scripts.min.js +++ b/includes/admin/js/admin-scripts.min.js @@ -1 +1 @@ -function bsearchCopyToClipboard(a){const e=document.getElementById(a);if(!e)return;const t=e.parentElement.querySelector(".bsearch-copy-button");t&&navigator.clipboard.writeText(e.textContent).then((()=>{const a=t.querySelector(".dashicons");a.classList.remove("dashicons-clipboard"),a.classList.add("dashicons-yes"),t.classList.add("copied"),t.title=better_search_admin.copied,setTimeout((()=>{a.classList.remove("dashicons-yes"),a.classList.add("dashicons-clipboard"),t.classList.remove("copied"),t.title=better_search_admin.copyToClipboard}),2e3)})).catch((()=>{const a=t.querySelector(".dashicons");a.classList.remove("dashicons-clipboard"),a.classList.add("dashicons-warning"),t.classList.add("error"),t.title=better_search_admin.copyError,setTimeout((()=>{a.classList.remove("dashicons-warning"),a.classList.add("dashicons-clipboard"),t.classList.remove("error"),t.title=better_search_admin.copyToClipboard}),2e3)}))}function bsearchAddCopyButton(a){const e=document.getElementById(a);if(!e)return;const t=document.createElement("button");t.type="button",t.className="bsearch-copy-button",t.setAttribute("aria-label",better_search_admin.copyToClipboard),t.title=better_search_admin.copyToClipboard,t.onclick=()=>bsearchCopyToClipboard(a);const n=document.createElement("span");n.className="screen-reader-text",n.textContent=better_search_admin.copyToClipboard;const c=document.createElement("span");c.className="dashicons dashicons-clipboard",c.setAttribute("aria-hidden","true"),t.appendChild(n),t.appendChild(c);const i=e.parentElement;i&&i.classList.contains("bsearch-code-wrapper")&&i.appendChild(t)}jQuery(document).ready((function(a){a('button[name="bsearch_cache_clear"]').on("click",(function(){if(confirm(bsearch_admin_data.confirm_message)){var e=a(this);e.prop("disabled",!0).append(' '),function(e){a.post(bsearch_admin_data.ajax_url,{action:"bsearch_clear_cache",security:bsearch_admin_data.security},(function(a){a.success?alert(a.data.message):alert(bsearch_admin_data.fail_message)})).fail((function(a,e){alert(bsearch_admin_data.request_fail_message+e)})).always((function(){e.prop("disabled",!1).find(".spinner").remove()}))}(e)}}));var e=0;function t(){e=0}a("form *").change((function(){e=1})),a(document).on("click",".bsearch-run-collation-fix",(function(e){if(e.preventDefault(),window.confirm("Are you sure? Please backup your database before proceeding!")){var t=a(this),n=t.text();t.prop("disabled",!0).text("Running...").append(' '),a.post(bsearch_admin_data.ajax_url,{action:"bsearch_run_collation_fix",blog_id:t.data("blog-id"),collation:t.data("collation"),security:bsearch_admin_data.security},(function(a){a.success?(alert(a.data||"Collation updated successfully."),t.text("Fixed!").removeClass("button-danger").addClass("button-secondary")):alert(a.data||"Failed to update collation.")})).fail((function(a,e){alert("Request failed: "+e)})).always((function(){t.find(".spinner").remove(),"Fixed!"!==t.text()&&t.prop("disabled",!1).text(n)}))}})),window.onbeforeunload=function(){if(1==e)return!0},a("input[name='submit']").click(t),a("input[id='search-submit']").click(t),a("input[id='doaction']").click(t),a("input[id='doaction2']").click(t),a("input[name='filter_action']").click(t),a((function(){a("#post-body-content").tabs({create:function(e,t){a(t.tab.find("a")).addClass("nav-tab-active")},activate:function(e,t){a(t.oldTab.find("a")).removeClass("nav-tab-active"),a(t.newTab.find("a")).addClass("nav-tab-active")}})})),a((function(){var e="dd M yy",t=a("#datepicker-from").datepicker({changeMonth:!0,changeYear:!0,maxDate:0,dateFormat:e}).on("change",(function(){n.datepicker("option","minDate",c(this))})),n=a("#datepicker-to").datepicker({changeMonth:!0,changeYear:!0,maxDate:0,dateFormat:e}).on("change",(function(){t.datepicker("option","maxDate",c(this))}));function c(t){var n;try{n=a.datepicker.parseDate(e,t.value)}catch(a){n=null}return n}}))})); \ No newline at end of file +function bsearchCopyToClipboard(a){const e=document.getElementById(a);if(!e)return;const t=e.parentElement.querySelector(".bsearch-copy-button");t&&navigator.clipboard.writeText(e.textContent).then(()=>{const a=t.querySelector(".dashicons");a.classList.remove("dashicons-clipboard"),a.classList.add("dashicons-yes"),t.classList.add("copied"),t.title=better_search_admin.copied,setTimeout(()=>{a.classList.remove("dashicons-yes"),a.classList.add("dashicons-clipboard"),t.classList.remove("copied"),t.title=better_search_admin.copyToClipboard},2e3)}).catch(()=>{const a=t.querySelector(".dashicons");a.classList.remove("dashicons-clipboard"),a.classList.add("dashicons-warning"),t.classList.add("error"),t.title=better_search_admin.copyError,setTimeout(()=>{a.classList.remove("dashicons-warning"),a.classList.add("dashicons-clipboard"),t.classList.remove("error"),t.title=better_search_admin.copyToClipboard},2e3)})}function bsearchAddCopyButton(a){const e=document.getElementById(a);if(!e)return;const t=document.createElement("button");t.type="button",t.className="bsearch-copy-button",t.setAttribute("aria-label",better_search_admin.copyToClipboard),t.title=better_search_admin.copyToClipboard,t.onclick=()=>bsearchCopyToClipboard(a);const n=document.createElement("span");n.className="screen-reader-text",n.textContent=better_search_admin.copyToClipboard;const c=document.createElement("span");c.className="dashicons dashicons-clipboard",c.setAttribute("aria-hidden","true"),t.appendChild(n),t.appendChild(c);const i=e.parentElement;i&&i.classList.contains("bsearch-code-wrapper")&&i.appendChild(t)}jQuery(document).ready(function(a){a('button[name="bsearch_cache_clear"]').on("click",function(){if(confirm(bsearch_admin_data.confirm_message)){var e=a(this);e.prop("disabled",!0).append(' '),function(e){a.post(bsearch_admin_data.ajax_url,{action:"bsearch_clear_cache",security:bsearch_admin_data.security},function(a){a.success?alert(a.data.message):alert(bsearch_admin_data.fail_message)}).fail(function(a,e){alert(bsearch_admin_data.request_fail_message+e)}).always(function(){e.prop("disabled",!1).find(".spinner").remove()})}(e)}});var e=0;function t(){e=0}a("form *").change(function(){e=1}),a(document).on("click",".bsearch-run-collation-fix",function(e){if(e.preventDefault(),window.confirm("Are you sure? Please backup your database before proceeding!")){var t=a(this),n=t.text();t.prop("disabled",!0).text("Running...").append(' '),a.post(bsearch_admin_data.ajax_url,{action:"bsearch_run_collation_fix",blog_id:t.data("blog-id"),collation:t.data("collation"),security:bsearch_admin_data.security},function(a){a.success?(alert(a.data||"Collation updated successfully."),t.text("Fixed!").removeClass("button-danger").addClass("button-secondary")):alert(a.data||"Failed to update collation.")}).fail(function(a,e){alert("Request failed: "+e)}).always(function(){t.find(".spinner").remove(),"Fixed!"!==t.text()&&t.prop("disabled",!1).text(n)})}}),window.onbeforeunload=function(){if(1==e)return!0},a("input[name='submit']").click(t),a("input[id='search-submit']").click(t),a("input[id='doaction']").click(t),a("input[id='doaction2']").click(t),a("input[name='filter_action']").click(t),a(function(){a("#post-body-content").tabs({create:function(e,t){a(t.tab.find("a")).addClass("nav-tab-active")},activate:function(e,t){a(t.oldTab.find("a")).removeClass("nav-tab-active"),a(t.newTab.find("a")).addClass("nav-tab-active")}})}),a(function(){var e="dd M yy",t=a("#datepicker-from").datepicker({changeMonth:!0,changeYear:!0,maxDate:0,dateFormat:e}).on("change",function(){n.datepicker("option","minDate",c(this))}),n=a("#datepicker-to").datepicker({changeMonth:!0,changeYear:!0,maxDate:0,dateFormat:e}).on("change",function(){t.datepicker("option","maxDate",c(this))});function c(t){var n;try{n=a.datepicker.parseDate(e,t.value)}catch(a){n=null}return n}})}); \ No newline at end of file diff --git a/includes/admin/js/chart-data.min.js b/includes/admin/js/chart-data.min.js index 8420064..4ce4eca 100644 --- a/includes/admin/js/chart-data.min.js +++ b/includes/admin/js/chart-data.min.js @@ -1 +1 @@ -function updateChart(){jQuery.post(ajaxurl,{action:"bsearch_chart_data",security:bsearch_chart_data.security,from_date:jQuery("#datepicker-from").val(),to_date:jQuery("#datepicker-to").val()},(function(a){var t=[],e=[];for(var r in a)t.push(a[r].date),e.push(a[r].searches);window.bsearchChart.data.labels=t,window.bsearchChart.data.datasets.forEach((a=>{a.data=e})),window.bsearchChart.update()}),"json")}jQuery(document).ready((function(a){a.ajax({type:"POST",dataType:"json",url:ajaxurl,data:{action:"bsearch_chart_data",security:bsearch_chart_data.security,from_date:a("#datepicker-from").val(),to_date:a("#datepicker-to").val()},success:function(t){var e=[],r=[];for(var o in t)e.push(t[o].date),r.push(t[o].searches);var s=a("#searches"),d={type:"bar",data:{labels:e,datasets:[{label:bsearch_chart_data.datasetlabel,backgroundColor:"#70c4e1",borderColor:"#70c4e1",hoverBackgroundColor:"#ffbf00",hoverBorderColor:"#ffbf00",data:r}]},plugins:[ChartDataLabels],options:{plugins:{title:{text:bsearch_chart_data.charttitle,display:!0},legend:{display:!1,position:"bottom"},datalabels:{color:"#000000",anchor:"end",align:"top"}},scales:{x:{type:"time",time:{tooltipFormat:"DD",unit:"day",displayFormats:{day:"DD"}},title:{display:!1,labelString:"Date"}},y:{grace:"5%",suggestedMin:0,display:!0,title:{display:!1,text:bsearch_chart_data.datasetlabel,color:"#000",padding:{top:30,left:0,right:0,bottom:0}}}}}};window.bsearchChart=new Chart(s,d)},error:function(a){}})})); \ No newline at end of file +function updateChart(){jQuery.post(ajaxurl,{action:"bsearch_chart_data",security:bsearch_chart_data.security,from_date:jQuery("#datepicker-from").val(),to_date:jQuery("#datepicker-to").val()},function(a){var t=[],e=[];for(var r in a)t.push(a[r].date),e.push(a[r].searches);window.bsearchChart.data.labels=t,window.bsearchChart.data.datasets.forEach(a=>{a.data=e}),window.bsearchChart.update()},"json")}jQuery(document).ready(function(a){a.ajax({type:"POST",dataType:"json",url:ajaxurl,data:{action:"bsearch_chart_data",security:bsearch_chart_data.security,from_date:a("#datepicker-from").val(),to_date:a("#datepicker-to").val()},success:function(t){var e=[],r=[];for(var o in t)e.push(t[o].date),r.push(t[o].searches);var s=a("#searches"),d={type:"bar",data:{labels:e,datasets:[{label:bsearch_chart_data.datasetlabel,backgroundColor:"#70c4e1",borderColor:"#70c4e1",hoverBackgroundColor:"#ffbf00",hoverBorderColor:"#ffbf00",data:r}]},plugins:[ChartDataLabels],options:{plugins:{title:{text:bsearch_chart_data.charttitle,display:!0},legend:{display:!1,position:"bottom"},datalabels:{color:"#000000",anchor:"end",align:"top"}},scales:{x:{type:"time",time:{tooltipFormat:"DD",unit:"day",displayFormats:{day:"DD"}},title:{display:!1,labelString:"Date"}},y:{grace:"5%",suggestedMin:0,display:!0,title:{display:!1,text:bsearch_chart_data.datasetlabel,color:"#000",padding:{top:30,left:0,right:0,bottom:0}}}}}};window.bsearchChart=new Chart(s,d)},error:function(a){console.log(a)}})}); \ No newline at end of file diff --git a/includes/admin/js/chartjs-adapter-luxon.min.js b/includes/admin/js/chartjs-adapter-luxon.min.js index 5f4d1e5..36f9642 100644 --- a/includes/admin/js/chartjs-adapter-luxon.min.js +++ b/includes/admin/js/chartjs-adapter-luxon.min.js @@ -4,4 +4,4 @@ * (c) 2023 chartjs-adapter-luxon Contributors * Released under the MIT license */ -!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(require("chart.js"),require("luxon")):"function"==typeof define&&define.amd?define(["chart.js","luxon"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).Chart,e.luxon)}(this,(function(e,t){"use strict";const n={datetime:t.DateTime.DATETIME_MED_WITH_SECONDS,millisecond:"h:mm:ss.SSS a",second:t.DateTime.TIME_WITH_SECONDS,minute:t.DateTime.TIME_SIMPLE,hour:{hour:"numeric"},day:{day:"numeric",month:"short"},week:"DD",month:{month:"short",year:"numeric"},quarter:"'Q'q - yyyy",year:{year:"numeric"}};e._adapters._date.override({_id:"luxon",_create:function(e){return t.DateTime.fromMillis(e,this.options)},init(e){this.options.locale||(this.options.locale=e.locale)},formats:function(){return n},parse:function(e,n){const i=this.options,r=typeof e;return null===e||"undefined"===r?null:("number"===r?e=this._create(e):"string"===r?e="string"==typeof n?t.DateTime.fromFormat(e,n,i):t.DateTime.fromISO(e,i):e instanceof Date?e=t.DateTime.fromJSDate(e,i):"object"!==r||e instanceof t.DateTime||(e=t.DateTime.fromObject(e,i)),e.isValid?e.valueOf():null)},format:function(e,t){const n=this._create(e);return"string"==typeof t?n.toFormat(t):n.toLocaleString(t)},add:function(e,t,n){const i={};return i[n]=t,this._create(e).plus(i).valueOf()},diff:function(e,t,n){return this._create(e).diff(this._create(t)).as(n).valueOf()},startOf:function(e,t,n){if("isoWeek"===t){n=Math.trunc(Math.min(Math.max(0,n),6));const t=this._create(e);return t.minus({days:(t.weekday-n+7)%7}).startOf("day").valueOf()}return t?this._create(e).startOf(t).valueOf():e},endOf:function(e,t){return this._create(e).endOf(t).valueOf()}})})); \ No newline at end of file +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(require("chart.js"),require("luxon")):"function"==typeof define&&define.amd?define(["chart.js","luxon"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).Chart,e.luxon)}(this,function(e,t){"use strict";const n={datetime:t.DateTime.DATETIME_MED_WITH_SECONDS,millisecond:"h:mm:ss.SSS a",second:t.DateTime.TIME_WITH_SECONDS,minute:t.DateTime.TIME_SIMPLE,hour:{hour:"numeric"},day:{day:"numeric",month:"short"},week:"DD",month:{month:"short",year:"numeric"},quarter:"'Q'q - yyyy",year:{year:"numeric"}};e._adapters._date.override({_id:"luxon",_create:function(e){return t.DateTime.fromMillis(e,this.options)},init(e){this.options.locale||(this.options.locale=e.locale)},formats:function(){return n},parse:function(e,n){const i=this.options,r=typeof e;return null===e||"undefined"===r?null:("number"===r?e=this._create(e):"string"===r?e="string"==typeof n?t.DateTime.fromFormat(e,n,i):t.DateTime.fromISO(e,i):e instanceof Date?e=t.DateTime.fromJSDate(e,i):"object"!==r||e instanceof t.DateTime||(e=t.DateTime.fromObject(e,i)),e.isValid?e.valueOf():null)},format:function(e,t){const n=this._create(e);return"string"==typeof t?n.toFormat(t):n.toLocaleString(t)},add:function(e,t,n){const i={};return i[n]=t,this._create(e).plus(i).valueOf()},diff:function(e,t,n){return this._create(e).diff(this._create(t)).as(n).valueOf()},startOf:function(e,t,n){if("isoWeek"===t){n=Math.trunc(Math.min(Math.max(0,n),6));const t=this._create(e);return t.minus({days:(t.weekday-n+7)%7}).startOf("day").valueOf()}return t?this._create(e).startOf(t).valueOf():e},endOf:function(e,t){return this._create(e).endOf(t).valueOf()}})}); \ No newline at end of file diff --git a/includes/admin/js/luxon.min.js b/includes/admin/js/luxon.min.js index 766510e..0992a80 100644 --- a/includes/admin/js/luxon.min.js +++ b/includes/admin/js/luxon.min.js @@ -1 +1 @@ -var luxon=function(e){"use strict";function t(e,t){for(var n=0;ne.length)&&(t=e.length);for(var n=0,r=new Array(t);n=e.length?{done:!0}:{done:!1,value:e[n++]}};throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var f=function(e){function t(){return e.apply(this,arguments)||this}return i(t,e),t}(function(e){var t="function"==typeof Map?new Map:void 0;return function(e){if(null===e||-1===Function.toString.call(e).indexOf("[native code]"))return e;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,n)}function n(){return s(e,arguments,o(this).constructor)}return n.prototype=Object.create(e.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),a(n,e)}(e)}(Error)),d=function(e){function t(t){return e.call(this,"Invalid DateTime: "+t.toMessage())||this}return i(t,e),t}(f),h=function(e){function t(t){return e.call(this,"Invalid Interval: "+t.toMessage())||this}return i(t,e),t}(f),m=function(e){function t(t){return e.call(this,"Invalid Duration: "+t.toMessage())||this}return i(t,e),t}(f),y=function(e){function t(){return e.apply(this,arguments)||this}return i(t,e),t}(f),v=function(e){function t(t){return e.call(this,"Invalid unit "+t)||this}return i(t,e),t}(f),g=function(e){function t(){return e.apply(this,arguments)||this}return i(t,e),t}(f),p=function(e){function t(){return e.call(this,"Zone is an abstract class")||this}return i(t,e),t}(f),k={year:f="numeric",month:f,day:f},w={year:f,month:Dt="short",day:f},b={year:f,month:Dt,day:f,weekday:Dt},S={year:f,month:xt="long",day:f},O={year:f,month:xt,day:f,weekday:xt},T={hour:f,minute:f},N={hour:f,minute:f,second:f},D={hour:f,minute:f,second:f,timeZoneName:Dt},M={hour:f,minute:f,second:f,timeZoneName:xt},I={hour:f,minute:f,hourCycle:"h23"},V={hour:f,minute:f,second:f,hourCycle:"h23"},E={hour:f,minute:f,second:f,hourCycle:"h23",timeZoneName:Dt},x={hour:f,minute:f,second:f,hourCycle:"h23",timeZoneName:xt},C={year:f,month:f,day:f,hour:f,minute:f},F={year:f,month:f,day:f,hour:f,minute:f,second:f},Z={year:f,month:Dt,day:f,hour:f,minute:f},W={year:f,month:Dt,day:f,hour:f,minute:f,second:f},L={year:f,month:Dt,day:f,weekday:Dt,hour:f,minute:f},j={year:f,month:xt,day:f,hour:f,minute:f,timeZoneName:Dt},z={year:f,month:xt,day:f,hour:f,minute:f,second:f,timeZoneName:Dt},A={year:f,month:xt,day:f,weekday:xt,hour:f,minute:f,timeZoneName:xt},q={year:f,month:xt,day:f,weekday:xt,hour:f,minute:f,second:f,timeZoneName:xt},_=function(){function e(){}var t=e.prototype;return t.offsetName=function(e,t){throw new p},t.formatOffset=function(e,t){throw new p},t.offset=function(e){throw new p},t.equals=function(e){throw new p},n(e,[{key:"type",get:function(){throw new p}},{key:"name",get:function(){throw new p}},{key:"ianaName",get:function(){return this.name}},{key:"isUniversal",get:function(){throw new p}},{key:"isValid",get:function(){throw new p}}]),e}(),U=null,R=function(e){function t(){return e.apply(this,arguments)||this}i(t,e);var r=t.prototype;return r.offsetName=function(e,t){return it(e,t.format,t.locale)},r.formatOffset=function(e,t){return ut(this.offset(e),t)},r.offset=function(e){return-new Date(e).getTimezoneOffset()},r.equals=function(e){return"system"===e.type},n(t,[{key:"type",get:function(){return"system"}},{key:"name",get:function(){return(new Intl.DateTimeFormat).resolvedOptions().timeZone}},{key:"isUniversal",get:function(){return!1}},{key:"isValid",get:function(){return!0}}],[{key:"instance",get:function(){return U=null===U?new t:U}}]),t}(_),Y={},P={year:0,month:1,day:2,era:3,hour:4,minute:5,second:6},H={},J=function(e){function t(n){var r=e.call(this)||this;return r.zoneName=n,r.valid=t.isValidZone(n),r}i(t,e),t.create=function(e){return H[e]||(H[e]=new t(e)),H[e]},t.resetCache=function(){H={},Y={}},t.isValidSpecifier=function(e){return this.isValidZone(e)},t.isValidZone=function(e){if(!e)return!1;try{return new Intl.DateTimeFormat("en-US",{timeZone:e}).format(),!0}catch(e){return!1}};var r=t.prototype;return r.offsetName=function(e,t){return it(e,t.format,t.locale,this.name)},r.formatOffset=function(e,t){return ut(this.offset(e),t)},r.offset=function(e){var t,n,r,i,o,a,s,u;e=new Date(e);return isNaN(e)?NaN:(i=this.name,Y[i]||(Y[i]=new Intl.DateTimeFormat("en-US",{hour12:!1,timeZone:i,year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",era:"short"})),a=(i=(i=Y[i]).formatToParts?function(e,t){for(var n=e.formatToParts(t),r=[],i=0;int(a,t,n)?(i=a+1,o=1):i=a,r({weekYear:i,weekNumber:o,weekday:u},lt(e))}function xe(e,t,n){void 0===n&&(n=1);var i,o=e.weekYear,a=e.weekNumber,s=e.weekday,u=(n=Ve(De(o,1,t=void 0===t?4:t),n),Ke(o));(a=7*a+s-n-7+t)<1?a+=Ke(i=o-1):ube.twoDigitCutoffYear?1900+e:2e3+e}function it(e,t,n,i){void 0===i&&(i=null);e=new Date(e);var o={hourCycle:"h23",year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"};i&&(o.timeZone=i),i=r({timeZoneName:t},o),t=new Intl.DateTimeFormat(n,i).formatToParts(e).find((function(e){return"timezonename"===e.type.toLowerCase()}));return t?t.value:null}function ot(e,t){return e=parseInt(e,10),Number.isNaN(e)&&(e=0),t=parseInt(t,10)||0,60*e+(e<0||Object.is(e,-0)?-t:t)}function at(e){var t=Number(e);if("boolean"==typeof e||""===e||Number.isNaN(t))throw new g("Invalid unit value "+e);return t}function st(e,t){var n,r,i={};for(n in e)Re(e,n)&&null!=(r=e[n])&&(i[t(n)]=at(r));return i}function ut(e,t){var n=Math.trunc(Math.abs(e/60)),r=Math.trunc(Math.abs(e%60)),i=0<=e?"+":"-";switch(t){case"short":return i+He(n,2)+":"+He(r,2);case"narrow":return i+n+(0e},r.isBefore=function(e){return!!this.isValid&&this.e<=e},r.contains=function(e){return!!this.isValid&&this.s<=e&&this.e>e},r.set=function(e){var n=(e=void 0===e?{}:e).start;e=e.end;return this.isValid?t.fromDateTimes(n||this.s,e||this.e):this},r.splitAt=function(){var e=this;if(!this.isValid)return[];for(var n=arguments.length,r=new Array(n),i=0;i+this.e?this.e:l;a.push(t.fromDateTimes(s,l)),s=l,u+=1}return a},r.splitBy=function(e){var n=kn.fromDurationLike(e);if(!this.isValid||!n.isValid||0===n.as("milliseconds"))return[];for(var r=this.s,i=1,o=[];r+this.e?this.e:a;o.push(t.fromDateTimes(r,a)),r=a,i+=1}return o},r.divideEqually=function(e){return this.isValid?this.splitBy(this.length()/e).slice(0,e):[]},r.overlaps=function(e){return this.e>e.s&&this.s=e.e},r.equals=function(e){return!(!this.isValid||!e.isValid)&&this.s.equals(e.s)&&this.e.equals(e.e)},r.intersection=function(e){var n;return this.isValid?(n=(this.s>e.s?this:e).s,(e=(this.ee.e?this:e).e,t.fromDateTimes(n,e)):this},t.merge=function(e){e=e.sort((function(e,t){return e.s-t.s})).reduce((function(e,t){var n=e[0];return(e=e[1])?e.overlaps(t)||e.abutsStart(t)?[n,e.union(t)]:[n.concat([e]),t]:[n,t]}),[[],null]);var t=e[0];return(e=e[1])&&t.push(e),t},t.xor=function(e){for(var n,r=null,i=0,o=[],a=(e=e.map((function(e){return[{time:e.s,type:"s"},{time:e.e,type:"e"}]})),c((n=Array.prototype).concat.apply(n,e).sort((function(e,t){return e.time-t.time}))));!(s=a()).done;){var s=s.value;r=1===(i+="s"===s.type?1:-1)?s.time:(r&&+r!=+s.time&&o.push(t.fromDateTimes(r,s.time)),null)}return t.merge(o)},r.difference=function(){for(var e=this,n=arguments.length,r=new Array(n),i=0;ithis.valueOf())?this:e,i?e:this,t,n),i?e.negate():e):kn.invalid("created by diffing an invalid DateTime")},i.diffNow=function(e,n){return void 0===e&&(e="milliseconds"),void 0===n&&(n={}),this.diff(t.now(),e,n)},i.until=function(e){return this.isValid?bn.fromDateTimes(this,e):this},i.hasSame=function(e,t,n){var r;return!!this.isValid&&(r=e.valueOf(),(e=this.setZone(e.zone,{keepLocalTime:!0})).startOf(t,n)<=r)&&r<=e.endOf(t,n)},i.equals=function(e){return this.isValid&&e.isValid&&this.valueOf()===e.valueOf()&&this.zone.equals(e.zone)&&this.loc.equals(e.loc)},i.toRelative=function(e){var n,i,o,a;return this.isValid?(n=(e=void 0===e?{}:e).base||t.fromObject({},{zone:this.zone}),i=e.padding?thisthis.set({month:1,day:1}).offset||this.offset>this.set({month:5}).offset)}},{key:"isInLeapYear",get:function(){return Qe(this.year)}},{key:"daysInMonth",get:function(){return Xe(this.year,this.month)}},{key:"daysInYear",get:function(){return this.isValid?Ke(this.year):NaN}},{key:"weeksInWeekYear",get:function(){return this.isValid?nt(this.weekYear):NaN}},{key:"weeksInLocalWeekYear",get:function(){return this.isValid?nt(this.localWeekYear,this.loc.getMinDaysInFirstWeek(),this.loc.getStartOfWeek()):NaN}}],[{key:"DATE_SHORT",get:function(){return k}},{key:"DATE_MED",get:function(){return w}},{key:"DATE_MED_WITH_WEEKDAY",get:function(){return b}},{key:"DATE_FULL",get:function(){return S}},{key:"DATE_HUGE",get:function(){return O}},{key:"TIME_SIMPLE",get:function(){return T}},{key:"TIME_WITH_SECONDS",get:function(){return N}},{key:"TIME_WITH_SHORT_OFFSET",get:function(){return D}},{key:"TIME_WITH_LONG_OFFSET",get:function(){return M}},{key:"TIME_24_SIMPLE",get:function(){return I}},{key:"TIME_24_WITH_SECONDS",get:function(){return V}},{key:"TIME_24_WITH_SHORT_OFFSET",get:function(){return E}},{key:"TIME_24_WITH_LONG_OFFSET",get:function(){return x}},{key:"DATETIME_SHORT",get:function(){return C}},{key:"DATETIME_SHORT_WITH_SECONDS",get:function(){return F}},{key:"DATETIME_MED",get:function(){return Z}},{key:"DATETIME_MED_WITH_SECONDS",get:function(){return W}},{key:"DATETIME_MED_WITH_WEEKDAY",get:function(){return L}},{key:"DATETIME_FULL",get:function(){return j}},{key:"DATETIME_FULL_WITH_SECONDS",get:function(){return z}},{key:"DATETIME_HUGE",get:function(){return A}},{key:"DATETIME_HUGE_WITH_SECONDS",get:function(){return q}}]),t}(Symbol.for("nodejs.util.inspect.custom"));function fr(e){if(cr.isDateTime(e))return e;if(e&&e.valueOf&&ze(e.valueOf()))return cr.fromJSDate(e);if(e&&"object"==typeof e)return cr.fromObject(e);throw new g("Unknown datetime argument: "+e+", of type "+typeof e)}return e.DateTime=cr,e.Duration=kn,e.FixedOffsetZone=ce,e.IANAZone=J,e.Info=Sn,e.Interval=bn,e.InvalidZone=fe,e.Settings=be,e.SystemZone=R,e.VERSION="3.4.4",e.Zone=_,Object.defineProperty(e,"__esModule",{value:!0}),e}({}); \ No newline at end of file +var luxon=function(e){"use strict";function t(e,t){for(var n=0;ne.length)&&(t=e.length);for(var n=0,r=new Array(t);n=e.length?{done:!0}:{done:!1,value:e[n++]}};throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var f=function(e){function t(){return e.apply(this,arguments)||this}return i(t,e),t}(function(e){var t="function"==typeof Map?new Map:void 0;return function(e){if(null===e||-1===Function.toString.call(e).indexOf("[native code]"))return e;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,n)}function n(){return s(e,arguments,o(this).constructor)}return n.prototype=Object.create(e.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),a(n,e)}(e)}(Error)),d=function(e){function t(t){return e.call(this,"Invalid DateTime: "+t.toMessage())||this}return i(t,e),t}(f),h=function(e){function t(t){return e.call(this,"Invalid Interval: "+t.toMessage())||this}return i(t,e),t}(f),m=function(e){function t(t){return e.call(this,"Invalid Duration: "+t.toMessage())||this}return i(t,e),t}(f),y=function(e){function t(){return e.apply(this,arguments)||this}return i(t,e),t}(f),v=function(e){function t(t){return e.call(this,"Invalid unit "+t)||this}return i(t,e),t}(f),g=function(e){function t(){return e.apply(this,arguments)||this}return i(t,e),t}(f),p=function(e){function t(){return e.call(this,"Zone is an abstract class")||this}return i(t,e),t}(f),k={year:f="numeric",month:f,day:f},w={year:f,month:Dt="short",day:f},b={year:f,month:Dt,day:f,weekday:Dt},S={year:f,month:xt="long",day:f},O={year:f,month:xt,day:f,weekday:xt},T={hour:f,minute:f},N={hour:f,minute:f,second:f},D={hour:f,minute:f,second:f,timeZoneName:Dt},M={hour:f,minute:f,second:f,timeZoneName:xt},I={hour:f,minute:f,hourCycle:"h23"},V={hour:f,minute:f,second:f,hourCycle:"h23"},E={hour:f,minute:f,second:f,hourCycle:"h23",timeZoneName:Dt},x={hour:f,minute:f,second:f,hourCycle:"h23",timeZoneName:xt},C={year:f,month:f,day:f,hour:f,minute:f},F={year:f,month:f,day:f,hour:f,minute:f,second:f},Z={year:f,month:Dt,day:f,hour:f,minute:f},W={year:f,month:Dt,day:f,hour:f,minute:f,second:f},L={year:f,month:Dt,day:f,weekday:Dt,hour:f,minute:f},j={year:f,month:xt,day:f,hour:f,minute:f,timeZoneName:Dt},z={year:f,month:xt,day:f,hour:f,minute:f,second:f,timeZoneName:Dt},A={year:f,month:xt,day:f,weekday:xt,hour:f,minute:f,timeZoneName:xt},q={year:f,month:xt,day:f,weekday:xt,hour:f,minute:f,second:f,timeZoneName:xt},_=function(){function e(){}var t=e.prototype;return t.offsetName=function(e,t){throw new p},t.formatOffset=function(e,t){throw new p},t.offset=function(e){throw new p},t.equals=function(e){throw new p},n(e,[{key:"type",get:function(){throw new p}},{key:"name",get:function(){throw new p}},{key:"ianaName",get:function(){return this.name}},{key:"isUniversal",get:function(){throw new p}},{key:"isValid",get:function(){throw new p}}]),e}(),U=null,R=function(e){function t(){return e.apply(this,arguments)||this}i(t,e);var r=t.prototype;return r.offsetName=function(e,t){return it(e,t.format,t.locale)},r.formatOffset=function(e,t){return ut(this.offset(e),t)},r.offset=function(e){return-new Date(e).getTimezoneOffset()},r.equals=function(e){return"system"===e.type},n(t,[{key:"type",get:function(){return"system"}},{key:"name",get:function(){return(new Intl.DateTimeFormat).resolvedOptions().timeZone}},{key:"isUniversal",get:function(){return!1}},{key:"isValid",get:function(){return!0}}],[{key:"instance",get:function(){return U=null===U?new t:U}}]),t}(_),Y={},P={year:0,month:1,day:2,era:3,hour:4,minute:5,second:6},H={},J=function(e){function t(n){var r=e.call(this)||this;return r.zoneName=n,r.valid=t.isValidZone(n),r}i(t,e),t.create=function(e){return H[e]||(H[e]=new t(e)),H[e]},t.resetCache=function(){H={},Y={}},t.isValidSpecifier=function(e){return this.isValidZone(e)},t.isValidZone=function(e){if(!e)return!1;try{return new Intl.DateTimeFormat("en-US",{timeZone:e}).format(),!0}catch(e){return!1}};var r=t.prototype;return r.offsetName=function(e,t){return it(e,t.format,t.locale,this.name)},r.formatOffset=function(e,t){return ut(this.offset(e),t)},r.offset=function(e){var t,n,r,i,o,a,s,u;e=new Date(e);return isNaN(e)?NaN:(i=this.name,Y[i]||(Y[i]=new Intl.DateTimeFormat("en-US",{hour12:!1,timeZone:i,year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",era:"short"})),a=(i=(i=Y[i]).formatToParts?function(e,t){for(var n=e.formatToParts(t),r=[],i=0;int(a,t,n)?(i=a+1,o=1):i=a,r({weekYear:i,weekNumber:o,weekday:u},lt(e))}function xe(e,t,n){void 0===n&&(n=1);var i,o=e.weekYear,a=e.weekNumber,s=e.weekday,u=(n=Ve(De(o,1,t=void 0===t?4:t),n),Ke(o));(a=7*a+s-n-7+t)<1?a+=Ke(i=o-1):ube.twoDigitCutoffYear?1900+e:2e3+e}function it(e,t,n,i){void 0===i&&(i=null);e=new Date(e);var o={hourCycle:"h23",year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"};i&&(o.timeZone=i),i=r({timeZoneName:t},o),t=new Intl.DateTimeFormat(n,i).formatToParts(e).find(function(e){return"timezonename"===e.type.toLowerCase()});return t?t.value:null}function ot(e,t){return e=parseInt(e,10),Number.isNaN(e)&&(e=0),t=parseInt(t,10)||0,60*e+(e<0||Object.is(e,-0)?-t:t)}function at(e){var t=Number(e);if("boolean"==typeof e||""===e||Number.isNaN(t))throw new g("Invalid unit value "+e);return t}function st(e,t){var n,r,i={};for(n in e)Re(e,n)&&null!=(r=e[n])&&(i[t(n)]=at(r));return i}function ut(e,t){var n=Math.trunc(Math.abs(e/60)),r=Math.trunc(Math.abs(e%60)),i=0<=e?"+":"-";switch(t){case"short":return i+He(n,2)+":"+He(r,2);case"narrow":return i+n+(0e},r.isBefore=function(e){return!!this.isValid&&this.e<=e},r.contains=function(e){return!!this.isValid&&this.s<=e&&this.e>e},r.set=function(e){var n=(e=void 0===e?{}:e).start;e=e.end;return this.isValid?t.fromDateTimes(n||this.s,e||this.e):this},r.splitAt=function(){var e=this;if(!this.isValid)return[];for(var n=arguments.length,r=new Array(n),i=0;i+this.e?this.e:l;a.push(t.fromDateTimes(s,l)),s=l,u+=1}return a},r.splitBy=function(e){var n=kn.fromDurationLike(e);if(!this.isValid||!n.isValid||0===n.as("milliseconds"))return[];for(var r=this.s,i=1,o=[];r+this.e?this.e:a;o.push(t.fromDateTimes(r,a)),r=a,i+=1}return o},r.divideEqually=function(e){return this.isValid?this.splitBy(this.length()/e).slice(0,e):[]},r.overlaps=function(e){return this.e>e.s&&this.s=e.e},r.equals=function(e){return!(!this.isValid||!e.isValid)&&this.s.equals(e.s)&&this.e.equals(e.e)},r.intersection=function(e){var n;return this.isValid?(n=(this.s>e.s?this:e).s,(e=(this.ee.e?this:e).e,t.fromDateTimes(n,e)):this},t.merge=function(e){e=e.sort(function(e,t){return e.s-t.s}).reduce(function(e,t){var n=e[0];return(e=e[1])?e.overlaps(t)||e.abutsStart(t)?[n,e.union(t)]:[n.concat([e]),t]:[n,t]},[[],null]);var t=e[0];return(e=e[1])&&t.push(e),t},t.xor=function(e){for(var n,r=null,i=0,o=[],a=(e=e.map(function(e){return[{time:e.s,type:"s"},{time:e.e,type:"e"}]}),c((n=Array.prototype).concat.apply(n,e).sort(function(e,t){return e.time-t.time})));!(s=a()).done;){var s=s.value;r=1===(i+="s"===s.type?1:-1)?s.time:(r&&+r!=+s.time&&o.push(t.fromDateTimes(r,s.time)),null)}return t.merge(o)},r.difference=function(){for(var e=this,n=arguments.length,r=new Array(n),i=0;ithis.valueOf())?this:e,i?e:this,t,n),i?e.negate():e):kn.invalid("created by diffing an invalid DateTime")},i.diffNow=function(e,n){return void 0===e&&(e="milliseconds"),void 0===n&&(n={}),this.diff(t.now(),e,n)},i.until=function(e){return this.isValid?bn.fromDateTimes(this,e):this},i.hasSame=function(e,t,n){var r;return!!this.isValid&&(r=e.valueOf(),(e=this.setZone(e.zone,{keepLocalTime:!0})).startOf(t,n)<=r)&&r<=e.endOf(t,n)},i.equals=function(e){return this.isValid&&e.isValid&&this.valueOf()===e.valueOf()&&this.zone.equals(e.zone)&&this.loc.equals(e.loc)},i.toRelative=function(e){var n,i,o,a;return this.isValid?(n=(e=void 0===e?{}:e).base||t.fromObject({},{zone:this.zone}),i=e.padding?thisthis.set({month:1,day:1}).offset||this.offset>this.set({month:5}).offset)}},{key:"isInLeapYear",get:function(){return Qe(this.year)}},{key:"daysInMonth",get:function(){return Xe(this.year,this.month)}},{key:"daysInYear",get:function(){return this.isValid?Ke(this.year):NaN}},{key:"weeksInWeekYear",get:function(){return this.isValid?nt(this.weekYear):NaN}},{key:"weeksInLocalWeekYear",get:function(){return this.isValid?nt(this.localWeekYear,this.loc.getMinDaysInFirstWeek(),this.loc.getStartOfWeek()):NaN}}],[{key:"DATE_SHORT",get:function(){return k}},{key:"DATE_MED",get:function(){return w}},{key:"DATE_MED_WITH_WEEKDAY",get:function(){return b}},{key:"DATE_FULL",get:function(){return S}},{key:"DATE_HUGE",get:function(){return O}},{key:"TIME_SIMPLE",get:function(){return T}},{key:"TIME_WITH_SECONDS",get:function(){return N}},{key:"TIME_WITH_SHORT_OFFSET",get:function(){return D}},{key:"TIME_WITH_LONG_OFFSET",get:function(){return M}},{key:"TIME_24_SIMPLE",get:function(){return I}},{key:"TIME_24_WITH_SECONDS",get:function(){return V}},{key:"TIME_24_WITH_SHORT_OFFSET",get:function(){return E}},{key:"TIME_24_WITH_LONG_OFFSET",get:function(){return x}},{key:"DATETIME_SHORT",get:function(){return C}},{key:"DATETIME_SHORT_WITH_SECONDS",get:function(){return F}},{key:"DATETIME_MED",get:function(){return Z}},{key:"DATETIME_MED_WITH_SECONDS",get:function(){return W}},{key:"DATETIME_MED_WITH_WEEKDAY",get:function(){return L}},{key:"DATETIME_FULL",get:function(){return j}},{key:"DATETIME_FULL_WITH_SECONDS",get:function(){return z}},{key:"DATETIME_HUGE",get:function(){return A}},{key:"DATETIME_HUGE_WITH_SECONDS",get:function(){return q}}]),t}(Symbol.for("nodejs.util.inspect.custom"));function fr(e){if(cr.isDateTime(e))return e;if(e&&e.valueOf&&ze(e.valueOf()))return cr.fromJSDate(e);if(e&&"object"==typeof e)return cr.fromObject(e);throw new g("Unknown datetime argument: "+e+", of type "+typeof e)}return e.DateTime=cr,e.Duration=kn,e.FixedOffsetZone=ce,e.IANAZone=J,e.Info=Sn,e.Interval=bn,e.InvalidZone=fe,e.Settings=be,e.SystemZone=R,e.VERSION="3.4.4",e.Zone=_,Object.defineProperty(e,"__esModule",{value:!0}),e}({}); \ No newline at end of file diff --git a/includes/admin/settings/class-metabox-api.php b/includes/admin/settings/class-metabox-api.php index d2e510e..bfad876 100644 --- a/includes/admin/settings/class-metabox-api.php +++ b/includes/admin/settings/class-metabox-api.php @@ -2,24 +2,18 @@ /** * Class to display and save a Metabox. * - * @since 3.3.0 - * * @package WebberZone\Better_Search */ namespace WebberZone\Better_Search\Admin\Settings; -use WebberZone\Better_Search\Util\Helpers; - // If this file is called directly, abort. if ( ! defined( 'WPINC' ) ) { die; } /** - * ATA Metabox class to register the metabox for ata_snippets post type. - * - * @since 3.5.0 + * Metabox API class. */ #[\AllowDynamicProperties] class Metabox_API { @@ -60,11 +54,11 @@ class Metabox_API { protected $title; /** - * Text to show to indicate a checkbox has been modified from its default value. + * Translation strings. * - * @var string Checkbox Modified Text. + * @var array Translation strings. */ - public $checkbox_modified_text; + public $translation_strings; /** * Array containing the settings' fields. @@ -80,20 +74,20 @@ class Metabox_API { * Array or string of arguments. Default is blank array. * * @type string $settings_key Settings key - is used to prepare the form fields. It is not the meta key. - * @type string $prefix Used to create the meta keys. The meta key format is _{$prefix}_{$setting_id}. - * @type string|array|\WP_Screen $post_type The post type(s) on which to show the box. - * @type array $registered_settings Settings fields array. - * @type string $checkbox_modified_text Text to show to indicate a checkbox has been modified from its default value. + * @type string $prefix Used to create the meta keys. The meta key format is _{$prefix}_{$setting_id}. + * @type string|array|\WP_Screen $post_type The post type(s) on which to show the box. + * @type array $registered_settings Settings fields array. + * @type array $translation_strings Translation strings. * } */ public function __construct( $args ) { $defaults = array( - 'settings_key' => '', - 'prefix' => '', - 'post_type' => '', - 'title' => '', - 'registered_settings' => array(), - 'checkbox_modified_text' => '', + 'settings_key' => '', + 'prefix' => '', + 'post_type' => '', + 'title' => '', + 'registered_settings' => array(), + 'translation_strings' => array(), ); $args = wp_parse_args( $args, $defaults ); @@ -192,7 +186,12 @@ public function save( $post_id ) { return; } - $settings_sanitize = new Settings_Sanitize(); + $settings_sanitize = new Settings_Sanitize( + array( + 'settings_key' => $this->settings_key, + 'prefix' => $this->prefix, + ) + ); $posted = $_POST[ $this->settings_key ]; // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized,WordPress.Security.ValidatedSanitizedInput.MissingUnslash @@ -224,7 +223,7 @@ public function save( $post_id ) { /** * Filter the post meta array which contains post-specific settings. * - * @param array $post_meta Array of ATA metabox settings. + * @param array $post_meta Array of metabox settings. * @param int $post_id Post ID */ $post_meta = apply_filters( "{$this->prefix}_meta_key", $post_meta, $post_id ); @@ -256,9 +255,9 @@ public function html( $post ) { $settings_form = new Settings_Form( array( - 'settings_key' => $this->settings_key, - 'prefix' => $this->prefix, - 'checkbox_modified_text' => $this->checkbox_modified_text, + 'settings_key' => $this->settings_key, + 'prefix' => $this->prefix, + 'translation_strings' => $this->translation_strings, ) ); @@ -286,7 +285,7 @@ public function html( $post ) { $id = $args['id']; $value = get_post_meta( $post->ID, "_{$this->prefix}_{$id}", true ); - $args['value'] = ! empty( $value ) ? $value : ( isset( $args['default'] ) ? $args['default'] : $args['options'] ); + $args['value'] = ! empty( $value ) ? $value : ( $args['default'] ?? '' ); $type = $args['type'] ?? 'text'; $callback = method_exists( $settings_form, "callback_{$type}" ) ? array( $settings_form, "callback_{$type}" ) : array( $settings_form, 'callback_missing' ); @@ -300,7 +299,7 @@ public function html( $post ) { echo ''; /** - * Action triggered when displaying Better Search meta box. + * Action triggered when displaying the meta box. * * @param object $post Post object. */ @@ -332,7 +331,7 @@ public function sanitize_post_meta( $settings ) { $ids = array(); $names = array(); - $taxes = array_unique( str_getcsv( $settings[ $key ] ) ); + $taxes = array_unique( str_getcsv( $settings[ $key ], ',', '"', '' ) ); foreach ( $taxes as $tax ) { $tax_name = get_term_by( 'name', $tax, $fields['tax'] ); diff --git a/includes/admin/settings/class-settings-api.php b/includes/admin/settings/class-settings-api.php index fe7f2c0..5a5aefc 100644 --- a/includes/admin/settings/class-settings-api.php +++ b/includes/admin/settings/class-settings-api.php @@ -5,8 +5,6 @@ * Functions to register, read, write and update settings. * Portions of this code have been inspired by Easy Digital Downloads, WordPress Settings Sandbox, WordPress Settings API class, etc. * - * @link https://webberzone.com - * * @package WebberZone\Better_Search */ @@ -20,9 +18,8 @@ /** * Settings API wrapper class * - * @version 2.6.0 + * @version 2.7.1 */ -#[\AllowDynamicProperties] class Settings_API { /** @@ -30,7 +27,7 @@ class Settings_API { * * @var string */ - const VERSION = '2.6.0'; + public const VERSION = '2.7.2'; /** * Settings Key. @@ -195,7 +192,7 @@ public function admin_body_class( $classes ) { $current_screen = get_current_screen(); if ( in_array( $current_screen->id, $this->menu_pages, true ) ) { - $classes .= ' ' . $this->prefix . '-dashboard-page'; + $classes .= " {$this->prefix}-dashboard-page"; } return $classes; } @@ -260,6 +257,10 @@ public function set_translation_strings( $strings ) { 'reset_settings' => 'Reset all settings', 'reset_button_confirm' => 'Do you really want to reset all these settings to their default values?', 'checkbox_modified' => 'Modified from default setting', + 'button_label' => 'Choose File', + 'previous_saved' => 'Previously saved', + 'repeater_new_item' => 'New Item', + 'required_label' => 'Required', ); $strings = wp_parse_args( $strings, $defaults ); @@ -337,6 +338,8 @@ public function set_upgraded_settings( $upgraded_settings = array() ) { * Add a menu page to the WordPress admin area. * * @param array $menu Array of settings for the menu page. + * + * @return string|false The resulting page’s hook_suffix, or false if the user does not have the capability required. */ public function add_custom_menu_page( $menu ) { $defaults = array( @@ -359,6 +362,8 @@ public function add_custom_menu_page( $menu ) { ); $menu = wp_parse_args( $menu, $defaults ); + $menu_page = false; + switch ( $menu['type'] ) { case 'submenu': $menu_page = add_submenu_page( @@ -424,9 +429,6 @@ public function admin_menu() { } } - // Store menu pages in a global variable for backward compatibility. - $GLOBALS[ $this->prefix . '_menu_pages' ] = $this->menu_pages; - // Load the settings contextual help. add_action( 'load-' . $this->settings_page, array( $this, 'settings_help' ) ); } @@ -478,43 +480,81 @@ public function admin_enqueue_scripts( $hook ) { // Settings API scripts. wp_register_script( - 'wz-admin-js', + 'wz-' . $this->prefix . '-admin', plugins_url( 'js/settings-admin-scripts' . $minimize . '.js', __FILE__ ), array( 'jquery' ), self::VERSION, true ); wp_register_script( - 'wz-codemirror-js', + 'wz-' . $this->prefix . '-codemirror', plugins_url( 'js/apply-cm' . $minimize . '.js', __FILE__ ), array( 'jquery' ), self::VERSION, true ); wp_register_script( - 'wz-taxonomy-suggest-js', + 'wz-' . $this->prefix . '-taxonomy-suggest', plugins_url( 'js/taxonomy-suggest' . $minimize . '.js', __FILE__ ), array( 'jquery' ), self::VERSION, true ); wp_register_script( - 'wz-media-selector-js', + 'wz-' . $this->prefix . '-media-selector', plugins_url( 'js/media-selector' . $minimize . '.js', __FILE__ ), array( 'jquery' ), self::VERSION, true ); + wp_register_style( + 'wz-' . $this->prefix . '-admin', + plugins_url( 'css/admin-style' . $minimize . '.css', __FILE__ ), + array(), + self::VERSION + ); + + // Tom Select scripts and styles. + wp_register_style( + 'wz-' . $this->prefix . '-tom-select', + plugins_url( 'css/tom-select.min.css', __FILE__ ), + array(), + self::VERSION + ); + wp_register_script( + 'wz-' . $this->prefix . '-tom-select', + plugins_url( 'js/tom-select.complete.min.js', __FILE__ ), + array( 'jquery' ), + self::VERSION, + true + ); + wp_register_script( + 'wz-' . $this->prefix . '-tom-select-init', + plugin_dir_url( __FILE__ ) . 'js/tom-select-init' . $minimize . '.js', + array( 'jquery', 'wz-' . $this->prefix . '-tom-select' ), + self::VERSION, + true + ); + wp_localize_script( + "wz-{$this->prefix}-admin", + 'WZSettingsAdmin', + array( + 'prefix' => $this->prefix, + 'settings_key' => $this->settings_key, + ) + ); if ( $hook === $this->settings_page ) { - self::enqueue_scripts_styles(); + self::enqueue_scripts_styles( $this->prefix ); } } /** * Enqueues all scripts, styles, settings, and templates necessary to use the Settings API. + * + * @param string $prefix Prefix which is used for creating the unique filters and actions. */ - public static function enqueue_scripts_styles() { + public static function enqueue_scripts_styles( $prefix ) { wp_enqueue_style( 'wp-color-picker' ); @@ -534,9 +574,28 @@ public static function enqueue_scripts_styles() { ) ); - wp_enqueue_script( 'wz-admin-js' ); - wp_enqueue_script( 'wz-codemirror-js' ); - wp_enqueue_script( 'wz-taxonomy-suggest-js' ); + wp_enqueue_script( 'wz-' . $prefix . '-admin' ); + wp_enqueue_script( 'wz-' . $prefix . '-codemirror' ); + wp_enqueue_script( 'wz-' . $prefix . '-taxonomy-suggest' ); + wp_enqueue_script( 'wz-' . $prefix . '-media-selector' ); + + // Enqueue Tom Select. + wp_enqueue_style( 'wz-' . $prefix . '-tom-select' ); + wp_enqueue_script( 'wz-' . $prefix . '-tom-select' ); + + // Localize Tom Select settings. + wp_localize_script( + 'wz-' . $prefix . '-tom-select-init', + 'WZTomSelectSettings', + array( + 'action' => $prefix . '_taxonomy_search_tom_select', + 'nonce' => wp_create_nonce( $prefix . '_taxonomy_search_tom_select' ), + 'endpoint' => 'forms', + ) + ); + wp_enqueue_script( 'wz-' . $prefix . '-tom-select-init' ); + + wp_enqueue_style( 'wz-' . $prefix . '-admin' ); } /** @@ -557,9 +616,9 @@ public function admin_init() { $this->settings_form = new Settings_Form( array( - 'settings_key' => $settings_key, - 'prefix' => $this->prefix, - 'checkbox_modified_text' => $this->translation_strings['checkbox_modified'], + 'settings_key' => $settings_key, + 'prefix' => $this->prefix, + 'translation_strings' => $this->translation_strings, ) ); @@ -574,26 +633,7 @@ public function admin_init() { foreach ( $settings as $setting ) { - $args = wp_parse_args( - $setting, - array( - 'section' => $section, - 'id' => null, - 'name' => '', - 'desc' => '', - 'type' => null, - 'default' => '', - 'options' => '', - 'max' => null, - 'min' => null, - 'step' => null, - 'size' => null, - 'field_class' => '', - 'field_attributes' => '', - 'placeholder' => '', - 'pro' => false, - ) - ); + $args = self::parse_field_args( $setting, $section ); $id = $args['id']; $name = $args['name']; @@ -611,15 +651,15 @@ public function admin_init() { } } - // Register the settings into the options table. - register_setting( - $settings_key, - $settings_key, - array( - 'sanitize_callback' => array( $this, 'settings_sanitize' ), - 'show_in_rest' => true, - ) - ); + // Register the settings into the options table. + register_setting( + $settings_key, + $settings_key, + array( + 'sanitize_callback' => array( $this, 'settings_sanitize' ), + 'show_in_rest' => true, + ) + ); } /** @@ -732,6 +772,58 @@ public function settings_reset() { delete_option( $this->settings_key ); } + /** + * Get sanitization callback for given Settings key. + * + * @param string $key Settings key. + * + * @return mixed Callback function or false if callback isn't found. + */ + public function get_sanitize_callback( $key = '' ) { + if ( empty( $key ) ) { + return false; + } + + $settings_sanitize = new Settings_Sanitize( + array( + 'settings_key' => $this->settings_key, + 'prefix' => $this->prefix, + ) + ); + + // Iterate over registered fields and see if we can find proper callback. + foreach ( $this->registered_settings as $section => $settings ) { + foreach ( $settings as $setting ) { + if ( $setting['id'] !== $key ) { + continue; + } + + // Return the callback name. + $sanitize_callback = false; + + if ( isset( $setting['sanitize_callback'] ) && is_callable( $setting['sanitize_callback'] ) ) { + $sanitize_callback = $setting['sanitize_callback']; + return $sanitize_callback; + } + + if ( is_callable( array( $settings_sanitize, 'sanitize_' . $setting['type'] . '_field' ) ) ) { + // For repeater fields, create a closure to pass the field configuration. + if ( 'repeater' === $setting['type'] ) { + return function ( $value ) use ( $settings_sanitize, $setting ) { + return $settings_sanitize->sanitize_repeater_field( $value, $setting ); + }; + } + $sanitize_callback = array( $settings_sanitize, 'sanitize_' . $setting['type'] . '_field' ); + return $sanitize_callback; + } + + return $sanitize_callback; + } + } + + return false; + } + /** * Sanitize the form data being submitted. * @@ -739,7 +831,6 @@ public function settings_reset() { * @return array Sanitized array */ public function settings_sanitize( $input ) { - // This should be set if a form is submitted, so let's save it in the $referrer variable. if ( empty( $_POST['_wp_http_referer'] ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Missing return $input; @@ -754,7 +845,7 @@ public function settings_sanitize( $input ) { $this->settings_reset(); $settings = get_option( $this->settings_key ); - add_settings_error( $this->prefix . '-notices', '', $this->translation_strings['reset_message'], 'warning' ); + add_settings_error( $this->prefix . '-notices', '', $this->translation_strings['reset_message'], 'error' ); return $settings; } @@ -773,14 +864,13 @@ public function settings_sanitize( $input ) { * * @param array $input Input unclean array */ - $input = apply_filters( "{$this->prefix}_settings_{$tab}_sanitize", $input ); + $input = apply_filters( $this->prefix . '_settings_' . $tab . '_sanitize', $input ); // Create an output array by merging the existing settings with the ones submitted. $output = array_merge( $settings, $input ); // Loop through each setting being saved and pass it through a sanitization filter. foreach ( $settings_types as $key => $type ) { - /** * Skip settings that are not really settings. * @@ -793,12 +883,18 @@ public function settings_sanitize( $input ) { } if ( array_key_exists( $key, $output ) ) { - $sanitize_callback = $this->get_sanitize_callback( $key ); // If callback is set, call it. if ( $sanitize_callback ) { - $output[ $key ] = call_user_func( $sanitize_callback, $output[ $key ] ); + // Pass the field configuration for repeater fields. + if ( 'repeater' === $type && isset( $this->registered_settings[ $key ] ) ) { + $output[ $key ] = call_user_func( $sanitize_callback, $output[ $key ], $this->registered_settings[ $key ] ); + } elseif ( 'sensitive' === $type ) { + $output[ $key ] = call_user_func( $sanitize_callback, $output[ $key ], $key ); + } else { + $output[ $key ] = call_user_func( $sanitize_callback, $output[ $key ] ); + } continue; } } @@ -820,52 +916,11 @@ public function settings_sanitize( $input ) { * Filter the settings array before it is returned. * * @param array $output Settings array. - * @param array $input Input settings array. + * @param array $input Input settings array. */ return apply_filters( $this->prefix . '_settings_sanitize', $output, $input ); } - /** - * Get sanitization callback for given Settings key. - * - * @param string $key Settings key. - * - * @return mixed Callback function or false if callback isn't found. - */ - public function get_sanitize_callback( $key = '' ) { - if ( empty( $key ) ) { - return false; - } - - $settings_sanitize = new Settings_Sanitize(); - - // Iterate over registered fields and see if we can find proper callback. - foreach ( $this->registered_settings as $section => $settings ) { - foreach ( $settings as $setting ) { - if ( $setting['id'] !== $key ) { - continue; - } - - // Return the callback name. - $sanitize_callback = false; - - if ( isset( $setting['sanitize_callback'] ) && is_callable( $setting['sanitize_callback'] ) ) { - $sanitize_callback = $setting['sanitize_callback']; - return $sanitize_callback; - } - - if ( is_callable( array( $settings_sanitize, 'sanitize_' . $setting['type'] . '_field' ) ) ) { - $sanitize_callback = array( $settings_sanitize, 'sanitize_' . $setting['type'] . '_field' ); - return $sanitize_callback; - } - - return $sanitize_callback; - } - } - - return false; - } - /** * Render the settings page. */ @@ -889,7 +944,15 @@ public function plugin_settings() {
- +
@@ -909,7 +972,7 @@ public function plugin_settings() { * Shows all the settings section labels as tab */ public function show_navigation() { - $active_tab = isset( $_GET['tab'] ) && array_key_exists( sanitize_key( wp_unslash( $_GET['tab'] ) ), $this->settings_sections ) ? sanitize_key( wp_unslash( $_GET['tab'] ) ) : 'general'; // phpcs:ignore WordPress.Security.NonceVerification.Missing, WordPress.Security.NonceVerification.Recommended + $active_tab = isset( $_GET['tab'] ) && array_key_exists( sanitize_key( wp_unslash( $_GET['tab'] ) ), $this->settings_sections ) ? sanitize_key( wp_unslash( $_GET['tab'] ) ) : $this->default_tab; // phpcs:ignore WordPress.Security.NonceVerification.Missing, WordPress.Security.NonceVerification.Recommended $html = '