diff --git a/composer.json b/composer.json index c930044..41914b7 100644 --- a/composer.json +++ b/composer.json @@ -1,6 +1,6 @@ { "name": "octfx/template-styles-extender", - "version": "1.1.7", + "version": "1.1.8", "type": "mediawiki-extension", "description": "Extends TemplateStyles with new CSS properties", "homepage": "http://www.mediawiki.org/wiki/Extension:TemplateStylesExtender", diff --git a/extension.json b/extension.json index 12adf5e..1212c15 100644 --- a/extension.json +++ b/extension.json @@ -1,6 +1,6 @@ { "name": "TemplateStylesExtender", - "version": "1.1.7", + "version": "1.1.8", "author": [ "[https://www.mediawiki.org/wiki/User:Octfx Octfx]" ], diff --git a/includes/StylePropertySanitizerExtender.php b/includes/StylePropertySanitizerExtender.php index 5e23371..1d75037 100644 --- a/includes/StylePropertySanitizerExtender.php +++ b/includes/StylePropertySanitizerExtender.php @@ -21,6 +21,7 @@ declare( strict_types=1 ); namespace MediaWiki\Extension\TemplateStylesExtender; +use MediaWiki\Extension\TemplateStylesExtender\Matcher\VarNameMatcher; use Wikimedia\CSS\Grammar\Alternative; use Wikimedia\CSS\Grammar\FunctionMatcher; use Wikimedia\CSS\Grammar\KeywordMatcher; @@ -93,6 +94,31 @@ class StylePropertySanitizerExtender extends StylePropertySanitizer { } ), ] ); + $props['border'] = UnorderedGroup::someOf( [ + new KeywordMatcher( [ + 'none', 'hidden', 'dotted', 'dashed', 'solid', 'double', 'groove', 'ridge', 'inset', 'outset' + ] ), + new Alternative( [ + new KeywordMatcher( [ 'thin', 'medium', 'thick' ] ), $matcherFactory->length(), + ] ), + new Alternative( [ + $matcherFactory->color(), + new FunctionMatcher( 'var', new VarNameMatcher() ), + ] ) + ] ); + + $props['box-shadow'] = new Alternative( [ + new KeywordMatcher( 'none' ), + Quantifier::hash( UnorderedGroup::allOf( [ + Quantifier::optional( new KeywordMatcher( 'inset' ) ), + Quantifier::count( $matcherFactory->length(), 2, 4 ), + Quantifier::optional(new Alternative( [ + $matcherFactory->color(), + new FunctionMatcher( 'var', new VarNameMatcher() ), + ] ) ), + ] ) ) + ] ); + $this->cache[__METHOD__] = $props; self::$extendedCssBorderBackground = true;