{"version":3,"file":"ListSortAndCount_2.D-m9qEWJ.mjs","names":["React.useMemo","React.useState","React.useRef"],"sources":["https:/framerusercontent.com/modules/61V64Jg8W9TfZDiSKbXu/jL0bGAB6KTtsq4PWZEXT/ListSortAndCount_2.js"],"sourcesContent":["// List sort and count — v0.2.1 (nested Framer CMS grid fix)\n// Adds a sort control, a live result count, a best-effort \"clear all\" and a designed empty state\n// to a Framer collection list, beside Framer's native dynamic filters. It never replaces the filters.\n// Written fresh for STYDIO. Brand-neutral: no site tokens, no site selectors, no site events.\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import*as React from\"react\";import{addPropertyControls,ControlType,RenderTarget,useIsStaticRenderer}from\"framer\";// Framer may persist an enum as its option title; fold both forms to the value.\nfunction pick(value,options,fallback){const key=String(value??\"\").trim().toLowerCase().replace(/[\\s_]+/g,\"-\");return options[key]??fallback;}const KINDS={text:\"text\",\"a-z\":\"text\",title:\"text\",number:\"number\",numeric:\"number\",date:\"date\"};const DIRECTIONS={asc:\"asc\",ascending:\"asc\",\"low-to-high\":\"asc\",\"a-z\":\"asc\",desc:\"desc\",descending:\"desc\",\"high-to-low\":\"desc\",\"z-a\":\"desc\"};const ANIMATIONS={none:\"none\",fade:\"fade\",move:\"move\"};const REVEALS={none:\"none\",fade:\"fade\",rise:\"rise\"};const APPEARANCES={dropdown:\"dropdown\",select:\"dropdown\",segmented:\"segmented\"};const SIZES={s:\"s\",m:\"m\",l:\"l\",small:\"s\",medium:\"m\",large:\"l\"};const DEFAULT_OPTIONS=[{label:\"Newest\",fieldLayer:\"\",kind:\"date\",direction:\"desc\"},{label:\"A to Z\",fieldLayer:\"\",kind:\"text\",direction:\"asc\"}];export function resolveOptions(raw){const list=Array.isArray(raw)?raw:[];const out=[];for(const o of list){if(!o||typeof o!==\"object\")continue;const item=o;out.push({label:String(item.label??\"\").trim()||`Option ${out.length+1}`,fieldLayer:String(item.fieldLayer??\"\").trim(),kind:pick(item.kind,KINDS,\"text\"),direction:pick(item.direction,DIRECTIONS,\"asc\")});}return out.length?out:DEFAULT_OPTIONS;}// ---------- key parsing (exported for the harness) ----------\nconst MONTHS={jan:0,january:0,feb:1,february:1,mar:2,march:2,apr:3,april:3,may:4,jun:5,june:5,jul:6,july:6,aug:7,august:7,sep:8,sept:8,september:8,oct:9,october:9,nov:10,november:10,dec:11,december:11};const ARABIC_INDIC=\"٠١٢٣٤٥٦٧٨٩\";export function normaliseText(text){return String(text??\"\").replace(/[٠-٩]/g,d=>String(ARABIC_INDIC.indexOf(d))).replace(/\\s+/g,\" \").trim();}const num=s=>Number(s??Number.NaN);export function parseNumber(text){const t=normaliseText(text);const m=t.match(/-?\\d{1,3}(?:[,  ]\\d{3})+(?:\\.\\d+)?|-?\\d+(?:\\.\\d+)?/);if(!m)return null;const n=Number(m[0].replace(/[,  ]/g,\"\"));return Number.isFinite(n)?n:null;}export function parseDate(text){const t=normaliseText(text);let m;if(m=t.match(/\\b(\\d{4})-(\\d{2})-(\\d{2})\\b/))return Date.UTC(num(m[1]),num(m[2])-1,num(m[3]));if(m=t.match(/\\b(\\d{1,2})(?:st|nd|rd|th)?\\s+([A-Za-z]{3,9})\\.?,?\\s+(\\d{4})\\b/)){const mo=MONTHS[String(m[2]).toLowerCase()];if(mo!=null)return Date.UTC(num(m[3]),mo,num(m[1]));}if(m=t.match(/\\b([A-Za-z]{3,9})\\.?\\s+(\\d{1,2})(?:st|nd|rd|th)?,?\\s+(\\d{4})\\b/)){const mo=MONTHS[String(m[1]).toLowerCase()];if(mo!=null)return Date.UTC(num(m[3]),mo,num(m[2]));}if(m=t.match(/\\b([A-Za-z]{3,9})\\.?\\s+(\\d{4})\\b/)){const mo=MONTHS[String(m[1]).toLowerCase()];if(mo!=null)return Date.UTC(num(m[2]),mo,1);}if(m=t.match(/\\b(\\d{1,2})[/.](\\d{1,2})[/.](\\d{4})\\b/)){const a=num(m[1]),b=num(m[2]);const day=a>12?a:b,month=a>12?b:a;if(month>=1&&month<=12&&day>=1&&day<=31)return Date.UTC(num(m[3]),month-1,day);}if(m=t.match(/\\b((?:19|20)\\d{2})\\b/))return Date.UTC(num(m[1]),0,1);return null;}export function renderCount(template,n,total){return String(template??\"\").replace(/\\{n\\}/g,String(n)).replace(/\\{total\\}/g,String(total)).replace(/\\{s\\}/g,n===1?\"\":\"s\").replace(/\\{S\\}/g,n===1?\"\":\"S\");}function childElements(el){if(!el)return[];if(el.children&&typeof el.children.length===\"number\")return Array.from(el.children);return Array.from(el.childNodes??[]).filter(n=>n&&n.nodeType===1);}function layerName(el){if(!el||typeof el.getAttribute!==\"function\")return\"\";return el.getAttribute(\"data-framer-name\")||el.getAttribute(\"name\")||\"\";}function sameName(a,b){return a.trim().toLowerCase()===b.trim().toLowerCase();}function displayOf(el){const win=el?.ownerDocument?.defaultView;return win?.getComputedStyle?win.getComputedStyle(el).display:\"\";}function isVisible(el){if(!el)return false;if(typeof el.getClientRects===\"function\"){if(el.getClientRects().length>0)return true;// Framer SSR wrappers use display:contents and have no box themselves.\nif(displayOf(el)===\"contents\")return childElements(el).some(isVisible);return false;}return true;}function layoutElement(el){let current=el;for(let depth=0;depth<20&&displayOf(current)===\"contents\";depth++){const child=childElements(current).find(isVisible);if(!child)break;current=child;}return current;}function classOf(el){const c=el?.className;if(typeof c===\"string\")return c;return typeof el?.getAttribute===\"function\"&&el.getAttribute(\"class\")||\"\";}export function findAllByName(root,name){const out=[];if(!name.trim())return out;const rec=el=>{for(const c of childElements(el)){if(sameName(layerName(c),name))out.push(c);rec(c);}};rec(root);return out;}function findVisibleByName(root,name){const all=findAllByName(root,name);return all.find(isVisible)??all[0]??null;}export function textOf(el){if(!el)return\"\";if(typeof el.textContent===\"string\")return normaliseText(el.textContent);let s=\"\";const rec=n=>{for(const c of n.childNodes??[]){if(c.nodeType===3)s+=c.nodeValue??c.textContent??\"\";else if(c.nodeType===1)rec(c);}};rec(el);return normaliseText(s);}function firstHeadingText(el){let found=null;const rec=n=>{for(const c of childElements(n)){if(found!=null)return;if(/^h[1-6]$/i.test(String(c.tagName||\"\"))){found=textOf(c);return;}rec(c);}};rec(el);return found;}export function keyOf(item,option){const source=option.fieldLayer?findAllByName(item,option.fieldLayer)[0]??null:null;const text=source?textOf(source):option.kind===\"text\"?firstHeadingText(item)??textOf(item):textOf(item);if(option.kind===\"number\")return parseNumber(text);if(option.kind===\"date\")return parseDate(text);return text?text.toLowerCase():null;}export function sortItems(items,option){const collator=typeof Intl!==\"undefined\"&&Intl.Collator?new Intl.Collator(undefined,{numeric:true,sensitivity:\"base\"}):null;const rows=items.map((el,i)=>({el,i,key:keyOf(el,option)}));rows.sort((a,b)=>{if(a.key==null&&b.key==null)return a.i-b.i;if(a.key==null)return 1;if(b.key==null)return-1;let c=typeof a.key===\"number\"&&typeof b.key===\"number\"?a.key-b.key:collator?collator.compare(String(a.key),String(b.key)):String(a.key).localeCompare(String(b.key));if(option.direction===\"desc\")c=-c;return c||a.i-b.i;});return rows.map(r=>r.el);}// Resolve the real repeated-item parent beneath a named page wrapper.\n// Keep SSR/component wrappers as the sortable units, rather than moving links\n// out of their React-rendered containers.\nexport function resolveItemParent(list,itemLayer){if(!list)return list;const named=itemLayer.trim()?findAllByName(list,itemLayer):[];if(named.length>1){let parent=named[0].parentNode;while(parent&&parent!==list){if(named.every(item=>parent.contains(item)))return parent;parent=parent.parentNode;}return list;}let parent=list;for(let depth=0;depth<20;depth++){const kids=childElements(parent);if(kids.length!==1)break;const child=kids[0];const classes=classOf(child).split(/\\s+/);if(itemLayer.trim()&&sameName(layerName(child),itemLayer)||classes.includes(\"ssr-variant\")||classes.some(value=>value.endsWith(\"-container\"))||String(child.tagName||\"\").toLowerCase()===\"a\"||childElements(child).length===0)break;parent=child;}return parent;}// The repeated items: children named like the item layer, else the largest group of siblings sharing a class\n// (the empty state and a load-more button have their own classes).\nexport function itemsOf(list,itemLayer,memo){const kids=childElements(list);if(itemLayer.trim()){const named=kids.filter(k=>sameName(layerName(k),itemLayer)||findAllByName(k,itemLayer).length>0);if(named.length)return named;}const groups=new Map;for(const k of kids){const sig=classOf(k);const g=groups.get(sig);if(g)g.push(k);else groups.set(sig,[k]);}let best=[];for(const g of groups.values())if(g.length>best.length)best=g;if(best.length>=2){memo.sig=classOf(best[0]);return best;}if(memo.sig!=null)return groups.get(memo.sig)??[];return best;}// Layout position of an item, ignoring a translate this component may have written itself.\nfunction rectOf(el){if(!el||typeof el.getBoundingClientRect!==\"function\")return{top:0,left:0};const r=layoutElement(el).getBoundingClientRect();let top=r.top,left=r.left;const t=el.style&&typeof el.style.translate===\"string\"?el.style.translate:\"\";const m=t?/(-?[\\d.]+)px\\s+(-?[\\d.]+)px/.exec(t):null;if(m){left-=Number(m[1]);top-=Number(m[2]);}return{top,left};}// Our own inline transitions are never \"previous\" values worth restoring.\nconst ownTransition=v=>/(^|,)\\s*(translate|opacity) /.test(v||\"\");function later(rt,ms,fn){const id=rt.win.setTimeout(()=>{rt.timers.delete(id);fn();},ms);rt.timers.add(id);}function frame(rt,fn){if(typeof rt.win.requestAnimationFrame!==\"function\"){fn();return;}const id=rt.win.requestAnimationFrame(()=>{rt.frames.delete(id);fn();});rt.frames.add(id);}function writeOrder(list,items,sorted,reorderDom){if(reorderDom){const current=childElements(list).filter(k=>items.includes(k));if(current.length===sorted.length&&current.every((el,i)=>el===sorted[i]))return false;for(const el of sorted)list.appendChild(el);return true;}let changed=false;sorted.forEach((el,i)=>{const next=String(i);const target=layoutElement(el);if(target.style.order!==next){target.style.order=next;changed=true;}});return changed;}// Applies a sorted order with the chosen animation and returns every item's final layout position.\n// Move = FLIP through the `translate` property, which Framer's own motion never touches. `before` supplies\n// remembered positions when Framer has already re-rendered the list (survivors slide to their new place).\nfunction applyOrder(list,items,sorted,opts){const{rt}=opts;const final=new Map;if(opts.animation===\"fade\"){const prev=list.style.transition;list.style.transition=`opacity ${Math.max(0,opts.duration/2)}ms ease`;list.style.opacity=\"0\";later(rt,opts.duration/2,()=>{writeOrder(list,items,sorted,opts.reorderDom);rt.observer?.takeRecords?.();for(const el of sorted)final.set(el,rectOf(el));list.style.opacity=\"\";later(rt,opts.duration/2+20,()=>{list.style.transition=prev;});});return final;}const before=opts.animation===\"move\"?opts.before??new Map(sorted.map(el=>[el,rectOf(el)])):null;const changed=writeOrder(list,items,sorted,opts.reorderDom);rt.observer?.takeRecords?.();for(const el of sorted)final.set(el,rectOf(el));if(!before||!changed&&!opts.before)return final;const moved=[];for(const el of sorted){const a=before.get(el);if(!a)continue;const b=final.get(el)??rectOf(el);const dx=a.left-b.left,dy=a.top-b.top;if(Math.abs(dx)<.5&&Math.abs(dy)<.5)continue;moved.push({el,transition:ownTransition(el.style.transition)?\"\":el.style.transition});rt.inFlight.add(el);el.style.transition=\"none\";el.style.translate=`${dx}px ${dy}px`;}if(!moved.length)return final;frame(rt,()=>frame(rt,()=>{for(const m of moved){m.el.style.transition=`translate ${opts.duration}ms cubic-bezier(0.2, 0.7, 0.2, 1)`;m.el.style.translate=\"0px 0px\";}}));later(rt,opts.duration+60,()=>{for(const m of moved){m.el.style.transition=m.transition;m.el.style.translate=\"\";rt.inFlight.delete(m.el);}});return final;}// Items Framer animates itself (appear effects) carry an inline opacity or the appear id; they are left alone.\nfunction managedByFramer(el){if(!el)return true;if(typeof el.getAttribute===\"function\"&&el.getAttribute(\"data-framer-appear-id\"))return true;return!!(el.style&&el.style.opacity!==\"\"&&el.style.opacity!=null);}// Hides fresh items before the next paint; the reveal animation runs from the effect a few milliseconds later.\nexport function prehideItems(items,kind,seen,pending){for(const el of items){if(seen.has(el)||pending.includes(el)||managedByFramer(el))continue;el.style.opacity=\"0\";if(kind===\"rise\")el.style.translate=\"0px 12px\";pending.push(el);}}// Fades (and rises) freshly rendered items in, with a short stagger, then clears every inline style it wrote.\nfunction revealItems(items,kind,duration,rt){const stagger=Math.min(40,Math.max(0,Math.floor(400/Math.max(1,items.length))));for(const el of items){rt.inFlight.add(el);el.style.transition=\"none\";el.style.opacity=\"0\";if(kind===\"rise\")el.style.translate=\"0px 12px\";}frame(rt,()=>frame(rt,()=>{items.forEach((el,i)=>{el.style.transition=`opacity ${duration}ms ease, translate ${duration}ms cubic-bezier(0.2, 0.7, 0.2, 1)`;el.style.transitionDelay=`${i*stagger}ms`;el.style.opacity=\"\";el.style.translate=\"\";});}));later(rt,duration+stagger*items.length+80,()=>{for(const el of items){el.style.transition=\"\";el.style.transitionDelay=\"\";rt.inFlight.delete(el);}});}function restoreItems(list,original,originalChildren,reorderDom){for(const el of original){if(!el?.style)continue;layoutElement(el).style.order=\"\";el.style.translate=\"\";el.style.transition=\"\";el.style.transitionDelay=\"\";el.style.opacity=\"\";}if(reorderDom&&list){for(const el of originalChildren)if(el.parentNode===list)list.appendChild(el);}}function formHasSubmit(form){let found=false;const rec=n=>{for(const c of childElements(n)){const tag=String(c.tagName||\"\").toLowerCase();const type=String(c.type||typeof c.getAttribute===\"function\"&&c.getAttribute(\"type\")||\"\").toLowerCase();if(tag===\"button\"&&(type===\"submit\"||type===\"\")||tag===\"input\"&&type===\"submit\"){found=true;return;}rec(c);}};rec(form);return found;}function insideSubmittableForm(el){let p=el?.parentNode;while(p){if(String(p.tagName||\"\").toLowerCase()===\"form\"&&formHasSubmit(p))return true;p=p.parentNode;}return false;}function setNativeValue(el,value){let setter;try{const g=typeof globalThis!==\"undefined\"?globalThis:{};const protos=[g.HTMLInputElement,g.HTMLTextAreaElement,g.HTMLSelectElement].filter(Boolean);for(const P of protos)if(el instanceof P){setter=Object.getOwnPropertyDescriptor(P.prototype,\"value\")?.set;break;}}catch{}if(setter)setter.call(el,value);else el.value=value;for(const type of[\"input\",\"change\"]){try{el.dispatchEvent(new Event(type,{bubbles:true}));}catch{}}}// Best-effort reset of the native filter controls inside a scope. Inputs inside a submittable form are never touched.\nexport function clearInputs(scope){let changed=0;const rec=n=>{for(const el of childElements(n)){const tag=String(el.tagName||\"\").toLowerCase();const type=String(el.type||typeof el.getAttribute===\"function\"&&el.getAttribute(\"type\")||\"\").toLowerCase();const attr=k=>typeof el.getAttribute===\"function\"?el.getAttribute(k):null;if(tag===\"input\"&&!insideSubmittableForm(el)){if(type===\"checkbox\"||type===\"radio\"){if(el.checked){el.click?.();changed++;}}else if(type!==\"button\"&&type!==\"submit\"&&type!==\"hidden\"&&type!==\"reset\"){if(el.value){setNativeValue(el,\"\");changed++;}}}else if(tag===\"textarea\"&&!insideSubmittableForm(el)){if(el.value){setNativeValue(el,\"\");changed++;}}else if(tag===\"select\"&&!insideSubmittableForm(el)){if((el.selectedIndex??0)>0){const first=el.options?.[0];setNativeValue(el,first?String(first.value??\"\"):\"\");changed++;}}else if(tag===\"button\"&&attr(\"aria-pressed\")===\"true\"){el.click?.();changed++;}else if(attr(\"role\")===\"tab\"&&attr(\"aria-selected\")===\"true\"){const tabs=childElements(el.parentNode).filter(t=>typeof t.getAttribute===\"function\"&&t.getAttribute(\"role\")===\"tab\");const first=tabs[0];if(first&&first!==el){first.click?.();changed++;}}rec(el);}};rec(scope);return changed;}// Presses a Framer layer the way a pointer would, so its \"Reset variables\" tap interaction runs.\nexport function pressLayer(el){const g=typeof globalThis!==\"undefined\"?globalThis:{};const Ctor=g.PointerEvent||g.MouseEvent||g.Event;for(const type of[\"pointerdown\",\"pointerup\"]){try{el.dispatchEvent(new Ctor(type,{bubbles:true,cancelable:true,isPrimary:true,pointerType:\"mouse\",button:0}));}catch{}}if(typeof el.click===\"function\")el.click();}// The filters scope: the named layer, else the nearest ancestor of this component that also holds the list. Never the whole page.\nfunction scopeFor(doc,root,list,filtersLayer){const named=findVisibleByName(doc.body,filtersLayer);if(named)return named;if(!list||!root)return null;let p=root.parentNode;while(p&&p!==doc.body&&!(typeof p.contains===\"function\"&&p.contains(list)))p=p.parentNode;return p&&p!==doc.body?p:null;}function countVisible(items){return items.filter(isVisible).length;}const SIZE_TABLE={s:{font:12,padX:10,minH:32,gap:8},m:{font:14,padX:14,minH:40,gap:12},l:{font:16,padX:18,minH:48,gap:16}};/**\n * List sort and count\n *\n * @framerSupportedLayoutWidth any\n * @framerSupportedLayoutHeight auto\n */export default function ListSortAndCount(props){const{listLayer=\"Items\",itemLayer=\"Item\",defaultSort=0,sortLabel=\"Sort by\",showCount=true,countText=\"{n} result{s}\",emptyState=true,emptyTitle=\"Nothing here yet.\",emptyBody=\"Try another filter.\",clearAll=false,clearLabel=\"Clear all\",filtersLayer=\"Filters\",resetLayer=\"Reset filters\",durationMs=260,reorderDom=false,radius=8,font={},textColor=\"#171717\",mutedColor=\"#6E6E6E\",accentColor=\"#171717\",onAccentColor=\"#FFFFFF\",ruleColor=\"#DCDCDC\",backgroundColor=\"#FFFFFF\",canvasNote=true,style}=props;const animation=pick(props.animation,ANIMATIONS,\"move\");const filterReveal=pick(props.filterReveal,REVEALS,\"rise\");const appearanceWanted=pick(props.appearance,APPEARANCES,\"dropdown\");const size=pick(props.size,SIZES,\"m\");const rawOptions=props.sortOptions;const options=React.useMemo(()=>resolveOptions(rawOptions),[rawOptions]);// Segmented shows up to three options, then falls back to the dropdown.\nconst appearance=appearanceWanted===\"segmented\"&&options.length<=3?\"segmented\":\"dropdown\";const clampIndex=i=>Math.max(0,Math.min(options.length-1,Math.round(Number(i)||0)));const isStatic=useIsStaticRenderer();const onCanvas=RenderTarget.current()===RenderTarget.canvas;const idle=isStatic||onCanvas;const[selected,setSelected]=React.useState(()=>clampIndex(defaultSort));const[mounted,setMounted]=React.useState(false);const[count,setCount]=React.useState(null);const[total,setTotal]=React.useState(0);const[listFound,setListFound]=React.useState(true);const[scan,setScan]=React.useState(0);const rootRef=React.useRef(null);const buttonRefs=React.useRef([]);const st=React.useRef({list:null,items:[],sig:null,original:[],originalChildren:[],timers:new Set,frames:new Set,observer:null,animateNext:false,maxSeen:0,seen:new WeakSet,pending:[],firstRun:true,rects:new Map,inFlight:new Set});const selectId=React.useId();const liveRef=React.useRef({listLayer,itemLayer,filterReveal});liveRef.current={listLayer,itemLayer,filterReveal};React.useEffect(()=>{setSelected(clampIndex(defaultSort));},[defaultSort,options.length])// eslint-disable-line react-hooks/exhaustive-deps\n;React.useEffect(()=>{if(idle||typeof document===\"undefined\")return;setMounted(true);},[idle]);// Find the list, apply the current sort, count the visible items.\nReact.useEffect(()=>{if(!mounted||idle||typeof document===\"undefined\")return;const doc=document;const win=window;const s=st.current;// The copy of this component inside a hidden breakpoint stays idle.\nif(rootRef.current&&!isVisible(rootRef.current))return;const keep=s.list&&typeof doc.body.contains===\"function\"&&doc.body.contains(s.list)&&isVisible(s.list);const list=resolveItemParent(keep?s.list:findVisibleByName(doc.body,listLayer),itemLayer);s.list=list;if(!list){setListFound(false);setCount(null);return;}setListFound(true);if(!keep||!s.originalChildren.length)s.originalChildren=childElements(list);const items=itemsOf(list,itemLayer,s);for(const el of items)if(!s.original.includes(el))s.original.push(el);const fresh=s.firstRun?[]:items.filter(el=>!s.seen.has(el)&&(s.pending.includes(el)||!managedByFramer(el)));for(const el of items)s.seen.add(el);s.firstRun=false;s.items=items;const option=options[Math.min(selected,options.length-1)];const reduced=typeof win.matchMedia===\"function\"&&win.matchMedia(\"(prefers-reduced-motion: reduce)\").matches;let finalRects=null;if(option&&items.length){const rt={win,timers:s.timers,frames:s.frames,observer:s.observer,inFlight:s.inFlight};const sorted=sortItems(items,option);const duration=Math.max(0,durationMs);if(s.animateNext)finalRects=applyOrder(list,items,sorted,{reorderDom,animation:reduced?\"none\":animation,duration,rt});else{// Framer re-rendered the list: write the order at once, then slide the items that survived to their new places.\nconst before=new Map;for(const el of items){const r=s.rects.get(el);if(r&&!fresh.includes(el)&&!s.inFlight.has(el))before.set(el,r);}finalRects=applyOrder(list,items,sorted,{reorderDom,animation:animation===\"move\"&&!reduced&&before.size?\"move\":\"none\",duration,rt,before});}}const nextRects=finalRects??new Map(items.map(el=>[el,rectOf(el)]));// An item still animating reports a mid-flight position; keep the layout position remembered for it.\nfor(const el of s.inFlight){const r=s.rects.get(el);if(r&&nextRects.has(el))nextRects.set(el,r);}s.rects=nextRects;s.animateNext=false;const rtReveal={win,timers:s.timers,frames:s.frames,observer:s.observer,inFlight:s.inFlight};if(fresh.length&&filterReveal!==\"none\"&&!reduced)revealItems(fresh,filterReveal,Math.max(0,durationMs),rtReveal);else for(const el of s.pending){el.style.opacity=\"\";el.style.translate=\"\";}s.pending=[];const visible=countVisible(items);s.maxSeen=Math.max(s.maxSeen,visible);setCount(visible);setTotal(s.maxSeen);},[mounted,idle,listLayer,itemLayer,options,selected,scan,animation,filterReveal,durationMs,reorderDom]);// Framer re-renders the list when a filter changes or the breakpoint switches: re-apply and recount.\nReact.useEffect(()=>{if(!mounted||idle||typeof document===\"undefined\"||typeof MutationObserver===\"undefined\")return;const win=window;const s=st.current;let timer=null;const bump=()=>{if(timer!=null)return;timer=win.setTimeout(()=>{timer=null;setScan(n=>n+1);},40);};const observer=new MutationObserver(()=>{try{const live=liveRef.current;const reduced=typeof win.matchMedia===\"function\"&&win.matchMedia(\"(prefers-reduced-motion: reduce)\").matches;if(live.filterReveal!==\"none\"&&!reduced){const doc=document;const list=s.list&&doc.body.contains(s.list)&&isVisible(s.list)?s.list:resolveItemParent(findVisibleByName(doc.body,live.listLayer),live.itemLayer);if(list)prehideItems(itemsOf(list,live.itemLayer,s),live.filterReveal,s.seen,s.pending);}}catch{}bump();});// Children of the list (items come and go) and the list's parent (the list itself may be replaced); never the count text.\nif(s.list)observer.observe(s.list,{childList:true,subtree:true});observer.observe(s.list&&s.list.parentNode||document.body,{childList:true});s.observer=observer;win.addEventListener(\"resize\",bump);return()=>{observer.disconnect();if(s.observer===observer)s.observer=null;win.removeEventListener(\"resize\",bump);if(timer!=null)win.clearTimeout(timer);};},[mounted,idle,listFound]);// Undo every write on unmount.\nReact.useEffect(()=>{if(!mounted||idle)return;const s=st.current;return()=>{const win=typeof window!==\"undefined\"?window:null;if(win){for(const id of s.timers)win.clearTimeout(id);for(const id of s.frames)win.cancelAnimationFrame?.(id);}s.timers.clear();s.frames.clear();restoreItems(s.list,s.original,s.originalChildren,reorderDom);};},[mounted,idle,reorderDom]);const choose=index=>{const next=clampIndex(index);if(next===selected)return;st.current.animateNext=true;setSelected(next);};// Clear all: a Framer button with the \"Reset variables\" interaction, named like Reset layer, resets every filter reliably;\n// without one, the native inputs inside the filters layer are reset on a best-effort basis.\nconst onClear=()=>{if(typeof document===\"undefined\")return;const doc=document;const reset=resetLayer.trim()?findVisibleByName(doc.body,resetLayer):null;if(reset){pressLayer(reset);return;}const scope=scopeFor(doc,rootRef.current,st.current.list,filtersLayer);if(scope)clearInputs(scope);};const onKey=(e,i)=>{const rtl=!!rootRef.current&&typeof getComputedStyle===\"function\"&&getComputedStyle(rootRef.current)?.direction===\"rtl\";let next;if(e.key===\"ArrowRight\"||e.key===\"ArrowDown\")next=rtl&&e.key===\"ArrowRight\"?i-1:i+1;else if(e.key===\"ArrowLeft\"||e.key===\"ArrowUp\")next=rtl&&e.key===\"ArrowLeft\"?i+1:i-1;else if(e.key===\"Home\")next=0;else if(e.key===\"End\")next=options.length-1;else return;e.preventDefault();next=(next+options.length)%options.length;choose(next);const target=buttonRefs.current[next];if(target&&typeof target.focus===\"function\")target.focus();};const sz=SIZE_TABLE[size];// Form controls do not inherit type by default; the root carries the chosen family or a neutral system stack.\nconst fontStyle={fontFamily:\"inherit\",fontSize:sz.font,lineHeight:1.2,...font};const rootFamily=font?.fontFamily||\"system-ui, -apple-system, 'Segoe UI', sans-serif\";const weight=font?.fontWeight??500;const n=onCanvas?12:count??0;const tot=onCanvas?12:Math.max(total,n);const filtered=onCanvas||count!=null&&total>count;const showEmpty=emptyState&&!idle&&mounted&&listFound&&count===0;const clearButton=clearAll?/*#__PURE__*/_jsx(\"button\",{type:\"button\",onClick:onClear,\"data-list-sort-count-clear\":\"\",style:{appearance:\"none\",background:\"transparent\",border:0,margin:0,padding:`0 ${Math.max(4,sz.padX-6)}px`,minHeight:sz.minH,cursor:\"pointer\",...fontStyle,fontWeight:weight,color:textColor,textDecoration:\"underline\",textUnderlineOffset:3,borderRadius:radius},children:clearLabel}):null;const countNode=showCount?/*#__PURE__*/_jsx(\"p\",{\"aria-live\":\"polite\",\"aria-atomic\":\"true\",\"data-list-sort-count-count\":\"\",style:{...fontStyle,margin:0,color:mutedColor,visibility:!onCanvas&&count==null?\"hidden\":\"visible\"},children:renderCount(countText,n,tot)}):null;let sortControl;if(appearance===\"segmented\"){sortControl=/*#__PURE__*/_jsx(\"div\",{role:\"radiogroup\",\"aria-label\":sortLabel,style:{display:\"inline-flex\",alignItems:\"center\",gap:2,padding:2,background:backgroundColor,border:`1px solid ${ruleColor}`,borderRadius:radius},children:options.map((o,i)=>{const active=i===selected;return /*#__PURE__*/_jsx(\"button\",{ref:el=>{buttonRefs.current[i]=el;},type:\"button\",role:\"radio\",\"aria-checked\":active,tabIndex:active?0:-1,onClick:()=>choose(i),onKeyDown:e=>onKey(e,i),\"data-list-sort-count-option\":i,style:{appearance:\"none\",border:0,margin:0,background:active?accentColor:\"transparent\",color:active?onAccentColor:textColor,...fontStyle,fontWeight:weight,padding:`0 ${sz.padX}px`,minHeight:sz.minH-6,borderRadius:Math.max(0,radius-2),cursor:\"pointer\",whiteSpace:\"nowrap\",transition:\"background-color 160ms ease, color 160ms ease\"},children:o.label},i);})});}else{sortControl=/*#__PURE__*/_jsxs(\"span\",{style:{display:\"inline-flex\",alignItems:\"center\",gap:8},children:[/*#__PURE__*/_jsx(\"label\",{htmlFor:selectId,style:{...fontStyle,color:mutedColor,cursor:\"pointer\"},children:sortLabel}),/*#__PURE__*/_jsxs(\"span\",{style:{position:\"relative\",display:\"inline-flex\"},children:[/*#__PURE__*/_jsx(\"select\",{id:selectId,value:selected,onChange:e=>choose(Number(e.target.value)),\"data-list-sort-count-select\":\"\",style:{appearance:\"none\",WebkitAppearance:\"none\",...fontStyle,fontWeight:weight,color:textColor,background:backgroundColor,border:`1px solid ${ruleColor}`,borderRadius:radius,minHeight:sz.minH,paddingInlineStart:sz.padX,paddingInlineEnd:sz.padX+18,margin:0,cursor:\"pointer\"},children:options.map((o,i)=>/*#__PURE__*/_jsx(\"option\",{value:i,children:o.label},i))}),/*#__PURE__*/_jsx(\"svg\",{\"aria-hidden\":\"true\",width:\"10\",height:\"6\",viewBox:\"0 0 10 6\",style:{position:\"absolute\",insetInlineEnd:sz.padX-2,top:\"50%\",transform:\"translateY(-50%)\",pointerEvents:\"none\"},children:/*#__PURE__*/_jsx(\"path\",{d:\"M1 1l4 4 4-4\",fill:\"none\",stroke:textColor,strokeWidth:\"1.5\",strokeLinecap:\"round\",strokeLinejoin:\"round\"})})]})]});}const css=`[data-list-sort-count] select:focus-visible,[data-list-sort-count] button:focus-visible{outline:2px solid ${accentColor};outline-offset:2px}[data-list-sort-count] button:hover{opacity:.85}@media (prefers-reduced-motion:reduce){[data-list-sort-count] *{transition:none!important}}`;const note=onCanvas&&canvasNote?/*#__PURE__*/_jsx(\"p\",{style:{flexBasis:\"100%\",fontFamily:\"system-ui, sans-serif\",fontSize:11,lineHeight:1.4,color:\"#666\",margin:0,maxWidth:480},children:`Sorts the collection list named “${listLayer}” on the published site, where the count and the empty state go live. Keys come from a date, number or title inside each item, or from the layer named in the option.`}):null;return /*#__PURE__*/_jsxs(\"div\",{ref:rootRef,\"data-list-sort-count\":\"\",style:{...style,position:\"relative\",display:\"flex\",flexWrap:\"wrap\",alignItems:\"center\",justifyContent:\"space-between\",gap:sz.gap,width:\"100%\",boxSizing:\"border-box\",fontFamily:rootFamily},children:[/*#__PURE__*/_jsx(\"style\",{dangerouslySetInnerHTML:{__html:css}}),countNode,/*#__PURE__*/_jsx(\"div\",{style:{display:\"inline-flex\",alignItems:\"center\",gap:sz.gap,marginInlineStart:\"auto\"},children:filtered?clearButton:null}),showEmpty?/*#__PURE__*/_jsxs(\"div\",{role:\"status\",\"data-list-sort-count-empty\":\"\",style:{flexBasis:\"100%\",padding:`${sz.minH}px 0`,borderTop:`1px solid ${ruleColor}`,display:\"flex\",flexDirection:\"column\",alignItems:\"flex-start\",gap:8},children:[/*#__PURE__*/_jsx(\"p\",{style:{...fontStyle,fontSize:sz.font+6,fontWeight:600,color:textColor,margin:0},children:emptyTitle}),/*#__PURE__*/_jsx(\"p\",{style:{...fontStyle,color:mutedColor,margin:0},children:emptyBody}),clearButton]}):null,note]});}addPropertyControls(ListSortAndCount,{listLayer:{type:ControlType.String,title:\"List layer\",defaultValue:\"Items\",description:\"Name of the collection list layer on this page.\"},itemLayer:{type:ControlType.String,title:\"Item layer\",defaultValue:\"Item\",description:\"Name of the repeated item. When no child has this name, the repeated items are detected from their shared class.\"},sortOptions:{type:ControlType.Array,title:\"Sort options\",maxCount:8,description:\"Field layer: name of the layer inside each item that holds the value. Leave it empty to read the first date, number or title in the item.\",control:{type:ControlType.Object,controls:{label:{type:ControlType.String,title:\"Label\",defaultValue:\"Newest\"},fieldLayer:{type:ControlType.String,title:\"Field layer\",defaultValue:\"\"},kind:{type:ControlType.Enum,title:\"Kind\",options:[\"text\",\"number\",\"date\"],optionTitles:[\"Text\",\"Number\",\"Date\"],defaultValue:\"date\"},direction:{type:ControlType.Enum,title:\"Direction\",options:[\"asc\",\"desc\"],optionTitles:[\"Ascending\",\"Descending\"],defaultValue:\"desc\",displaySegmentedControl:true}}},defaultValue:DEFAULT_OPTIONS},defaultSort:{type:ControlType.Number,title:\"Default sort\",defaultValue:0,min:0,max:7,step:1,displayStepper:true,description:\"Position of the option selected on load, counted from 0.\"},sortLabel:{type:ControlType.String,title:\"Sort label\",defaultValue:\"Sort by\"},showCount:{type:ControlType.Boolean,title:\"Show count\",defaultValue:true},countText:{type:ControlType.String,title:\"Count text\",defaultValue:\"{n} result{s}\",description:\"{n} visible items, {s} plural s ({S} for capitals), {total} all items.\",hidden:p=>p.showCount===false},emptyState:{type:ControlType.Boolean,title:\"Empty state\",defaultValue:true,description:\"Shown when every item is filtered out.\"},emptyTitle:{type:ControlType.String,title:\"Empty title\",defaultValue:\"Nothing here yet.\",hidden:p=>p.emptyState===false},emptyBody:{type:ControlType.String,title:\"Empty body\",defaultValue:\"Try another filter.\",hidden:p=>p.emptyState===false},clearAll:{type:ControlType.Boolean,title:\"Clear all\",defaultValue:false,description:\"Best effort: resets the native filter inputs it can find in the filters layer.\"},clearLabel:{type:ControlType.String,title:\"Clear label\",defaultValue:\"Clear all\",hidden:p=>p.clearAll!==true},resetLayer:{type:ControlType.String,title:\"Reset layer\",defaultValue:\"Reset filters\",description:\"A button with Framer's Reset variables interaction, named like this. Clear all presses it, which resets every filter, tabs included. It can be tiny or visually hidden.\",hidden:p=>p.clearAll!==true},filtersLayer:{type:ControlType.String,title:\"Filters layer\",defaultValue:\"Filters\",description:\"Without a reset layer: the layer holding the native filter inputs, reset one by one. Inputs inside a form with a submit button are never touched.\",hidden:p=>p.clearAll!==true},animation:{type:ControlType.Enum,title:\"Animation\",options:[\"none\",\"fade\",\"move\"],optionTitles:[\"None\",\"Fade\",\"Move\"],defaultValue:\"move\",description:\"Move slides each item to its new place; off under reduced motion.\"},filterReveal:{type:ControlType.Enum,title:\"Filter reveal\",options:[\"none\",\"fade\",\"rise\"],optionTitles:[\"None\",\"Fade\",\"Rise\"],defaultValue:\"rise\",description:\"How items appear after Framer re-renders the list (filters, load more). Items with Framer appear effects are left to Framer; off under reduced motion.\"},durationMs:{type:ControlType.Number,title:\"Duration ms\",defaultValue:260,min:0,max:1200,step:10,description:\"Shared by the sort animation and the filter reveal.\",hidden:p=>pick(p.animation,ANIMATIONS,\"move\")===\"none\"&&pick(p.filterReveal,REVEALS,\"rise\")===\"none\"},reorderDom:{type:ControlType.Boolean,title:\"Reorder DOM\",defaultValue:false,description:\"Moves the items in the document, so reading and tab order follow the sort. Off: the order is visual only.\"},appearance:{type:ControlType.Enum,title:\"Appearance\",options:[\"dropdown\",\"segmented\"],optionTitles:[\"Dropdown\",\"Segmented\"],defaultValue:\"dropdown\",displaySegmentedControl:true,description:\"Segmented shows up to three options, then falls back to the dropdown.\"},size:{type:ControlType.Enum,title:\"Size\",options:[\"s\",\"m\",\"l\"],optionTitles:[\"S\",\"M\",\"L\"],defaultValue:\"m\",displaySegmentedControl:true},radius:{type:ControlType.Number,title:\"Radius\",defaultValue:8,min:0,max:40,step:1},font:{type:ControlType.Font,title:\"Font\",controls:\"extended\",defaultValue:{fontSize:14,fontWeight:500}},textColor:{type:ControlType.Color,title:\"Text color\",defaultValue:\"#171717\"},mutedColor:{type:ControlType.Color,title:\"Muted color\",defaultValue:\"#6E6E6E\"},accentColor:{type:ControlType.Color,title:\"Accent color\",defaultValue:\"#171717\"},onAccentColor:{type:ControlType.Color,title:\"On accent color\",defaultValue:\"#FFFFFF\"},ruleColor:{type:ControlType.Color,title:\"Rule color\",defaultValue:\"#DCDCDC\"},backgroundColor:{type:ControlType.Color,title:\"Background color\",defaultValue:\"#FFFFFF\"},canvasNote:{type:ControlType.Boolean,title:\"Canvas note\",defaultValue:true}});\nexport const __FramerMetadata__ = {\"exports\":{\"findAllByName\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"itemsOf\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"resolveItemParent\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"parseNumber\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"prehideItems\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"pressLayer\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"normaliseText\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"sortItems\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"SortOption\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"parseDate\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"reactComponent\",\"name\":\"ListSortAndCount\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutHeight\":\"auto\",\"framerContractVersion\":\"1\",\"framerSupportedLayoutWidth\":\"any\"}},\"resolveOptions\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"clearInputs\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"keyOf\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"renderCount\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"textOf\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./ListSortAndCount_2.map"],"mappings":"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"}