Submit
Path:
~
/
home
/
getwphos
/
public_html
/
BenjaminMarc2023
/
wp-content
/
plugins
/
wpforms-lite
/
src
/
Frontend
/
File Content:
CSSVars.php
<?php namespace WPForms\Frontend; /** * CSS variables class. * * @since 1.8.1 */ class CSSVars { /** * Root vars and values. * * @since 1.8.1 * * @var array */ const ROOT_VARS = [ 'field-border-radius' => '3px', 'field-background-color' => '#ffffff', 'field-border-color' => 'rgba( 0, 0, 0, 0.25 )', 'field-text-color' => 'rgba( 0, 0, 0, 0.7 )', 'label-color' => 'rgba( 0, 0, 0, 0.85 )', 'label-sublabel-color' => 'rgba( 0, 0, 0, 0.55 )', 'label-error-color' => '#d63637', 'button-border-radius' => '3px', 'button-background-color' => '#066aab', 'button-text-color' => '#ffffff', ]; /** * Field Size vars and values. * * @since 1.8.1 * * @var array */ const FIELD_SIZE = [ 'small' => [ 'input-height' => '31px', 'input-spacing' => '10px', 'font-size' => '14px', 'line-height' => '17px', 'padding-h' => '9px', 'checkbox-size' => '14px', 'sublabel-spacing' => '5px', 'icon-size' => '0.75', ], 'medium' => [ 'input-height' => '43px', 'input-spacing' => '15px', 'font-size' => '16px', 'line-height' => '19px', 'padding-h' => '14px', 'checkbox-size' => '16px', 'sublabel-spacing' => '5px', 'icon-size' => '1', ], 'large' => [ 'input-height' => '50px', 'input-spacing' => '20px', 'font-size' => '18px', 'line-height' => '21px', 'padding-h' => '14px', 'checkbox-size' => '18px', 'sublabel-spacing' => '10px', 'icon-size' => '1.25', ], ]; /** * Label Size vars and values. * * @since 1.8.1 * * @var array */ const LABEL_SIZE = [ 'small' => [ 'font-size' => '14px', 'line-height' => '17px', 'sublabel-font-size' => '13px', 'sublabel-line-height' => '16px', ], 'medium' => [ 'font-size' => '16px', 'line-height' => '19px', 'sublabel-font-size' => '14px', 'sublabel-line-height' => '17px', ], 'large' => [ 'font-size' => '18px', 'line-height' => '21px', 'sublabel-font-size' => '16px', 'sublabel-line-height' => '19px', ], ]; /** * Button Size vars and values. * * @since 1.8.1 * * @var array */ const BUTTON_SIZE = [ 'small' => [ 'font-size' => '14px', 'height' => '37px', 'padding-h' => '15px', 'margin-top' => '5px', ], 'medium' => [ 'font-size' => '17px', 'height' => '41px', 'padding-h' => '15px', 'margin-top' => '10px', ], 'large' => [ 'font-size' => '20px', 'height' => '48px', 'padding-h' => '20px', 'margin-top' => '15px', ], ]; /** * Render engine. * * @since 1.8.1 * * @var string */ private $render_engine; /** * CSS variables. * * @since 1.8.1 * * @var array */ private $css_vars; /** * Flag to check if root CSS vars were output. * * @since 1.8.1 * * @var bool */ private $is_root_vars_displayed; /** * Initialize class. * * @since 1.8.1 */ public function init() { $this->init_vars(); $this->hooks(); } /** * Register hooks. * * @since 1.8.1 */ private function hooks() { add_action( 'wp_head', [ $this, 'output_root' ], PHP_INT_MAX ); } /** * CSS variables data. * * @since 1.8.1 */ private function init_vars() { $vars = []; $vars[':root'] = array_merge( self::ROOT_VARS, $this->get_complex_vars( 'field-size', self::FIELD_SIZE['medium'] ), $this->get_complex_vars( 'label-size', self::LABEL_SIZE['medium'] ), $this->get_complex_vars( 'button-size', self::BUTTON_SIZE['medium'] ) ); /** * Allows developers to modify default CSS variables which output on the frontend. * * @since 1.8.1 * * @param array $vars CSS variables two-dimensional array. * First level keys is the CSS selector. * Second level keys is the variable name without the `--wpforms-` prefix. */ $this->css_vars = apply_filters( 'wpforms_frontend_css_vars_init_vars', $vars ); } /** * Get complex CSS variables data. * * @since 1.8.1 * * @param string $prefix CSS variable prefix. * @param array $values Values. */ public function get_complex_vars( $prefix, $values ) { $vars = []; foreach ( $values as $key => $value ) { $vars[ "{$prefix}-{$key}" ] = $value; } return $vars; } /** * Get CSS variables data by selector. * * @since 1.8.1 * * @param string $selector Selector. * * @return array */ public function get_vars( $selector ) { if ( empty( $selector ) ) { $selector = ':root'; } if ( empty( $this->css_vars[ $selector ] ) ) { return []; } return $this->css_vars[ $selector ]; } /** * Output root CSS variables. * * @since 1.8.1 * @since 1.8.1.2 Added $force argument. * * @param bool $force Force output root variables. */ public function output_root( $force = false ) { if ( ! empty( $this->is_root_vars_displayed ) && empty( $force ) ) { return; } $this->output_selector_vars( ':root', $this->css_vars[':root'] ); $this->is_root_vars_displayed = true; } /** * Output selector's CSS variables. * * @since 1.8.1 * * @param string $selector Selector. * @param array $vars Variables data. * @param string $style_id Style tag Id attribute. Optional. Defaults to empty string. */ public function output_selector_vars( $selector, $vars, $style_id = '' ) { if ( empty( $this->render_engine ) ) { $this->render_engine = wpforms_get_render_engine(); } if ( $this->render_engine === 'classic' ) { return; } $style_id = empty( $style_id ) ? 'wpforms-css-vars-' . $selector : $style_id; printf( '<style id="%1$s"> %2$s { %3$s } </style>', sanitize_key( $style_id ), $selector, // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped esc_html( $this->get_vars_css( $vars ) ) ); } /** * Generate CSS code from given vars data. * * @since 1.8.1 * * @param array $vars Variables data. */ private function get_vars_css( $vars ) { $result = ''; foreach ( $vars as $name => $value ) { $result .= "--wpforms-{$name}: {$value};\n"; } return $result; } /** * Get customized CSS vars. * * @since 1.8.3 * * @param array $attr Attributes passed by integration. * * @return array */ public function get_customized_css_vars( $attr ) { $root_css_vars = $this->get_vars( ':root' ); $css_vars = []; foreach ( $attr as $key => $value ) { $var_name = strtolower( preg_replace( '/[A-Z]/', '-$0', $key ) ); // Skip attribute that is not the CSS var or has the default value. if ( empty( $root_css_vars[ $var_name ] ) || $root_css_vars[ $var_name ] === $value ) { continue; } $css_vars[ $var_name ] = $value; } $css_vars = array_merge( $css_vars, $this->get_size_css_vars( $attr, $css_vars ) ); return $css_vars; } /** * Get size CSS vars. * * @since 1.8.3 * * @param array $attr Attributes passed by integration. * @param array $css_vars Current CSS vars. * * @return array */ private function get_size_css_vars( $attr, $css_vars ) { $size_items = [ 'field', 'label', 'button' ]; foreach ( $size_items as $item ) { $item_attr = $item . 'Size'; $item_key = $item . '-size'; $item_constant = 'self::' . strtoupper( $item ) . '_SIZE'; if ( empty( $attr[ $item_attr ] ) ) { continue; } $css_vars += $this->get_complex_vars( $item_key, constant( $item_constant )[ $attr[ $item_attr ] ] ); } return $css_vars; } }
Edit
Rename
Chmod
Delete
FILE
FOLDER
Name
Size
Permission
Action
Amp.php
8888 bytes
0644
CSSVars.php
7713 bytes
0644
Captcha.php
16105 bytes
0644
Classic.php
8991 bytes
0644
Frontend.php
62743 bytes
0644
Modern.php
7196 bytes
0644
N4ST4R_ID | Naxtarrr