*/ public function parse_declarations( string $css ): array { $rules = []; foreach ( explode( ';', $css ) as $declaration ) { $declaration = trim( $declaration ); $separator = strpos( $declaration, ':' ); if ( false === $separator ) { continue; } $property = strtolower( trim( substr( $declaration, 0, $separator ) ) ); $value = trim( substr( $declaration, $separator + 1 ) ); if ( '' === $property || '' === $value || 'null' === $value ) { continue; } $rules[] = [ 'property' => $property, 'value' => $value, ]; } return $rules; } public function normalize_state( ?string $selector ): ?string { if ( null === $selector || '' === $selector ) { return null; } $state = strtolower( ltrim( $selector, ':' ) ); return in_array( $state, Style_Variants_Merger::PSEUDO_STATES, true ) ? $state : null; } }