HEX
Server: Apache
System: Linux server2.voipitup.com.au 4.18.0-553.109.1.lve.el8.x86_64 #1 SMP Thu Mar 5 20:23:46 UTC 2026 x86_64
User: posscale (1027)
PHP: 8.2.30
Disabled: exec,passthru,shell_exec,system
Upload Files
File: /home/posscale/www/printmanager/vendor/spatie/color/src/HsPatterns.php
<?php

namespace Spatie\Color;

class HsPatterns
{
    protected const HUE = '\d{1,3}';
    protected const COMPONENT = '\d{1,3}(?:\.\d+)?%?';
    protected const ALPHA = '[0-1](?:\.\d{1,2})?';

    private const VALIDATION_PATTERNS = [
        'hsb' => '/^ *hs[vb]\( *-?' . self::HUE . ' *, *' . self::COMPONENT . ' *, *' . self::COMPONENT . ' *\) *$/i',
        'hsl' => '/^ *hsl\( *-?' . self::HUE . ' *, *' . self::COMPONENT . ' *, *' . self::COMPONENT . ' *\) *$/i',
        'hsla' => '/^ *hsla\( *' . self::HUE . ' *, *' . self::COMPONENT . ' *, *' . self::COMPONENT . ' *, *' . self::ALPHA . ' *\) *$/i',
    ];

    private const EXTRACTION_PATTERNS = [
        'hsb' => '/hs[vb]\( *(-?' . self::HUE . ') *, *(' . self::COMPONENT . ') *, *(' . self::COMPONENT . ') *\)/i',
        'hsl' => '/hsl\( *(-?' . self::HUE . ') *, *(' . self::COMPONENT . ') *, *(' . self::COMPONENT . ') *\)/i',
        'hsla' => '/hsla\( *(' . self::HUE . ') *, *(' . self::COMPONENT . ') *, *(' . self::COMPONENT . ') *, *(' . self::ALPHA . ') *\)/i',
    ];

    public static function getValidationPattern(string $type): string
    {
        if (! isset(self::VALIDATION_PATTERNS[$type])) {
            throw new \InvalidArgumentException('Invalid color type: ' . $type);
        }

        return self::VALIDATION_PATTERNS[$type];
    }

    public static function getExtractionPattern(string $type): string
    {
        if (! isset(self::EXTRACTION_PATTERNS[$type])) {
            throw new \InvalidArgumentException('Invalid color type: ' . $type);
        }

        return self::EXTRACTION_PATTERNS[$type];
    }
}