Icon Picker field: no MIME type restriction + other ACF field types unusable for inline SVG

I’ve been trying to render inline SVGs from ACF fields inside a Bricks query loop (repeater inside a flexible content layout) and spent a fair amount of time going down dead ends before finding the right approach. Documenting it here for others.

What I tried and why it failed

File field : Bricks hardcodes $filters['link'] = true in the file case of provider-acf.php, so the output is always a formatted download link regardless of field settings. There is no code path that returns raw file content.

Image field: Bricks casts the value to an array and extracts attachment IDs via wp_list_pluck, then renders an <img> tag. I attempted to hook acf/load_value to intercept the raw ID and return SVG content instead, but this doesn’t work for repeater subfields. Bricks reads those values directly from the already-loaded loop object array rather than calling get_field(), so the filter never fires in that context.

Icon Picker field: This is the only field type with explicit SVG handling in the Provider_Acf provider class:

case 'icon_picker':
    $value = $this->process_icon_picker_field( $value, $field, $context, $filters );
    if ( $value && \Bricks\Helpers::is_valid_svg( $value ) ) {
        return $value;
    }
    break;

This works correctly. It is clearly the intended path for inline SVG rendering.

The problem

The Icon Picker has no built-in MIME type restriction. The image and file field types both support a mime_types setting that limits what users can select from the media library. The Icon Picker has no equivalent, so nothing in the UI prevents users from selecting a PNG or JPG, which then silently produces no output since is_valid_svg returns false.

My Feature Requests

  1. Consider adding a raw SVG passthrough option to the image or file field type, similar to what is already implemented for the Icon Picker. The existing is_valid_svg check could be reused: if the resolved file is a valid SVG and the context calls for it, return the raw content rather than routing through the media rendering pipeline. This would make the more familiar image and file field types viable for inline SVG use cases.
  2. If that’s out of scope, please document that Icon Picker is the correct field type for inline SVG output in Bricks. It is not obvious, and the alternatives appear to work (no errors, no warnings) but silently produce the wrong output.