refactor(color): unify color sanitizing and picking behind shared components
- Add AKSRT\Core\Color::sanitize($value, $allow_alpha) as the single PHP color sanitizer; replace sanitize_hex_color calls and per-class regexes (FloatButtons, FieldSchema, ThemeSearch, icon cards, TicketStatusService) - SchemaProvider / ControllerBase sanitize `color` fields as colors; alpha kept only when the schema sets showAlpha - Split SchemaProvider OAuth validation and option matching into sibling traits to stay under the 1000-line limit - Add AksColorPicker.vue + utils/color.js mirroring the PHP rules; AksField, FloatBtnCommonFields and TicketStatusPanel use it - Widget background color input now uses wpColorPicker - Remove dead AksCompositeField dimensions/spacing/background branches and the unused Gutenberg ColorPicker var - Add color-unification contract test; update harness requires and tests Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
1 parent
74021d26bb
commit
57ff405691
32 files changed
+522
-456
No files matched your search
@@ -167,11 +167,8 @@ if (!function_exists('aksrt_icon_card')) :
|
||||
}
|
||||
|
||||
$style = '';
|
||||
$custom_color = sanitize_hex_color((string) $args['icon_custom_color']);
|
||||
if (!$custom_color && preg_match('/^rgba?\(\s*\d{1,3}\s*,\s*\d{1,3}\s*,\s*\d{1,3}(?:\s*,\s*(?:0|1|0?\.\d+))?\s*\)$/', (string) $args['icon_custom_color'])) {
|
||||
$custom_color = (string) $args['icon_custom_color'];
|
||||
}
|
||||
if (!$radius && $custom_color) {
|
||||
$custom_color = \AKSRT\Core\Color::sanitize($args['icon_custom_color'], true);
|
||||
if (!$radius && $custom_color !== '') {
|
||||
$style = ' style="color:' . esc_attr($custom_color) . ';"';
|
||||
}
|
||||
|
||||
@@ -327,8 +324,8 @@ if (!function_exists('aksrt_icon_cover_card')) :
|
||||
$icon_size = max(14, min(64, (int) $args['icon_size']));
|
||||
// legacy always sets font-size on the icon badge.
|
||||
$style = 'font-size: ' . $icon_size . 'px;';
|
||||
$custom_color = sanitize_hex_color((string) $args['icon_custom_color']);
|
||||
if ($custom_color) {
|
||||
$custom_color = \AKSRT\Core\Color::sanitize($args['icon_custom_color'], true);
|
||||
if ($custom_color !== '') {
|
||||
$style .= 'color:' . $custom_color . ';';
|
||||
}
|
||||
|
||||
|
||||
Reference in new issue
Block a user