{"version":3,"file":"DocketTimeline.5eBSEKp5.mjs","names":["useId","useRef","useState","useMemo"],"sources":["https:/framerusercontent.com/modules/0zYV0TDeR0gvMIpztQ36/Qzr7RG135XmKzQMwjijD/DocketTimeline.js"],"sourcesContent":["// Docket Timeline: the signature moment of the Docket template (direction B, \"The docket\", picked 2026-10-14).\n// A matter drawn as a dated record: stations (Instructed, Claim filed ... Resolved), each with its date and day number,\n// and one result line at the end. When a firm may not publish results, the switch \"Show result\" swaps the line for\n// \"Result not published.\" plus how long the matter took.\n//\n// Layout follows the CONTAINER, not the window (ResizeObserver; a CSS container query covers the server render):\n// wide = horizontal, stations spaced by real time (with a minimum gap so labels never collide); narrow = vertical,\n// with the space between rows growing with the days between stations.\n//\n// Motion: draws station by station once, when it scrolls into view. Built on Firm's ResultLine fail-to-final rules:\n// the server render, the Framer canvas, thumbnails, a browser without IntersectionObserver, a hidden tab, a docket\n// already on screen at load and a docket the reader has already scrolled past all show the FINISHED docket. It only\n// rewinds while it is just below the screen (25% band), so it never visibly blanks. Reduced motion: no travel, one\n// 200ms fade to the finished docket. transform / opacity only, curve cubic-bezier(0.23, 1, 0.32, 1).\n// Edit in the properties panel; on a CMS page bind \"Stations (text)\", \"Result\" and \"Show result\" to Matter fields.\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addPropertyControls,ControlType,RenderTarget,useIsStaticRenderer}from\"framer\";import{useEffect,useId,useLayoutEffect,useMemo,useRef,useState}from\"react\";// <shared> plain JS on purpose (no type annotations): components/docket-test.html and docket-timeline.test.mjs\n// extract this block and run it, so the test page draws with exactly this logic.\nconst DAY_MS=864e5;const MONTHS=[\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"May\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Oct\",\"Nov\",\"Dec\"];const EASE=\"cubic-bezier(0.23, 1, 0.32, 1)\";const NOMINAL_WIDTH=1e3// server render: positions are computed for this width, then refined in the browser\n;/** \"2025-03-04\" or an ISO timestamp from Framer's Date control -> UTC ms, or null. Rejects 2025-02-30. */function parseDate(s){const m=/^(\\d{4})-(\\d{2})-(\\d{2})/.exec(String(s||\"\").trim());if(!m)return null;const t=Date.UTC(+m[1],+m[2]-1,+m[3]);const d=new Date(t);return d.getUTCMonth()===+m[2]-1&&d.getUTCDate()===+m[3]?t:null;}function formatDate(t){const d=new Date(t);return String(d.getUTCDate()).padStart(2,\"0\")+\" \"+MONTHS[d.getUTCMonth()]+\" \"+d.getUTCFullYear();}/** One station per line: \"2025-03-04 | Instructed | optional note\". Blank lines are skipped. */function parseStationsText(text){return String(text||\"\").split(/\\r?\\n/).map(line=>{const p=line.split(\"|\").map(s=>s.trim());return{date:p[0]||\"\",label:p[1]||\"\",note:p.slice(2).join(\" | \")};}).filter(s=>s.date||s.label);}/** Valid stations only (a date and a label), in the order entered, each with its day number (first = Day 1). */function normalise(list){const out=[];for(const s of list||[]){const t=parseDate(s&&s.date);if(t==null||!s.label)continue;out.push({t,iso:new Date(t).toISOString().slice(0,10),date:formatDate(t),label:String(s.label),note:String(s.note||\"\")});}const t0=out.length?out[0].t:0;out.forEach(s=>{s.day=Math.round((s.t-t0)/DAY_MS)+1;});return out;}/** Elapsed days -> \"16 days\", \"11 weeks\", \"7 months\", \"2 years\". */function durationText(days){const n=(v,w)=>v+\" \"+w+(v===1?\"\":\"s\");if(days<21)return n(Math.max(1,days),\"day\");if(days<=90)return n(Math.round(days/7),\"week\");const m=Math.round(days/30.4375);return m<24?n(m,\"month\"):n(Math.round(days/365.25),\"year\");}/** The line shown when the result is not published: \"Result not published. Resolved 7 months after instruction.\" */function offLine(offText,durationLine,stations){const a=String(offText||\"\").trim();if(stations.length<2)return a;const days=stations[stations.length-1].day-stations[0].day;const b=String(durationLine||\"\").replace(\"{duration}\",durationText(days)).trim();return(a+\" \"+b).trim();}/**\n * Horizontal positions as % of the width, proportional to time, at least `minGap` px apart, the last station at\n * width - minGap (its label needs the room). null when the stations cannot fit at that width.\n */function layoutX(days,width,minGap){const n=days.length;if(n<2)return n?[0]:[];const span=width-minGap;if(!(width>0)||span<minGap*(n-1))return null;const d0=days[0],range=days[n-1]-d0;const x=days.map((d,i)=>range>0?span*Math.min(1,Math.max(0,(d-d0)/range)):span*i/(n-1));x[0]=0;for(let i=1;i<n-1;i++)x[i]=Math.max(x[i],x[i-1]+minGap);x[n-1]=span;for(let i=n-2;i>=0;i--)x[i]=Math.min(x[i],x[i+1]-minGap);return x.map(v=>Math.round(v/width*1e4)/100);}/** Vertical: extra space under each row, proportional to the days until the next station (0..maxExtra px). */function rowGaps(days,maxExtra){const gaps=days.slice(1).map((d,i)=>Math.max(0,d-days[i]));const top=Math.max(1,...gaps);return days.map((_,i)=>i<gaps.length?Math.round(maxExtra*gaps[i]/top):0);}/**\n * Mode + positions for a container width (0 = not measured yet: \"auto\", the CSS container query decides).\n * layout: \"Auto\" | \"Horizontal\" | \"Vertical\". xs/ws are % of the width (ws = room until the next station).\n */function computeLayout(days,width,layout,breakpoint,minGap){const n=days.length;let xs=layoutX(days,width>0?width:NOMINAL_WIDTH,minGap);const fits=!!xs;if(!xs)xs=days.map((_,i)=>n>1?i*(100-100/n)/(n-1):0);let mode=\"auto\";if(layout===\"Horizontal\")mode=\"h\";else if(layout===\"Vertical\")mode=\"v\";else if(width>0)mode=width>=breakpoint&&fits?\"h\":\"v\";const ws=xs.map((x,i)=>i<n-1?xs[i+1]-x:100-x);return{mode,xs,ws};}/** Money and percentages in the result line, so they can carry the accent: \"for £48,000.\" -> [..., \"£48,000\", ...] */function splitFigures(text){const s=String(text||\"\"),out=[];let last=0;s.replace(/([£$€]\\s?\\d+(?:,\\d{3})*(?:\\.\\d+)?(?:\\s?(?:k|m|bn)\\b)?|\\d+(?:,\\d{3})*(?:\\.\\d+)?\\s?%)/g,(m,_g,off)=>{if(off>last)out.push({s:s.slice(last,off),fig:false});out.push({s:m,fig:true});last=off+m.length;return m;});if(last<s.length)out.push({s:s.slice(last),fig:false});return out;}/** Last hex or rgb() colour in a string (Framer colour styles arrive as \"var(--token-x, #A32D3A)\"). */function parseColor(c){const s=String(c||\"\");const re=/#([0-9a-f]{3,8})\\b|rgba?\\(([^)]+)\\)/gi;let m,hit=null;while(m=re.exec(s))hit=m;if(!hit)return null;if(hit[1]){let h=hit[1];if(h.length===3||h.length===4)h=h.split(\"\").map(x=>x+x).join(\"\");return[0,2,4].map(i=>parseInt(h.slice(i,i+2),16));}const p=hit[2].split(/[\\s,/]+/).filter(Boolean).slice(0,3).map(parseFloat);return p.length===3&&p.every(isFinite)?p:null;}/** WCAG contrast ratio of two colours; 0 when either cannot be read (the caller then stays on the safe side). */function contrast(a,b){const A=parseColor(a),B=parseColor(b);if(!A||!B)return 0;const lum=rgb=>{const c=rgb.map(v=>{v/=255;return v<=.03928?v/12.92:Math.pow((v+.055)/1.055,2.4);});return .2126*c[0]+.7152*c[1]+.0722*c[2];};const x=lum(A),y=lum(B);return(Math.max(x,y)+.05)/(Math.min(x,y)+.05);}/** All styles, scoped to one instance class. Horizontal rules are written twice: for a measured wide container\n *  (data-mode=h) and, inside a container query, for the server render before anything is measured. */function docketCss(u,breakpoint){const R=\".\"+u;const H=p=>`\n${p} .o{display:grid}\n${p} .st{grid-area:1/1;display:block;margin-left:calc(var(--x) * 1cqw);width:calc(var(--w) * 1cqw - 20px);padding:0 0 22px}\n${p} .st.last{width:calc(var(--w) * 1cqw)}\n${p} .d{display:block;height:44px;line-height:22px;font-size:16px}\n${p} .day{display:block;font-size:14px;line-height:22px}\n${p} .st .day{position:static}\n${p} .st .t{padding-right:0}\n${p} .r{position:relative;display:block;left:auto;top:auto;bottom:auto;width:auto;height:20px;margin:6px 0 16px}\n${p} .dot{left:0;top:4px;width:13px;height:13px}\n${p} .seg{left:13px;top:10px;bottom:auto;width:calc(var(--w) * 1cqw - 13px);height:1.5px;transform-origin:0 50%}\n${p} .l{font-size:24px;line-height:1.12}\n${p} .n{max-width:16em;margin-top:8px}\n${p} .res{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:24px;padding:22px 0 6px}\n${p} .on{font-size:clamp(28px, 3.4cqw, 44px)}\n${p} .off{font-size:26px}\n${p} .sw{margin-top:0}\n${p}[data-s=ready] .seg{transform:scaleX(0)}`;return`\n${R}{position:relative;container-type:inline-size;color:var(--tx);font:400 15px/1.45 var(--bf);-webkit-font-smoothing:antialiased}\n${R} *{box-sizing:border-box}\n${R} .o{list-style:none;margin:0;padding:0}\n${R} .st{position:relative;display:grid;grid-template-columns:104px 28px minmax(0,1fr);align-items:start;padding:12px 0 calc(14px + var(--pb, 0px))}\n${R} .d{grid-column:1;font:500 15px/24px var(--bf);font-variant-numeric:tabular-nums lining-nums;letter-spacing:.01em;white-space:nowrap}\n${R} .day{display:block;font:500 13px/18px var(--bf);font-variant-numeric:tabular-nums lining-nums;color:var(--mu)}\n${R}[data-dayc=right] .st .day{position:absolute;right:0;top:15px;font-size:14px}\n${R}[data-dayc=right] .st .t{padding-right:58px}\n${R} .r{position:absolute;left:104px;width:28px;top:12px;bottom:0}\n${R} .dot{position:absolute;left:8px;top:6px;width:12px;height:12px;border-radius:50%;border:1.5px solid var(--tx);background:var(--sf);z-index:1}\n${R} .last .dot{background:var(--ac);border-color:var(--ac);box-shadow:0 0 0 4px color-mix(in srgb, var(--ac) 26%, transparent)}\n${R} .seg{position:absolute;left:13.25px;top:18px;bottom:-18px;width:1.5px;background:var(--rl);transform-origin:50% 0}\n${R} .last .seg{display:none}\n${R} .t{grid-column:3;min-width:0}\n${R} .l{display:block;font:400 20px/24px var(--lf);letter-spacing:-0.01em;text-wrap:balance}\n${R} .n{display:block;margin-top:4px;font-size:15px;line-height:1.45;color:var(--mu)}\n${R} .res{padding:16px 0 4px;border-top:1px solid var(--ru)}\n${R} .rb{display:grid}\n${R} .rb>p{grid-area:1/1;margin:0;padding-left:14px;transition:opacity 240ms ${EASE}}\n${R} .on{font:400 24px/1.18 var(--lf);letter-spacing:-0.015em;border-left:3px solid var(--ac);text-wrap:balance}\n${R} .on em{font-style:normal;font-variant-numeric:tabular-nums lining-nums}\n${R}[data-fig=accent] .on em{color:var(--ac)}\n${R} .off{font:400 20px/1.3 var(--lf);border-left:3px solid var(--ru);opacity:0}\n${R}[data-res=off] .on{opacity:0}\n${R}[data-res=off] .off{opacity:1}\n${R}:not([data-sw]) .rb>p[aria-hidden=true]{display:none}\n${R} .sw{display:flex;flex-wrap:wrap;gap:6px;margin-top:14px}\n${R} .sw button{all:unset;box-sizing:border-box;cursor:pointer;display:inline-flex;align-items:center;min-height:44px;padding:0 14px;border:1px solid var(--ru);border-radius:3px;font:500 14px/1 var(--bf);color:var(--mu)}\n${R} .sw button[aria-pressed=true]{background:var(--tx);border-color:var(--tx);color:var(--sf)}\n${R} .sw button:focus-visible{outline:2px solid var(--tx);outline-offset:3px}\n@media (hover:hover) and (pointer:fine){${R} .sw button[aria-pressed=false]:hover{border-color:var(--mu);color:var(--tx)}}\n${H(`${R}[data-mode=h]`)}\n@container (min-width: ${breakpoint}px){${H(`${R}[data-mode=auto]`)}}\n${R}[data-s=ready] .dot{opacity:0;transform:scale(.4)}\n${R}[data-s=ready] .d{opacity:0;transform:translateY(8px)}\n${R}[data-s=ready] .t{opacity:0;transform:translateX(-8px)}\n${R}[data-s=ready] .seg{transform:scaleY(0)}\n${R}[data-s=ready] .res{opacity:0;transform:translateY(8px)}\n${R}[data-s=play] .dot{transition:opacity 240ms ${EASE} var(--dl),transform 240ms ${EASE} var(--dl)}\n${R}[data-s=play] .d{transition:opacity 300ms ${EASE} calc(var(--dl) + 60ms),transform 300ms ${EASE} calc(var(--dl) + 60ms)}\n${R}[data-s=play] .t{transition:opacity 300ms ${EASE} calc(var(--dl) + 110ms),transform 300ms ${EASE} calc(var(--dl) + 110ms)}\n${R}[data-s=play] .seg{transition:transform calc(var(--step) * 1ms - 60ms) ${EASE} calc(var(--dl) + 120ms)}\n${R}[data-s=play] .res{transition:opacity 300ms ${EASE} var(--rd),transform 300ms ${EASE} var(--rd)}\n${R}[data-s=fade]{opacity:0}\n${R}[data-s=fade-in]{opacity:1;transition:opacity 200ms ${EASE}}\n@keyframes dkDot{from{opacity:0;transform:scale(.4)}}\n@keyframes dkUp{from{opacity:0;transform:translateY(8px)}}\n@keyframes dkIn{from{opacity:0;transform:translateX(-8px)}}\n@keyframes dkSegY{from{transform:scaleY(0)}}\n@keyframes dkSegX{from{transform:scaleX(0)}}\n@keyframes dkFade{from{opacity:0}}\n${R}[data-intro=draw] .dot{animation:dkDot 240ms ${EASE} calc(var(--dl) + var(--i0)) both}\n${R}[data-intro=draw] .d{animation:dkFade 300ms ${EASE} calc(var(--dl) + var(--i0) + 60ms) both}\n${R}[data-intro=draw] .t{animation:dkIn 300ms ${EASE} calc(var(--dl) + var(--i0) + 110ms) both}\n${R}[data-intro=draw] .seg{animation:dkSegY calc(var(--step) * 1ms - 60ms) ${EASE} calc(var(--dl) + var(--i0) + 120ms) both}\n${R}[data-intro=draw][data-mode=h] .seg{animation-name:dkSegX}\n@container (min-width: ${breakpoint}px){${R}[data-intro=draw][data-mode=auto] .seg{animation-name:dkSegX}}\n${R}[data-intro=draw] .res{animation:dkUp 300ms ${EASE} calc(var(--rd) + var(--i0)) both}\n@media (prefers-reduced-motion: reduce){${R}[data-intro=draw] .dot,${R}[data-intro=draw] .d,${R}[data-intro=draw] .t,${R}[data-intro=draw] .seg,${R}[data-intro=draw] .res{animation:none}${R}[data-intro=draw]{animation:dkFade 200ms ${EASE} var(--i0) both}}`;}/** Total play time in ms for n stations: the last station starts at (n-1) steps, the result follows it. */function playTime(n,step){return Math.max(0,n-1)*step+300+120+300;}/**\n * The motion controller (plain DOM, no React). Sets data-s on the root: none = finished (the default everywhere),\n * \"ready\" = rewound, \"play\" = drawing, \"fade\"/\"fade-in\" = the reduced-motion version. Returns a cleanup.\n * opts: { inViewAtLoad: \"Finished\" | \"Draw\", total: ms }\n */function runDocket(root,opts){const o=opts||{};const win=root&&root.ownerDocument&&root.ownerDocument.defaultView;const set=s=>s?root.setAttribute(\"data-s\",s):root.removeAttribute(\"data-s\");if(!win||!(\"IntersectionObserver\"in win))return()=>{}// no observer: stays finished\n;const reduce=!!(win.matchMedia&&win.matchMedia(\"(prefers-reduced-motion: reduce)\").matches);const r0=root.getBoundingClientRect(),vh=win.innerHeight;const inView=r0.bottom>0&&r0.top<vh;if(root.ownerDocument.hidden||r0.bottom<=0)return()=>{}// hidden tab, or already scrolled past\n;if(inView&&o.inViewAtLoad!==\"Draw\")return()=>{}// on screen at load: never blank what is painted\n;let state=\"armed\",timer=0,zone=null,view=null,above=null;const stop=()=>{for(const x of[zone,view,above])if(x)x.disconnect();zone=view=above=null;};const finish=()=>{state=\"done\";win.clearTimeout(timer);stop();set(null);};const ready=()=>{state=\"ready\";set(reduce?\"fade\":\"ready\");};const play=()=>{if(state!==\"ready\")return;state=\"play\";stop();void root.offsetWidth// commit the rewound state before the transitions start\n;set(reduce?\"fade-in\":\"play\");timer=win.setTimeout(finish,(reduce?200:o.total||2e3)+80);};if(inView){ready();win.requestAnimationFrame(()=>win.requestAnimationFrame(play));return finish;}// Below the screen: stay finished until it is in the 25% band under the screen, rewind there, draw on view.\nzone=new win.IntersectionObserver(es=>{const e=es[es.length-1];if(e.isIntersecting){if(state===\"armed\"&&e.boundingClientRect.top>=0)ready();}else if(state===\"ready\"){state=\"armed\";set(null);}// left the band below without drawing: finished again\n},{rootMargin:\"0px 0px 25% 0px\"});// Anything above the top of the screen (up to 100 screens): a docket the reader jumped or scrolled past finishes,\n// so coming back up never meets a blank one.\nabove=new win.IntersectionObserver(es=>{if(es.some(e=>e.isIntersecting)&&state!==\"play\")finish();},{rootMargin:\"10000% 0px -100% 0px\"});view=new win.IntersectionObserver(es=>{if(!es.some(e=>e.isIntersecting))return;if(state===\"armed\"){if(es[es.length-1].boundingClientRect.top<0)return finish();ready();}play();},{threshold:.2,rootMargin:\"0px 0px -8% 0px\"});zone.observe(root);view.observe(root);above.observe(root);return finish;}const DEMO=[{date:\"2025-03-04\",label:\"Instructed\",note:\"First call. Named solicitor and fixed fee agreed in writing.\"},{date:\"2025-03-19\",label:\"Claim filed\",note:\"The claim reaches the employment tribunal.\"},{date:\"2025-06-02\",label:\"Disclosure\",note:\"Documents exchanged with the other side.\"},{date:\"2025-09-15\",label:\"Hearing listed\",note:\"The tribunal sets a date for the hearing.\"},{date:\"2025-10-01\",label:\"Resolved\",note:\"Agreed between the parties before the hearing.\"}];const fam=(f,fallback)=>{const v=f&&f.fontFamily;return v&&!/Inter|Geist|Noto|system-ui|sans-serif$|^serif$/.test(v)?`${v}, ${fallback}`:fallback;};/**\n * Docket Timeline\n *\n * @framerIntrinsicWidth 1100\n * @framerIntrinsicHeight 360\n *\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight auto\n */export default function DocketTimeline(props){const{stations=DEMO,stationsText=\"\",result=\"Settled before the hearing for \\xa314,000, against a claim of \\xa338,000.\",showResult=true,offText=\"Result not published.\",durationLine=\"Resolved {duration} after instruction.\",demoSwitch=false,layout=\"Auto\",breakpoint=720,minGap=180,showDays=true,showNotes=true,inViewAtLoad=\"Finished\",step=360,dayColumn=\"Under date\",spacing=40,text=\"#0E1522\",muted=\"#5A5448\",rule=\"rgba(14, 21, 34, 0.2)\",rail=\"rgba(14, 21, 34, 0.42)\",accent=\"#A32D3A\",surface=\"#EEE6D5\",labelFont,textFont,ariaLabel=\"Matter timeline\",style}=props;const isStatic=useIsStaticRenderer();// \"Intro\": the docket draws once from the very first paint with CSS keyframes (server HTML included), so nothing is\n// ever shown finished and then blanked. Canvas, thumbnails and exports render it finished. Without CSS animation\n// support, or under reduced motion (one 200ms fade), it simply shows the finished docket.\nconst target=RenderTarget.current();const intro=inViewAtLoad===\"Intro\"&&target!==RenderTarget.canvas&&target!==RenderTarget.thumbnail&&target!==RenderTarget.export;const u=\"dk\"+useId().replace(/[^a-zA-Z0-9]/g,\"\");const rootRef=useRef(null);const[width,setWidth]=useState(0);const[resOn,setResOn]=useState(showResult);useEffect(()=>setResOn(showResult),[showResult]);const list=useMemo(()=>normalise(stationsText.trim()?parseStationsText(stationsText):stations||[]),[stations,stationsText]);const days=list.map(s=>s.day);const{mode,xs,ws}=computeLayout(days,width,layout,breakpoint,minGap);const pbs=rowGaps(days,Math.max(0,spacing));const st=Math.min(400,Math.max(240,step));const n=list.length;const hasResult=result.trim()!==\"\";const showOn=hasResult&&resOn;const off=offLine(offText,durationLine,list);const accentFigures=contrast(accent,surface)>=4.5// burgundy is text only where it passes AA (the cream sheet)\n;// Measure our own box: the layout follows the container, never the window.\nuseLayoutEffect(()=>{const el=rootRef.current;if(!el||typeof ResizeObserver===\"undefined\")return;const read=()=>{const w=Math.round(el.clientWidth);if(w>0)setWidth(p=>p===w?p:w);};read();const ro=new ResizeObserver(read);ro.observe(el);return()=>ro.disconnect();},[]);// Motion: only in the live browser. Everywhere else the docket is simply complete.\nuseLayoutEffect(()=>{if(isStatic||typeof window===\"undefined\"||!rootRef.current)return;if(inViewAtLoad===\"Intro\")return;// drawn by CSS from the first paint; nothing to rewind\nreturn runDocket(rootRef.current,{inViewAtLoad,total:playTime(n,st)});},[isStatic]);const vars={\"--tx\":text,\"--mu\":muted,\"--ru\":rule,\"--rl\":rail,\"--ac\":accent,\"--sf\":surface,\"--lf\":fam(labelFont,`\"Newsreader\", \"Iowan Old Style\", Georgia, serif`),\"--bf\":fam(textFont,`\"Public Sans\", \"Helvetica Neue\", Helvetica, Arial, sans-serif`),\"--step\":st,\"--rd\":`${Math.max(0,n-1)*st+420}ms`,\"--i0\":\"350ms\"};return /*#__PURE__*/_jsxs(\"div\",{ref:rootRef,className:u,role:\"group\",\"aria-label\":ariaLabel,\"data-mode\":mode,\"data-intro\":intro?\"draw\":undefined,\"data-dayc\":dayColumn===\"Right\"?\"right\":\"under\",\"data-sw\":demoSwitch&&hasResult?\"\":undefined,\"data-res\":showOn?\"on\":\"off\",\"data-fig\":accentFigures?\"accent\":\"plain\",style:{...style,...vars,width:\"100%\"},children:[/*#__PURE__*/_jsx(\"style\",{dangerouslySetInnerHTML:{__html:docketCss(u,breakpoint)}}),/*#__PURE__*/_jsx(\"ol\",{className:\"o\",children:list.map((s,i)=>/*#__PURE__*/_jsxs(\"li\",{className:i===n-1?\"st last\":\"st\",style:{\"--x\":xs[i],\"--w\":ws[i],\"--pb\":`${pbs[i]}px`,\"--dl\":`${i*st}ms`},children:[/*#__PURE__*/_jsxs(\"time\",{className:\"d\",dateTime:s.iso,children:[s.date,showDays&&/*#__PURE__*/_jsxs(\"span\",{className:\"day\",children:[\"Day \",s.day]})]}),/*#__PURE__*/_jsxs(\"span\",{className:\"r\",\"aria-hidden\":\"true\",children:[/*#__PURE__*/_jsx(\"i\",{className:\"dot\"}),/*#__PURE__*/_jsx(\"i\",{className:\"seg\"})]}),/*#__PURE__*/_jsxs(\"span\",{className:\"t\",children:[/*#__PURE__*/_jsx(\"span\",{className:\"l\",children:s.label}),showNotes&&s.note&&/*#__PURE__*/_jsx(\"span\",{className:\"n\",children:s.note})]})]},i))}),(hasResult||off)&&/*#__PURE__*/_jsxs(\"div\",{className:\"res\",children:[/*#__PURE__*/_jsxs(\"div\",{className:\"rb\",\"aria-live\":demoSwitch?\"polite\":undefined,children:[hasResult&&/*#__PURE__*/_jsx(\"p\",{className:\"on\",\"aria-hidden\":!showOn,children:splitFigures(result).map((p,i)=>p.fig?/*#__PURE__*/_jsx(\"em\",{children:p.s},i):/*#__PURE__*/_jsx(\"span\",{children:p.s},i))}),/*#__PURE__*/_jsx(\"p\",{className:\"off\",\"aria-hidden\":showOn,children:off})]}),demoSwitch&&hasResult&&/*#__PURE__*/_jsxs(\"div\",{className:\"sw\",role:\"group\",\"aria-label\":\"Result line\",children:[/*#__PURE__*/_jsx(\"button\",{type:\"button\",\"aria-pressed\":resOn,onClick:()=>setResOn(true),children:\"Result shown\"}),/*#__PURE__*/_jsx(\"button\",{type:\"button\",\"aria-pressed\":!resOn,onClick:()=>setResOn(false),children:\"Result not published\"})]})]})]});}addPropertyControls(DocketTimeline,{stations:{type:ControlType.Array,title:\"Stations\",maxCount:12,defaultValue:DEMO,control:{type:ControlType.Object,controls:{date:{type:ControlType.Date,title:\"Date\"},label:{type:ControlType.String,title:\"Label\",defaultValue:\"Instructed\"},note:{type:ControlType.String,title:\"Note\",defaultValue:\"\",displayTextArea:true}}}},stationsText:{type:ControlType.String,title:\"Stations (text)\",defaultValue:\"\",displayTextArea:true,placeholder:\"2025-03-04 | Instructed | First call.\",description:\"One station per line: date | label | note. When filled (for example bound to a CMS field) it replaces the list above.\"},result:{type:ControlType.String,title:\"Result\",defaultValue:\"Settled before the hearing for \\xa314,000, against a claim of \\xa338,000.\",displayTextArea:true},showResult:{type:ControlType.Boolean,title:\"Show result\",defaultValue:true,enabledTitle:\"Show\",disabledTitle:\"Hide\",description:\"Hide: shows the line below plus how long the matter took. Check your regulator's rules before publishing results.\"},offText:{type:ControlType.String,title:\"Not published\",defaultValue:\"Result not published.\"},durationLine:{type:ControlType.String,title:\"Duration line\",defaultValue:\"Resolved {duration} after instruction.\",description:'{duration} becomes \"7 months\", \"11 weeks\" or \"16 days\".'},demoSwitch:{type:ControlType.Boolean,title:\"Demo switch\",defaultValue:false,description:\"Shows two buttons to flip the result line. For the template demo; leave off on a real site.\"},layout:{type:ControlType.Enum,title:\"Layout\",options:[\"Auto\",\"Horizontal\",\"Vertical\"],defaultValue:\"Auto\",displaySegmentedControl:true},breakpoint:{type:ControlType.Number,title:\"Wide from\",defaultValue:720,min:400,max:1400,step:10,unit:\"px\",description:\"Container width, not window width.\",hidden:p=>p.layout!==\"Auto\"},minGap:{type:ControlType.Number,title:\"Min gap\",defaultValue:180,min:100,max:260,step:5,unit:\"px\",description:\"Room for a label between two close dates (horizontal).\"},showDays:{type:ControlType.Boolean,title:\"Day numbers\",defaultValue:true},showNotes:{type:ControlType.Boolean,title:\"Notes\",defaultValue:true},inViewAtLoad:{type:ControlType.Enum,title:\"On screen at load\",options:[\"Finished\",\"Draw\",\"Intro\"],defaultValue:\"Finished\",displaySegmentedControl:true,description:\"Intro: draws once from the first paint, CSS only (use for a hero). Finished: what the page first paints is never blanked. Draw: rewinds and draws once (hero use; a short flash is possible on slow loads).\"},step:{type:ControlType.Number,title:\"Step\",defaultValue:360,min:240,max:400,step:10,unit:\"ms\"},dayColumn:{type:ControlType.Enum,title:\"Day number\",options:[\"Under date\",\"Right\"],defaultValue:\"Under date\",displaySegmentedControl:true,description:\"Vertical layout: under the date, or in a column on the right.\"},spacing:{type:ControlType.Number,title:\"Time spacing\",defaultValue:40,min:0,max:80,step:4,unit:\"px\",description:\"Vertical layout: extra space under a row, up to this much, for long waits.\"},text:{type:ControlType.Color,title:\"Text\",defaultValue:\"#0E1522\"},muted:{type:ControlType.Color,title:\"Muted\",defaultValue:\"#5A5448\"},rule:{type:ControlType.Color,title:\"Rules\",defaultValue:\"rgba(14, 21, 34, 0.2)\"},rail:{type:ControlType.Color,title:\"Rail\",defaultValue:\"rgba(14, 21, 34, 0.42)\"},accent:{type:ControlType.Color,title:\"Accent\",defaultValue:\"#A32D3A\"},surface:{type:ControlType.Color,title:\"Surface\",defaultValue:\"#EEE6D5\",description:\"The colour behind the docket. Figures in the result take the accent only if it passes 4.5:1 on this.\"},labelFont:{type:ControlType.Font,title:\"Label font\",controls:\"basic\",defaultFontType:\"serif\"},textFont:{type:ControlType.Font,title:\"Text font\",controls:\"basic\",defaultFontType:\"sans-serif\"},ariaLabel:{type:ControlType.String,title:\"Label (a11y)\",defaultValue:\"Matter timeline\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"DocketTimeline\",\"slots\":[],\"annotations\":{\"framerIntrinsicHeight\":\"360\",\"framerIntrinsicWidth\":\"1100\",\"framerContractVersion\":\"1\",\"framerSupportedLayoutWidth\":\"any-prefer-fixed\",\"framerSupportedLayoutHeight\":\"auto\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./DocketTimeline.map"],"mappings":"iPAkB2G,SAAS,EAAU,EAAE,CAAC,IAAM,EAAE,2BAA2B,KAAK,OAAO,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,EAAE,OAAO,KAAK,IAAM,EAAE,KAAK,IAAI,CAAC,EAAE,GAAI,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,EAAQ,EAAE,IAAI,KAAK,CAAC,EAAE,OAAO,EAAE,YAAY,IAAK,EAAE,GAAG,GAAG,EAAE,WAAW,IAAI,CAAC,EAAE,GAAG,EAAE,IAAK,CAAC,SAAS,EAAW,EAAE,CAAC,IAAM,EAAE,IAAI,KAAK,CAAC,EAAE,OAAO,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC,SAAS,EAAE,GAAG,EAAE,IAAI,EAAO,EAAE,YAAY,GAAG,IAAI,EAAE,eAAe,CAAE,CAAiG,SAAS,GAAkB,EAAK,CAAC,OAAO,OAAO,GAAM,EAAE,CAAC,CAAC,MAAM,OAAO,CAAC,CAAC,IAAI,GAAM,CAAC,IAAM,EAAE,EAAK,MAAM,GAAG,CAAC,CAAC,IAAI,GAAG,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,KAAK,EAAE,IAAI,GAAG,MAAM,EAAE,IAAI,GAAG,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,CAAE,CAAC,CAAC,CAAC,OAAO,GAAG,EAAE,MAAM,EAAE,KAAK,CAAE,CAAiH,SAAS,GAAU,EAAK,CAAC,IAAM,EAAI,CAAC,EAAE,IAAI,IAAM,KAAK,GAAM,CAAC,EAAE,CAAC,IAAM,EAAE,EAAU,GAAG,EAAE,IAAI,EAAK,GAAG,MAAM,CAAC,EAAE,OAAe,EAAI,KAAK,CAAC,IAAE,IAAI,IAAI,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,MAAM,EAAE,EAAE,EAAE,KAAK,EAAW,CAAC,EAAE,MAAM,OAAO,EAAE,KAAK,EAAE,KAAK,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,CAAE,CAAC,IAAM,EAAG,EAAI,OAAO,EAAI,EAAE,CAAC,EAAE,EAAyD,OAAvD,EAAI,QAAQ,GAAG,CAAC,EAAE,IAAI,KAAK,OAAO,EAAE,EAAE,GAAI,CAAM,EAAE,CAAE,CAAC,EAAS,CAAI,CAAqE,SAAS,EAAa,EAAK,CAAC,IAAM,GAAG,EAAE,IAAI,EAAE,IAAI,GAAG,IAAI,EAAE,GAAG,KAAK,GAAG,EAAK,GAAG,OAAO,EAAE,KAAK,IAAI,EAAE,CAAI,EAAE,KAAK,EAAE,GAAG,GAAM,GAAG,OAAO,EAAE,KAAK,MAAM,EAAK,CAAC,EAAE,MAAM,EAAE,IAAM,EAAE,KAAK,MAAM,EAAK,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,OAAO,EAAE,EAAE,KAAK,MAAM,EAAK,MAAM,EAAE,MAAM,CAAE,CAAqH,SAAS,GAAQ,EAAQ,EAAa,EAAS,CAAC,IAAM,EAAE,OAAO,GAAS,EAAE,CAAC,CAAC,KAAK,EAAE,GAAG,EAAS,OAAO,EAAE,OAAO,EAAE,IAAM,EAAK,EAAS,EAAS,OAAO,EAAE,CAAC,IAAI,EAAS,EAAE,CAAC,IAAU,EAAE,OAAO,GAAc,EAAE,CAAC,CAAC,QAAQ,aAAa,EAAa,CAAI,CAAC,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAA,CAAG,KAAK,CAAE,CAG/5D,SAAS,EAAQ,EAAK,EAAM,EAAO,CAAC,IAAM,EAAE,EAAK,OAAO,GAAG,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,IAAM,EAAK,EAAM,EAAO,GAAG,EAAE,EAAM,IAAI,EAAK,GAAQ,EAAE,GAAG,OAAO,KAAK,IAAM,EAAG,EAAK,GAAG,EAAM,EAAK,EAAE,GAAG,EAAS,EAAE,EAAK,KAAK,EAAE,IAAI,EAAM,EAAE,EAAK,KAAK,IAAI,EAAE,KAAK,IAAI,GAAG,EAAE,GAAI,CAAK,CAAC,EAAE,EAAK,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,KAAK,IAAI,EAAE,GAAG,EAAE,EAAE,GAAG,CAAM,EAAE,EAAE,EAAE,GAAG,EAAK,IAAI,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,KAAK,IAAI,EAAE,GAAG,EAAE,EAAE,GAAG,CAAM,EAAE,OAAO,EAAE,IAAI,GAAG,KAAK,MAAM,EAAE,EAAM,GAAG,EAAE,GAAG,CAAE,CAA+G,SAAS,GAAQ,EAAK,EAAS,CAAC,IAAM,EAAK,EAAK,MAAM,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,KAAK,IAAI,EAAE,EAAE,EAAK,EAAE,CAAC,EAAQ,EAAI,KAAK,IAAI,EAAE,GAAG,CAAI,EAAE,OAAO,EAAK,KAAK,EAAE,IAAI,EAAE,EAAK,OAAO,KAAK,MAAM,EAAS,EAAK,GAAG,CAAG,EAAE,CAAC,CAAE,CAGlvB,SAAS,GAAc,EAAK,EAAM,EAAO,EAAW,EAAO,CAAC,IAAM,EAAE,EAAK,OAAW,EAAG,EAAQ,EAAK,EAAM,EAAE,EAAM,EAAc,CAAM,EAAQ,EAAK,CAAC,CAAC,EAAG,AAAO,IAAG,EAAK,KAAK,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,EAAE,GAAG,CAAC,EAAE,IAAI,EAAK,OAAU,IAAS,aAAa,EAAK,IAAY,IAAS,WAAW,EAAK,IAAY,EAAM,IAAE,EAAK,GAAO,GAAY,EAAK,IAAI,KAAI,IAAM,EAAG,EAAG,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,EAAG,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,OAAK,KAAG,IAAE,CAAE,CAAuH,SAAS,EAAa,EAAK,CAAC,IAAM,EAAE,OAAO,GAAM,EAAE,EAAE,EAAI,CAAC,EAAM,EAAK,EAAoR,OAAlR,EAAE,QAAQ,wFAAwF,EAAE,EAAG,KAAU,EAAI,GAAK,EAAI,KAAK,CAAC,EAAE,EAAE,MAAM,EAAK,CAAG,EAAE,IAAI,EAAK,CAAC,EAAE,EAAI,KAAK,CAAC,EAAE,EAAE,IAAI,EAAI,CAAC,EAAE,EAAK,EAAI,EAAE,OAAc,EAAG,EAAK,EAAK,EAAE,QAAO,EAAI,KAAK,CAAC,EAAE,EAAE,MAAM,CAAI,EAAE,IAAI,EAAK,CAAC,EAAS,CAAI,CAAwG,SAAS,EAAW,EAAE,CAAC,IAAM,EAAE,OAAO,GAAG,EAAE,EAAQ,EAAG,wCAA4C,EAAE,EAAI,KAAK,KAAM,EAAE,EAAG,KAAK,CAAC,GAAE,EAAI,EAAE,GAAG,CAAC,EAAI,OAAO,KAAK,GAAG,EAAI,GAAG,CAAC,IAAI,EAAE,EAAI,GAAoE,OAA9D,EAAE,SAAS,GAAG,EAAE,SAAS,KAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,GAAQ,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,SAAS,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAE,CAAC,IAAM,EAAE,EAAI,EAAE,CAAC,MAAM,SAAS,CAAC,CAAC,OAAO,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,UAAU,EAAE,OAAO,EAAE,SAAS,GAAG,EAAE,MAAM,QAAQ,EAAE,EAAE,IAAK,CAAkH,SAAS,EAAS,EAAE,EAAE,CAAC,IAAM,EAAE,EAAW,CAAC,EAAE,EAAE,EAAW,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,MAAO,GAAE,IAAM,EAAI,GAAK,CAAC,IAAM,EAAE,EAAI,IAAI,IAAI,GAAG,IAAW,GAAG,OAAO,EAAE,QAAgB,EAAE,MAAM,QAAM,IAAM,EAAE,MAAO,OAAM,EAAE,GAAG,MAAM,EAAE,GAAG,MAAM,EAAE,EAAG,EAAQ,EAAE,EAAI,CAAC,EAAE,EAAE,EAAI,CAAC,EAAE,OAAO,KAAK,IAAI,EAAE,CAAC,EAAE,MAAM,KAAK,IAAI,EAAE,CAAC,EAAE,IAAK,CAC/qD,SAAS,EAAU,EAAE,EAAW,CAAC,IAAM,EAAE,IAAI,EAAQ,EAAE,GAAG;EAC9J,EAAE;EACF,EAAE;EACF,EAAE;EACF,EAAE;EACF,EAAE;EACF,EAAE;EACF,EAAE;EACF,EAAE;EACF,EAAE;EACF,EAAE;EACF,EAAE;EACF,EAAE;EACF,EAAE;EACF,EAAE;EACF,EAAE;EACF,EAAE;EACF,EAAE,0CAA0C,MAAM;EAClD,EAAE;EACF,EAAE;EACF,EAAE;EACF,EAAE;EACF,EAAE;EACF,EAAE;EACF,EAAE;EACF,EAAE;EACF,EAAE;EACF,EAAE;EACF,EAAE;EACF,EAAE;EACF,EAAE;EACF,EAAE;EACF,EAAE;EACF,EAAE;EACF,EAAE;EACF,EAAE;EACF,EAAE,2EAA2E,EAAK;EAClF,EAAE;EACF,EAAE;EACF,EAAE;EACF,EAAE;EACF,EAAE;EACF,EAAE;EACF,EAAE;EACF,EAAE;EACF,EAAE;EACF,EAAE;EACF,EAAE;0CACsC,EAAE;EAC1C,EAAE,GAAG,EAAE,cAAc,EAAE;yBACA,EAAW,MAAM,EAAE,GAAG,EAAE,iBAAiB,EAAE;EAClE,EAAE;EACF,EAAE;EACF,EAAE;EACF,EAAE;EACF,EAAE;EACF,EAAE,8CAA8C,EAAK,6BAA6B,EAAK;EACvF,EAAE,4CAA4C,EAAK,0CAA0C,EAAK;EAClG,EAAE,4CAA4C,EAAK,2CAA2C,EAAK;EACnG,EAAE,yEAAyE,EAAK;EAChF,EAAE,8CAA8C,EAAK,6BAA6B,EAAK;EACvF,EAAE;EACF,EAAE,sDAAsD,EAAK;;;;;;;EAO7D,EAAE,+CAA+C,EAAK;EACtD,EAAE,8CAA8C,EAAK;EACrD,EAAE,4CAA4C,EAAK;EACnD,EAAE,yEAAyE,EAAK;EAChF,EAAE;yBACqB,EAAW,MAAM,EAAE;EAC1C,EAAE,8CAA8C,EAAK;0CACb,EAAE,yBAAyB,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,yBAAyB,EAAE,wCAAwC,EAAE,2CAA2C,EAAK,kBAAmB,CAA4G,SAAS,GAAS,EAAE,EAAK,CAAC,OAAO,KAAK,IAAI,EAAE,EAAE,CAAC,EAAE,EAAK,IAAI,IAAI,GAAI,CAI5a,SAAS,GAAU,EAAK,EAAK,CAAC,IAAM,EAAE,GAAM,CAAC,EAAQ,EAAI,GAAM,EAAK,eAAe,EAAK,cAAc,YAAkB,EAAI,GAAG,EAAE,EAAK,aAAa,SAAS,CAAC,EAAE,EAAK,gBAAgB,QAAQ,EAAE,GAAG,CAAC,GAAK,EAAE,yBAAyB,GAAK,UAAU,CAAC,EACpP,IAAM,EAAO,CAAC,EAAE,EAAI,YAAY,EAAI,WAAW,kCAAkC,CAAC,CAAC,SAAe,EAAG,EAAK,sBAAsB,EAAE,EAAG,EAAI,YAAkB,EAAO,EAAG,OAAO,GAAG,EAAG,IAAI,EACtL,GAD4L,EAAK,cAAc,QAAQ,EAAG,QAAQ,GAC/N,GAAQ,EAAE,eAAe,OAAO,UAAU,CAAC,EAC9C,IAAI,EAAM,QAAQ,EAAM,EAAE,EAAK,KAAK,EAAK,KAAK,EAAM,KAAW,MAAS,CAAC,IAAI,IAAM,IAAI,CAAC,EAAK,EAAK,CAAK,EAAK,GAAE,EAAE,WAAW,EAAE,EAAK,EAAK,EAAM,IAAK,EAAQ,MAAW,CAAC,EAAM,OAAO,EAAI,aAAa,CAAK,EAAE,EAAK,EAAE,EAAI,IAAI,CAAE,EAAQ,MAAU,CAAC,EAAM,QAAQ,EAAI,EAAO,OAAO,OAAO,CAAE,EAAQ,MAAS,CAAI,IAAQ,UAAe,EAAM,OAAO,EAAK,EAAE,EAAU,YAClW,EAAI,EAAO,UAAU,MAAM,EAAE,EAAM,EAAI,WAAW,GAAQ,EAAO,IAAI,EAAE,OAAO,KAAK,EAAE,EAAE,EAIwU,OAJnU,GAAQ,EAAM,EAAE,EAAI,0BAA0B,EAAI,sBAAsB,CAAI,CAAC,EAAS,IACnL,EAAK,IAAI,EAAI,qBAAqB,GAAI,CAAC,IAAM,EAAE,EAAG,EAAG,OAAO,GAAM,EAAE,eAAmB,IAAQ,SAAS,EAAE,mBAAmB,KAAK,GAAE,EAAM,EAAW,IAAQ,UAAS,EAAM,QAAQ,EAAI,IAAI,EAC5L,EAAE,CAAC,WAAW,iBAAiB,CAAC,EAEhC,EAAM,IAAI,EAAI,qBAAqB,GAAI,CAAI,EAAG,KAAK,GAAG,EAAE,cAAc,GAAG,IAAQ,QAAO,EAAO,CAAE,EAAE,CAAC,WAAW,sBAAsB,CAAC,EAAE,EAAK,IAAI,EAAI,qBAAqB,GAAI,CAAK,KAAG,KAAK,GAAG,EAAE,cAAc,EAAS,IAAG,IAAQ,QAAQ,CAAC,GAAG,EAAG,EAAG,OAAO,EAAE,CAAC,mBAAmB,IAAI,EAAE,OAAO,EAAO,EAAE,EAAM,CAAE,CAAC,EAAK,CAAN,CAAQ,EAAE,CAAC,UAAU,GAAG,WAAW,iBAAiB,CAAC,EAAE,EAAK,QAAQ,CAAI,EAAE,EAAK,QAAQ,CAAI,EAAE,EAAM,QAAQ,CAAI,EAAS,EAAO,CAQ3a,SAAwB,EAAe,EAAM,CAAC,GAAK,CAAC,WAAS,EAAK,eAAa,GAAG,SAAO,sEAA4E,aAAW,GAAK,UAAQ,wBAAwB,eAAa,yCAAyC,aAAW,GAAM,SAAO,OAAO,aAAW,IAAI,SAAO,IAAI,WAAS,GAAK,YAAU,GAAK,eAAa,WAAW,OAAK,IAAI,YAAU,aAAa,UAAQ,GAAG,OAAK,UAAU,SAAM,UAAU,OAAK,wBAAwB,OAAK,yBAAyB,SAAO,UAAU,UAAQ,UAAU,aAAU,YAAS,YAAU,kBAAkB,SAAO,EAAY,EAAS,EAAoB,EAG7nB,EAAO,EAAa,QAAQ,EAAQ,EAAM,IAAe,SAAS,IAAS,EAAa,QAAQ,IAAS,EAAa,WAAW,IAAS,EAAa,OAAa,EAAE,KAAKA,EAAM,CAAC,CAAC,QAAQ,gBAAgB,EAAE,EAAQ,EAAQC,EAAO,IAAI,EAAO,CAAC,GAAM,IAAUC,EAAS,CAAC,EAAO,CAAC,EAAM,GAAUA,EAAS,CAAU,EAAE,MAAc,EAAS,CAAU,EAAE,CAAC,CAAU,CAAC,EAAE,IAAM,EAAKC,MAAY,GAAU,EAAa,KAAK,EAAE,GAAkB,CAAY,EAAE,GAAU,CAAC,CAAC,EAAE,CAAC,EAAS,CAAY,CAAC,EAAQ,EAAK,EAAK,IAAI,GAAG,EAAE,GAAG,EAAO,CAAC,QAAK,MAAG,OAAI,GAAc,EAAK,GAAM,EAAO,EAAW,CAAM,EAAQ,GAAI,GAAQ,EAAK,KAAK,IAAI,EAAE,CAAO,CAAC,EAAQ,EAAG,KAAK,IAAI,IAAI,KAAK,IAAI,IAAI,CAAI,CAAC,EAAQ,EAAE,EAAK,OAAa,EAAU,EAAO,KAAK,IAAI,GAAS,EAAO,GAAW,EAAY,EAAI,GAAQ,EAAQ,EAAa,CAAI,EAAQ,GAAc,EAAS,EAAO,CAAO,GAAG,IAEn1B,MAAoB,CAAC,IAAM,EAAG,EAAQ,QAAQ,GAAG,CAAC,GAAI,OAAO,eAAiB,IAAY,OAAO,IAAM,MAAS,CAAC,IAAM,EAAE,KAAK,MAAM,EAAG,WAAW,EAAK,EAAE,GAAE,GAAS,GAAG,IAAI,EAAE,EAAE,CAAC,CAAE,EAAE,EAAK,EAAE,IAAM,EAAG,IAAI,eAAe,CAAI,EAAiB,OAAf,EAAG,QAAQ,CAAE,MAAY,EAAG,WAAW,CAAE,EAAE,CAAC,CAAC,EAC1Q,MAAoB,CAAI,QAAiB,IAAS,QAAa,CAAC,EAAQ,UAAkB,IAAe,QACzG,OAAO,GAAU,EAAQ,QAAQ,CAAC,eAAa,MAAM,GAAS,EAAE,CAAE,CAAC,CAAC,CAAE,EAAE,CAAC,CAAQ,CAAC,EAAE,IAAM,GAAK,CAAC,OAAO,EAAK,OAAO,GAAM,OAAO,EAAK,OAAO,EAAK,OAAO,EAAO,OAAO,EAAQ,OAAO,EAAI,GAAU,iDAAiD,EAAE,OAAO,EAAI,GAAS,+DAA+D,EAAE,SAAS,EAAG,OAAO,GAAG,KAAK,IAAI,EAAE,EAAE,CAAC,EAAE,EAAG,IAAI,IAAI,OAAO,OAAO,EAAE,OAAoB,EAAM,MAAM,CAAC,IAAI,EAAQ,UAAU,EAAE,KAAK,QAAQ,aAAa,EAAU,YAAY,GAAK,aAAa,EAAM,OAAO,IAAA,GAAU,YAAY,IAAY,QAAQ,QAAQ,QAAQ,UAAU,GAAY,EAAU,GAAG,IAAA,GAAU,WAAW,EAAO,KAAK,MAAM,WAAW,GAAc,SAAS,QAAQ,MAAM,CAAC,GAAG,EAAM,GAAG,GAAK,MAAM,MAAM,EAAE,SAAS,CAAc,EAAK,QAAQ,CAAC,wBAAwB,CAAC,OAAO,EAAU,EAAE,CAAU,CAAC,CAAC,CAAC,EAAe,EAAK,KAAK,CAAC,UAAU,IAAI,SAAS,EAAK,KAAK,EAAE,IAAiB,EAAM,KAAK,CAAC,UAAU,IAAI,EAAE,EAAE,UAAU,KAAK,MAAM,CAAC,MAAM,GAAG,GAAG,MAAM,GAAG,GAAG,OAAO,GAAG,GAAI,GAAG,IAAI,OAAO,GAAG,EAAE,EAAG,GAAG,EAAE,SAAS,CAAc,EAAM,OAAO,CAAC,UAAU,IAAI,SAAS,EAAE,IAAI,SAAS,CAAC,EAAE,KAAK,GAAuB,EAAM,OAAO,CAAC,UAAU,MAAM,SAAS,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAe,EAAM,OAAO,CAAC,UAAU,IAAI,cAAc,OAAO,SAAS,CAAc,EAAK,IAAI,CAAC,UAAU,KAAK,CAAC,EAAe,EAAK,IAAI,CAAC,UAAU,KAAK,CAAC,CAAC,CAAC,CAAC,EAAe,EAAM,OAAO,CAAC,UAAU,IAAI,SAAS,CAAc,EAAK,OAAO,CAAC,UAAU,IAAI,SAAS,EAAE,KAAK,CAAC,EAAE,GAAW,EAAE,MAAmB,EAAK,OAAO,CAAC,UAAU,IAAI,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,GAAW,IAAmB,EAAM,MAAM,CAAC,UAAU,MAAM,SAAS,CAAc,EAAM,MAAM,CAAC,UAAU,KAAK,YAAY,EAAW,SAAS,IAAA,GAAU,SAAS,CAAC,GAAwB,EAAK,IAAI,CAAC,UAAU,KAAK,cAAc,CAAC,EAAO,SAAS,EAAa,CAAM,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,IAAiB,EAAK,KAAK,CAAC,SAAS,EAAE,CAAC,EAAE,CAAC,EAAe,EAAK,OAAO,CAAC,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAe,EAAK,IAAI,CAAC,UAAU,MAAM,cAAc,EAAO,SAAS,CAAG,CAAC,CAAC,CAAC,CAAC,EAAE,GAAY,GAAwB,EAAM,MAAM,CAAC,UAAU,KAAK,KAAK,QAAQ,aAAa,cAAc,SAAS,CAAc,EAAK,SAAS,CAAC,KAAK,SAAS,eAAe,EAAM,YAAY,EAAS,EAAI,EAAE,SAAS,cAAc,CAAC,EAAe,EAAK,SAAS,CAAC,KAAK,SAAS,eAAe,CAAC,EAAM,YAAY,EAAS,EAAK,EAAE,SAAS,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAE,iCAjHpwE,IAAqF,IAA2E,EAElN,EAAO,MAAY,EAAO,CAAC,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,EAAQ,EAAK,iCAAuC,EAAc,IAgG2Q,EAAK,CAAC,CAAC,KAAK,aAAa,MAAM,aAAa,KAAK,8DAA8D,EAAE,CAAC,KAAK,aAAa,MAAM,cAAc,KAAK,4CAA4C,EAAE,CAAC,KAAK,aAAa,MAAM,aAAa,KAAK,0CAA0C,EAAE,CAAC,KAAK,aAAa,MAAM,iBAAiB,KAAK,2CAA2C,EAAE,CAAC,KAAK,aAAa,MAAM,WAAW,KAAK,gDAAgD,CAAC,EAAQ,GAAK,EAAE,IAAW,CAAC,IAAM,EAAE,GAAG,EAAE,WAAW,OAAO,GAAG,CAAC,iDAAiD,KAAK,CAAC,EAAE,GAAG,EAAE,IAAI,IAAW,CAAS,EAe4xC,EAAoB,EAAe,CAAC,SAAS,CAAC,KAAK,EAAY,MAAM,MAAM,WAAW,SAAS,GAAG,aAAa,EAAK,QAAQ,CAAC,KAAK,EAAY,OAAO,SAAS,CAAC,KAAK,CAAC,KAAK,EAAY,KAAK,MAAM,MAAM,EAAE,MAAM,CAAC,KAAK,EAAY,OAAO,MAAM,QAAQ,aAAa,YAAY,EAAE,KAAK,CAAC,KAAK,EAAY,OAAO,MAAM,OAAO,aAAa,GAAG,gBAAgB,EAAI,CAAC,CAAC,CAAC,EAAE,aAAa,CAAC,KAAK,EAAY,OAAO,MAAM,kBAAkB,aAAa,GAAG,gBAAgB,GAAK,YAAY,wCAAwC,YAAY,uHAAuH,EAAE,OAAO,CAAC,KAAK,EAAY,OAAO,MAAM,SAAS,aAAa,sEAA4E,gBAAgB,EAAI,EAAE,WAAW,CAAC,KAAK,EAAY,QAAQ,MAAM,cAAc,aAAa,GAAK,aAAa,OAAO,cAAc,OAAO,YAAY,mHAAmH,EAAE,QAAQ,CAAC,KAAK,EAAY,OAAO,MAAM,gBAAgB,aAAa,uBAAuB,EAAE,aAAa,CAAC,KAAK,EAAY,OAAO,MAAM,gBAAgB,aAAa,yCAAyC,YAAY,yDAAyD,EAAE,WAAW,CAAC,KAAK,EAAY,QAAQ,MAAM,cAAc,aAAa,GAAM,YAAY,6FAA6F,EAAE,OAAO,CAAC,KAAK,EAAY,KAAK,MAAM,SAAS,QAAQ,CAAC,OAAO,aAAa,UAAU,EAAE,aAAa,OAAO,wBAAwB,EAAI,EAAE,WAAW,CAAC,KAAK,EAAY,OAAO,MAAM,YAAY,aAAa,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,GAAG,KAAK,KAAK,YAAY,qCAAqC,OAAO,GAAG,EAAE,SAAS,MAAM,EAAE,OAAO,CAAC,KAAK,EAAY,OAAO,MAAM,UAAU,aAAa,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,EAAE,KAAK,KAAK,YAAY,wDAAwD,EAAE,SAAS,CAAC,KAAK,EAAY,QAAQ,MAAM,cAAc,aAAa,EAAI,EAAE,UAAU,CAAC,KAAK,EAAY,QAAQ,MAAM,QAAQ,aAAa,EAAI,EAAE,aAAa,CAAC,KAAK,EAAY,KAAK,MAAM,oBAAoB,QAAQ,CAAC,WAAW,OAAO,OAAO,EAAE,aAAa,WAAW,wBAAwB,GAAK,YAAY,6MAA6M,EAAE,KAAK,CAAC,KAAK,EAAY,OAAO,MAAM,OAAO,aAAa,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,GAAG,KAAK,IAAI,EAAE,UAAU,CAAC,KAAK,EAAY,KAAK,MAAM,aAAa,QAAQ,CAAC,aAAa,OAAO,EAAE,aAAa,aAAa,wBAAwB,GAAK,YAAY,+DAA+D,EAAE,QAAQ,CAAC,KAAK,EAAY,OAAO,MAAM,eAAe,aAAa,GAAG,IAAI,EAAE,IAAI,GAAG,KAAK,EAAE,KAAK,KAAK,YAAY,4EAA4E,EAAE,KAAK,CAAC,KAAK,EAAY,MAAM,MAAM,OAAO,aAAa,SAAS,EAAE,MAAM,CAAC,KAAK,EAAY,MAAM,MAAM,QAAQ,aAAa,SAAS,EAAE,KAAK,CAAC,KAAK,EAAY,MAAM,MAAM,QAAQ,aAAa,uBAAuB,EAAE,KAAK,CAAC,KAAK,EAAY,MAAM,MAAM,OAAO,aAAa,wBAAwB,EAAE,OAAO,CAAC,KAAK,EAAY,MAAM,MAAM,SAAS,aAAa,SAAS,EAAE,QAAQ,CAAC,KAAK,EAAY,MAAM,MAAM,UAAU,aAAa,UAAU,YAAY,sGAAsG,EAAE,UAAU,CAAC,KAAK,EAAY,KAAK,MAAM,aAAa,SAAS,QAAQ,gBAAgB,OAAO,EAAE,SAAS,CAAC,KAAK,EAAY,KAAK,MAAM,YAAY,SAAS,QAAQ,gBAAgB,YAAY,EAAE,UAAU,CAAC,KAAK,EAAY,OAAO,MAAM,eAAe,aAAa,iBAAiB,CAAC,CAAC"}