/**
 *  Returns the sizes for a given Kirby file
 *
 *  Uses 'responsiveimages.sizes' option to let site owners overwrite the defaults
 *  
 *  @param   File  $file
 *  @param   int  $width  Optional. Use when you want to force image to a certain width (retina/high-PPi usecase)
 *
 *  @return  array
 */
function kirby_get_sizes_array($file, $width = null)
{
    // let users overwrite the sizes via config
    $sizes_arr = kirby()->option('responsiveimages.sizes');
    // let users overwrite the native image size via attribute
    $img_width = (empty($width) ? $file->width() : $width) . 'px';
    // default to the image width
    if (empty($sizes_arr)) {
        $sizes_arr = array(array('size_value' => '100vw', 'mq_value' => $img_width, 'mq_name' => 'max-width'), array('size_value' => $img_width));
    } else {
        $sizes_arr = array_map(function ($value) use($img_width) {
            // allow config rules relative to native image size
            return str_replace('$img_width', $img_width, $value);
        }, $sizes_arr);
    }
    return $sizes_arr;
}