find_by_label_or_id( $reference ); if ( null === $variable ) { return null; } return Variable_Type_Keys::get_resolved_type( $variable['type'] ?? '' ); } /** * If $token is a var-only token that resolves to a known size variable, returns the ready-made * size-variable PropValue `['$$type' => ..., 'value' => $id]`. Returns null if the token is not * a var, the variable is unknown, or the variable type is not a size (caller should then fall * back to the raw Size leaf or decline to customCss based on context). * * @return array{$$type: string, value: string}|null */ public static function resolve_size_var_prop_value( ?Variables_Service $service, string $token ): ?array { if ( 'size' !== self::resolve_var_only_token_type( $service, $token ) ) { return null; } $reference = Css_Var_Reference::parse( trim( $token ) ); $variable = $service->find_by_label_or_id( $reference ); $id = $variable['id'] ?? ''; if ( '' === $id ) { return null; } $prop_type_key = Prop_Type_Adapter::GLOBAL_CUSTOM_SIZE_VARIABLE_KEY === ( $variable['type'] ?? '' ) ? Size_Variable_Prop_Type::get_key() : ( $variable['type'] ?? '' ); return [ '$$type' => $prop_type_key, 'value' => $id, ]; } }