['1 / 1','small','carousel'],'square-medium'=>['1 / 1','medium','carousel'],'square-large'=>['1 / 1','large','carousel'],'portrait'=>['3 / 4','medium','carousel'],'landscape'=>['16 / 9','large','carousel'],'stories'=>['9 / 16','small','carousel'],'hero'=>['16 / 9','hero','hero'],'spotlight'=>['1 / 1','large','spotlight'],'brand-story'=>['16 / 9','large','story'],'editorial'=>['3 / 4','large','editorial'],'seasonal'=>['16 / 9','hero','banner']];
}
function picsart_collection_public_media($id) {
if (get_post_type($id)!=='attachment' || !in_array(get_post_status($id),['inherit','publish'],true)) return false;
$parent=wp_get_post_parent_id($id); return !$parent || get_post_status($parent)==='publish';
}
function picsart_collection_https($url) {return wp_parse_url((string)$url,PHP_URL_SCHEME)==='https'?esc_url_raw($url,['https']):'';}
function picsart_collection_render($a) {
$presets=picsart_collection_presets();$preset=$presets[$a['preset']??'square-medium']??$presets['square-medium'];
$ratio=in_array($a['ratio']??'', ['1 / 1','3 / 4','16 / 9','9 / 16'],true)?$a['ratio']:$preset[0];
$size=in_array($a['size']??'', ['small','medium','large','hero'],true)?$a['size']:$preset[1];
$fit=($a['fit']??'contain')==='cover'?'cover':'contain';$gap=max(0,min(64,(int)($a['gap']??16)));$radius=max(0,min(40,(int)($a['radius']??0)));
$x=max(0,min(100,(int)($a['focusX']??50)));$y=max(0,min(100,(int)($a['focusY']??50)));$items=[];$seen=[];
foreach (array_slice(is_array($a['items']??null)?$a['items']:[],0,20) as $item) {
$id=absint($item['id']??0);if (!$id || isset($seen[$id]) || !picsart_collection_public_media($id)) continue;$seen[$id]=true;
$mime=get_post_mime_type($id);$url=wp_get_attachment_url($id);if (!$url) continue;
$style='aspect-ratio:'.$ratio.';object-fit:'.$fit.';object-position:'.$x.'% '.$y.'%;border-radius:'.$radius.'px';
$title=mb_substr(sanitize_text_field($item['title']??get_the_title($id)),0,120);$alt=mb_substr(sanitize_text_field($item['alt']??get_post_meta($id,'_wp_attachment_image_alt',true)),0,300);
if (wp_attachment_is_image($id)) $media=' '.nl2br(esc_html($transcript)).'';
elseif (in_array($mime,['video/mp4','video/webm'],true)) {
$poster=absint($item['poster']??0);$poster_url=$poster&&picsart_collection_public_media($poster)&&wp_attachment_is_image($poster)?wp_get_attachment_url($poster):'';
$start=max(0,min(7200,(float)($item['start']??0)));$end=max(0,min(7200,(float)($item['end']??0)));if ($end && $end<=$start) $end=0;
$media='';
} else continue;
$link=picsart_collection_https($item['link']??'');$caption=!empty($a['showTitles'])?'
'.esc_html__('Transcript','picsart-commerce').'
'.nl2br(esc_html($description)).'
':'').($cta&&$label?''.esc_html($label).'':''); return '