{"version":3,"file":"API.S_epB_fW.mjs","names":["useState"],"sources":["https:/framerusercontent.com/modules/NHAwKSyW28gU1yRsjd5R/U0Poml006Cj9BssWOtZm/PageSlugs.js","https:/framerusercontent.com/modules/qAxjacaimBLNuk5uqDil/hTMN5SaOhtPVXMYMT0w0/ClassIndices.js","https:/framerusercontent.com/modules/3q9gXcOrjpOAhrvYD9qj/QEoDAPLei0ynjGuFgwMr/API.js"],"sourcesContent":["// Benchmark pages use the index symbol as their URL slug (/benchmarks/knyc). Code that still keys\n// off the old descriptive slug (/benchmarks/new-york-daily-temperature) reads the path through\n// legacyPathname, which maps a symbol slug back to the old slug.\nexport const LEGACY_SLUGS={\"katl\":\"atlanta-daily-temperature\",\"kaus\":\"austin-daily-temperature\",\"kbna\":\"nashville-daily-temperature\",\"kbos\":\"boston-daily-temperature\",\"kclt\":\"charlotte-daily-temperature\",\"kdca\":\"washington-dc-daily-temperature\",\"kden\":\"denver-daily-temperature\",\"kdfw\":\"dallas-daily-temperature\",\"kdtw\":\"detroit-daily-temperature\",\"khou\":\"houston-daily-temperature\",\"kjax\":\"jacksonville-daily-temperature\",\"klas\":\"las-vegas-daily-temperature\",\"klax\":\"los-angeles-daily-temperature\",\"kmia\":\"miami-daily-temperature\",\"kmsp\":\"minneapolis-daily-temperature\",\"kmsy\":\"new-orleans-daily-temperature\",\"knyc\":\"new-york-daily-temperature\",\"kokc\":\"oklahoma-city-daily-temperature\",\"kord\":\"chicago-daily-temperature\",\"kphl\":\"philadelphia-daily-temperature\",\"kphx\":\"phoenix-daily-temperature\",\"ksat\":\"san-antonio-daily-temperature\",\"ksea\":\"seattle-daily-temperature\",\"ksfo\":\"san-francisco-daily-temperature\",\"margiv\":\"argentina-volatility-index\",\"mbriv\":\"brazil-volatility-index\",\"mchniv\":\"china-volatility-index\",\"miniv\":\"india-volatility-index\",\"mmxiv\":\"mexico-volatility-index\",\"mtriv\":\"turkey-volatility-index\"};/** The pathname with a symbol slug swapped for its old slug. Other paths come back unchanged. */export function legacyPathname(pathname){const path=String(pathname||\"\");const segments=path.split(\"/\");let index=segments.length-1;while(index>0&&!segments[index])index--;const legacy=LEGACY_SLUGS[(segments[index]||\"\").toLowerCase()];if(!legacy)return path;segments[index]=legacy;return segments.join(\"/\");}\nexport const __FramerMetadata__ = {\"exports\":{\"legacyPathname\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"LEGACY_SLUGS\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./PageSlugs.map","// Class-backed indices (the EM-VIX country stress family) on the Framer site.\n//\n// These indices are served ONLY by the versioned catalog (/api/v1/indices) and deliberately not by\n// the legacy /api/markets that every standard-dashboard component reads through SharedMarketData.\n// This file shapes the versioned resources into the legacy detail those components already\n// understand — the same mapping markets/frontend/lib/class-indices.mjs applies for the chart\n// embed, so the page and its chart never disagree about what a field means.\n//\n// What this refuses to invent:\n//   - a null score is NOT zero — on a 0-100 stress scale, 0 is the strongest possible claim;\n//   - a held index (publication_eligible:false) is a stale last-good value, flagged as such;\n//   - there is no distribution, no expiry, no daily settlement and no statistics resource for\n//     these indices, so the fields that carry them stay absent rather than \"unavailable\" in code.\n//\n// Drop-in: copy verbatim into the Framer project's Code area as ClassIndices.js.\nimport{legacyPathname}from\"https://framerusercontent.com/modules/NHAwKSyW28gU1yRsjd5R/U0Poml006Cj9BssWOtZm/PageSlugs.js\";export const API_BASE=\"https://api.mecone.trade\";// slug -> symbol, the country stress indices published today. Symbols double as ids on the\n// versioned catalog, so either spelling resolves.\nexport const CLASS_INDICES={\"brazil-vix-em\":\"MBRVX\",\"mexico-vix-em\":\"MMXVX\",\"argentina-vix-em\":\"MARVX\",\"china-vix-em\":\"MCNVX\",\"turkey-vix-em\":\"MTRVX\",\"india-vix-em\":\"MINVX\"};const BY_SYMBOL=Object.fromEntries(Object.entries(CLASS_INDICES).map(([slug,symbol])=>[symbol,slug]));/** The canonical slug for a slug or symbol (any case), or null when it is not a class index. */export function classIndexFor(slugOrSymbol){const key=String(slugOrSymbol||\"\").trim();if(!key)return null;const lower=key.toLowerCase();if(CLASS_INDICES[lower])return lower;return BY_SYMBOL[key.toUpperCase()]??null;}const LEGACY_DETAIL=/^https:\\/\\/api\\.mecone\\.trade\\/api\\/markets\\/([^/?#]+)\\/?(?:[?#].*)?$/;/** The class-index slug a legacy detail URL is asking for, or null for every other URL. */export function classIndexFromLegacyUrl(url){const match=LEGACY_DETAIL.exec(String(url||\"\").trim());if(!match)return null;try{return classIndexFor(decodeURIComponent(match[1]));}catch{return null;}}// The site's own page paths for these indices: /benchmarks/<city>-volatility-index. The CMS slug\n// is the readable one; the API slug is what the dashboard fetches.\nconst PAGE_SLUGS={\"brazil-volatility-index\":\"brazil-vix-em\",\"mexico-volatility-index\":\"mexico-vix-em\",\"argentina-volatility-index\":\"argentina-vix-em\",\"china-volatility-index\":\"china-vix-em\",\"turkey-volatility-index\":\"turkey-vix-em\",\"india-volatility-index\":\"india-vix-em\"};/** The class-index slug behind a page pathname, or null when the page is not one of them. */export function classIndexForPath(pathname){const last=legacyPathname(pathname).split(\"/\").filter(Boolean).pop();if(!last)return null;const key=last.toLowerCase();return PAGE_SLUGS[key]??classIndexFor(key);}const num=v=>typeof v===\"number\"&&Number.isFinite(v)?v:null;// A metric leaf ({ value, unit, as_of, availability, period }) is carried only when the catalog says\n// it is available AND numeric; \"not_recorded\" and \"partial\" become null so no page prints a sum\n// over incomplete coverage. Units are the catalog's (USD once the venues are normalised).\nconst metric=m=>m&&m.availability===\"available\"&&typeof m.value===\"number\"&&Number.isFinite(m.value)?{value:m.value,unit:m.unit??\"USD\",as_of:m.as_of??null,availability:\"available\",period:m.period??null}:null;const METRIC_KEYS=[\"volume_24h\",\"volume_total\",\"open_interest\",\"liquidity\"];const metricsOf=block=>block&&typeof block===\"object\"?Object.fromEntries(METRIC_KEYS.map(k=>[k,metric(block[k])])):null;/** History rows come as OHLC buckets with a `value`; the legacy series is [{ t, mean }]. */export function historyPoints(payload){const rows=Array.isArray(payload?.data?.series)?payload.data.series:Array.isArray(payload?.series)?payload.series:[];return rows.map(r=>({t:r?.t,mean:num(r?.close??r?.value)})).filter(p=>typeof p.t===\"string\"&&p.mean!==null).sort((a,b)=>a.t<b.t?-1:a.t>b.t?1:0);}const fmtPts=n=>n===null?\"—\":n.toFixed(2);/**\n * detail: GET /api/v1/indices/{slug}  (the envelope or its data)\n * row:    the matching entry of GET /api/v1/indices (change windows + latest value)\n * series: [{ t, mean }]\n */export function marketFromVersioned(detail,row,series=[],{liveSince=null}={}){const d=detail?.data??detail??{};const r=row??{};const slug=d.slug??r.slug??null;const symbol=d.symbol??r.symbol??d.id??null;const name=d.name??r.name??symbol??slug;const snapshot=r.latest_snapshot??d.latest_snapshot??null;const value=num(snapshot?.value?.number);const status=d.status??r.status??{};const held=status.publication_eligible===false;const change=r.change&&typeof r.change===\"object\"?r.change:null;const venues=(Array.isArray(d.prediction_markets?.venues)?d.prediction_markets.venues:[]).map(v=>({venue_id:v?.venue_id??null,name:v?.name??v?.venue_id??null,role:v?.role??null,weight:num(v?.weight),weight_pct:num(v?.weight_pct),weight_basis:v?.weight_basis??null,venue_url:v?.venue_url??null,metrics:metricsOf(v?.metrics),metrics_scope:v?.metrics_scope??null,metrics_expected_contract_count:num(v?.metrics_expected_contract_count),metrics_observed_contract_count:num(v?.metrics_observed_contract_count),contracts:(Array.isArray(v?.contracts)?v.contracts:[]).map(c=>({contract_id:c?.contract_id??null,name:c?.name??null,url:c?.url??null,role:c?.role??null,status:c?.status??null,current_price:num(c?.current_price),distribution_contribution:c?.distribution_contribution??null,metrics:metricsOf(c?.metrics)}))}));const contractCount=num(d.prediction_markets?.contract_set_count)??venues.reduce((n,v)=>n+v.contracts.length,0);const means=series.map(p=>p.mean);return{slug,symbol,title:name,label:name,bucket:d.category??r.category??\"Emerging Market VIX\",unit:d.unit??r.unit??\"pts\",kind:\"class_index\",class_index:true,official:false,oracle_eligible:false,settlement_eligible:false,publication_eligible:!held,held,stale:held,index_now:value,index_fmt:snapshot?.value?.display??fmtPts(value),change_24h_pct:num(change?.day_change_pct),change,computed_at:snapshot?.computed_at??null,source:d.methodology?.estimand??null,thesis:d.description?.text??r.description?.text??null,release:d.release??null,series,history_from:series[0]?.t??null,history_to:series[series.length-1]?.t??null,// Where the live methodology starts; history before it is the disclosed offline replay.\nlive_since:liveSince,index_min:means.length?Math.min(...means):null,index_max:means.length?Math.max(...means):null,// Nothing here is a distribution or a scalar contract — the fields the pre-IPO pages\n// read for those are left absent on purpose.\nn_outcomes:null,// Index-level totals (cross-venue, USD) once the catalog serves them; absent leaves stay null.\nsource_metrics:metricsOf(d.source_metrics??r.source_metrics),contract:null,index_info:{schema_version:\"mecone-index-info-v1\",identity:{symbol,slug,name,category:d.category??r.category??null},description:d.description??r.description??null,methodology:d.methodology??null,release:d.release??null,prediction_markets:{contract_set_count:contractCount,distribution:null,venues}}};}/** The board row for a class index, in the shape the IndexTicker reads off /api/markets. */export function boardRowFromVersioned(row){if(!row||typeof row!==\"object\")return null;const slug=row.slug??null;if(!classIndexFor(slug))return null;const value=num(row.latest_snapshot?.value?.number);return{slug,symbol:row.symbol??null,title:row.name??row.symbol??slug,label:row.name??row.symbol??slug,index_fmt:row.latest_snapshot?.value?.display??fmtPts(value),change_24h_pct:num(row.change?.day_change_pct),class_index:true,held:row.status?.publication_eligible===false};}async function getJSON(url){const response=await fetch(url);if(!response.ok)throw new Error(`HTTP ${response.status}`);return await response.json();}/**\n * The legacy-shaped detail for one class index: catalog detail + list row + a week of history\n * (the 7-day high/low/change cells read `series`).\n */export async function fetchClassIndexLegacy(slug,{history=\"1w\"}={}){const id=classIndexFor(slug);if(!id)throw new Error(`${slug} is not a class index`);const[detail,list,historyPayload]=await Promise.all([getJSON(`${API_BASE}/api/v1/indices/${encodeURIComponent(id)}`),getJSON(`${API_BASE}/api/v1/indices`).catch(()=>null),getJSON(`${API_BASE}/api/v1/indices/${encodeURIComponent(id)}/history?range=${history}`).catch(()=>null)]);const row=(Array.isArray(list?.data)?list.data:[]).find(r=>r?.slug===id)??null;return marketFromVersioned(detail,row,historyPoints(historyPayload),{liveSince:historyPayload?.meta?.backfill?.through??null});}/** Every class index as a board row, for merging into the legacy /api/markets list. */export async function fetchClassIndexBoardRows(){const list=await getJSON(`${API_BASE}/api/v1/indices`);return(Array.isArray(list?.data)?list.data:[]).map(boardRowFromVersioned).filter(Boolean);}\nexport const __FramerMetadata__ = {\"exports\":{\"fetchClassIndexBoardRows\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"classIndexFor\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"fetchClassIndexLegacy\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"classIndexForPath\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"classIndexFromLegacyUrl\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"boardRowFromVersioned\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"API_BASE\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"marketFromVersioned\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"historyPoints\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"CLASS_INDICES\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{useState,useEffect,startTransition}from\"react\";import{addPropertyControls,ControlType}from\"framer\";// @ts-ignore\nimport{fetchClassIndexBoardRows}from\"https://framerusercontent.com/modules/qAxjacaimBLNuk5uqDil/hTMN5SaOhtPVXMYMT0w0/ClassIndices.js\";// User request summary:\n// - Normalize API base URLs so both host roots and direct /api/markets endpoints work.\n// - Keep all markets (do not filter by pq), and make customSlug override enum selection.\n// - Key cache by resolved fetch URL and keep unmatched-slug messaging.\n// - Add convenience enum options for newly added indices.\n// Weather benchmarks live in the same CMS collection but are priced by a different service, so the\n// markets list has no row for them and every cell fell through to the \"—\" placeholder. One call to\n// the weather API serves every weather row on the board.\n// Board rows whose data is withheld for now (2026-09-19). Remove a slug to show its data again.\nconst COMING_SOON=new Set([\"brazil-vix-em\",\"mexico-vix-em\",\"argentina-vix-em\",\"china-vix-em\",\"gpu-h100-rental\",\"gpu-h200-rental\",\"gpu-b200-rental\",\"us-gdp\",\"us-cpi-yoy\",\"us-unemployment\"]);const WEATHER_STATIONS={\"atlanta-daily-temperature\":\"KATL\",\"austin-daily-temperature\":\"KAUS\",\"boston-daily-temperature\":\"KBOS\",\"charlotte-daily-temperature\":\"KCLT\",\"chicago-daily-temperature\":\"KORD\",\"dallas-daily-temperature\":\"KDFW\",\"denver-daily-temperature\":\"KDEN\",\"detroit-daily-temperature\":\"KDTW\",\"houston-daily-temperature\":\"KHOU\",\"jacksonville-daily-temperature\":\"KJAX\",\"las-vegas-daily-temperature\":\"KLAS\",\"los-angeles-daily-temperature\":\"KLAX\",\"miami-daily-temperature\":\"KMIA\",\"minneapolis-daily-temperature\":\"KMSP\",\"nashville-daily-temperature\":\"KBNA\",\"new-orleans-daily-temperature\":\"KMSY\",\"new-york-daily-temperature\":\"KNYC\",\"oklahoma-city-daily-temperature\":\"KOKC\",\"philadelphia-daily-temperature\":\"KPHL\",\"phoenix-daily-temperature\":\"KPHX\",\"san-antonio-daily-temperature\":\"KSAT\",\"san-francisco-daily-temperature\":\"KSFO\",\"seattle-daily-temperature\":\"KSEA\",\"washington-dc-daily-temperature\":\"KDCA\"};const WEATHER_URL=\"https://api.mecone.trade/api/v1/weather\";const WEATHER_TTL=60*1e3;let weatherCache=null;let weatherInflight=null;async function getWeatherRows(){if(weatherCache&&Date.now()-weatherCache.ts<WEATHER_TTL)return weatherCache.rows;if(weatherInflight)return weatherInflight;weatherInflight=fetch(WEATHER_URL).then(r=>r.ok?r.json():Promise.reject(new Error(String(r.status)))).then(json=>{const rows=Array.isArray(json?.data)?json.data:[];weatherCache={ts:Date.now(),rows};weatherInflight=null;return rows;}).catch(e=>{weatherInflight=null;throw e;});return weatherInflight;}// Module-level shared caches keyed by resolved URL.\nconst cacheByUrl=new Map;const inflightByUrl=new Map;const TTL=5*60*1e3// 5 min, matches API update cadence\n;const subscribers=new Set;function resolveMarketsUrl(apiBase){const normalized=(apiBase||\"\").trim().replace(/\\/+$/,\"\");if(normalized.endsWith(\"/api/markets\")||normalized.endsWith(\"/markets\")){return normalized;}return`${normalized}/api/markets`;}// ---- the market store's registry (MarketsLive.tsx) --------------------------------------------\n// The store fetches the list with the page bundle and keeps the last one this browser saw, so a\n// cell's first read is served from it; the class-backed rows are merged in the background exactly\n// as a normal fetch would, and a socket-driven refetch by the store reaches every cell.\nconst LIST_URL=\"https://api.mecone.trade/api/markets\";function registry(){return typeof window!==\"undefined\"?window.__meconeMarkets??null:null;}let registryHooked=false;let mergedTs=0;function adoptList(json,ts){if(!json||!Array.isArray(json.markets))return;const cached=cacheByUrl.get(LIST_URL);if(cached&&cached.ts>=ts)return;cacheByUrl.set(LIST_URL,{data:json,ts});subscribers.forEach(fn=>fn());if(mergedTs===ts)return;mergedTs=ts;fetchClassIndexBoardRows().then(classRows=>{const current=cacheByUrl.get(LIST_URL);if(!current||current.ts!==ts)return;const legacy=Array.isArray(json.markets)?json.markets:[];const known=new Set(legacy.map(m=>m.slug));cacheByUrl.set(LIST_URL,{data:{...json,markets:[...legacy,...classRows.filter(m=>!known.has(m.slug))]},ts});subscribers.forEach(fn=>fn());}).catch(()=>{});}function seedFromRegistry(){const r=registry();if(!r)return;if(!registryHooked){registryHooked=true;r.subscribe((url,entry)=>{if(url===LIST_URL)adoptList(entry.data,entry.ts);});}const entry=r.get(LIST_URL);if(entry)adoptList(entry.data,entry.ts);}async function getMarkets(apiBase){const url=resolveMarketsUrl(apiBase);if(url===LIST_URL)seedFromRegistry();const now=Date.now();const cache=cacheByUrl.get(url);if(cache&&now-cache.ts<TTL)return cache.data;const inflight=inflightByUrl.get(url);if(inflight)return inflight;const request=fetch(url).then(r=>{if(!r.ok)throw new Error(`HTTP ${r.status}`);return r.json();}).then(async json=>{// Class-backed indices (EM-VIX) are listed only on the versioned catalog; their board\n// rows are merged in so the same cell reads them. A catalog failure leaves the legacy\n// list exactly as served — the eight public indices never depend on it.\nconst classRows=await fetchClassIndexBoardRows().catch(()=>[]);const legacy=Array.isArray(json?.markets)?json.markets:[];const known=new Set(legacy.map(m=>m.slug));return{...json,markets:[...legacy,...classRows.filter(m=>!known.has(m.slug))]};}).then(json=>{cacheByUrl.set(url,{data:json,ts:Date.now()});inflightByUrl.delete(url);return json;}).catch(e=>{inflightByUrl.delete(url);throw e;});inflightByUrl.set(url,request);return request;}/**\n * @framerIntrinsicWidth 400\n * @framerIntrinsicHeight 80\n * \n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight any-prefer-fixed\n *//**\n * A weather row rendered as a Market. The level is the current reading; the change is a delta in °F\n * against the day's first observation — NOT a percentage. A percent change of a Fahrenheit reading\n * is not a meaningful quantity (the zero point is arbitrary), so publishing one would invent a\n * statistic. Everything here is measured, never derived from a normal or a record.\n */function useWeatherMarket(slug){const icao=WEATHER_STATIONS[slug.toLowerCase()]??\"\";const[row,setRow]=useState(null);useEffect(()=>{if(!icao){setRow(null);return;}let alive=true;const load=()=>getWeatherRows().then(rows=>{if(!alive)return;const found=rows.find(r=>r?.icao===icao);if(!found||typeof found.current_f!==\"number\"){setRow(null);return;}// The API publishes its own day-over-day move (change.day_change, measured on\n    // the day high) — the same number the terminal board reads, so the two surfaces\n    // agree. Falling back to the intraday delta keeps the cell populated on any\n    // station that has not been backfilled with a previous day yet.\n    const published=found?.change?.day_change;const obs=Array.isArray(found.observations)?found.observations:[];const firstOfDay=[...obs].reverse().find(o=>typeof o?.temp_f===\"number\");const delta=typeof published===\"number\"?published:firstOfDay&&typeof firstOfDay.temp_f===\"number\"?found.current_f-firstOfDay.temp_f:undefined;setRow({slug,title:found.city,label:found.city,index_fmt:`${found.current_f.toFixed(0)}\\xb0F`,weather:true,delta_f:delta});}).catch(()=>{if(alive)setRow(null);});load();const id=setInterval(load,WEATHER_TTL);return()=>{alive=false;clearInterval(id);};},[icao,slug]);return row;}export default function IndexTicker(props){const{apiBase,positiveColor=\"#1a7f4b\",negativeColor=\"#b23b3b\",labelColor=\"#000000\",valueColor=\"#000000\",itemGap=28,verticalPadding=0,showBadge=true,selectedMarket=\"all\",customSlug=\"\",labelFont,valueFont,percentFont,style,showLabel=true,showValue=true,showPercent=true,showArrow=true,unavailableText=\"—\",fallbackValue=\"\",fallbackChange=\"\",fallbackChangeColor}=props;const[markets,setMarkets]=useState([]);const[error,setError]=useState(null);const weatherMarket=useWeatherMarket((customSlug||\"\").trim());useEffect(()=>{let cancelled=false;async function load(){try{const json=await getMarkets(apiBase);if(!cancelled){startTransition(()=>{setMarkets(json.markets??[]);setError(null);});}}catch(e){if(!cancelled){const message=e instanceof Error?e.message:\"Unknown error\";startTransition(()=>setError(message));}}}load();const tick=()=>load();subscribers.add(tick);const id=setInterval(()=>{cacheByUrl.clear()// force refresh on next call\n;subscribers.forEach(fn=>fn());},TTL);return()=>{cancelled=true;subscribers.delete(tick);clearInterval(id);};},[apiBase]);const normalizedCustomSlug=(customSlug||\"\").trim();const targetSlug=normalizedCustomSlug.length>0?normalizedCustomSlug:selectedMarket===\"custom\"?\"\":selectedMarket;// Indices whose data is withheld from the board for now (2026-09-19): the value column shows the\n// neutral placeholder and the change column stays empty; the trend column carries the board's\n// \"COMING SOON\" tag (see MarketSpark.tsx, same COMING_SOON list).\nif(COMING_SOON.has(targetSlug)){if(!showValue)return /*#__PURE__*/_jsx(\"div\",{style:{...style},\"aria-hidden\":\"true\"});return /*#__PURE__*/_jsx(\"div\",{style:{...style,opacity:.5},children:unavailableText});}const displayMarkets=targetSlug===\"all\"?markets:markets.filter(m=>(m.slug??\"\")===targetSlug);const hasFallbackValue=fallbackValue.trim().length>0;const hasFallbackChange=fallbackChange.trim().length>0;const hasFallbackColor=!!fallbackChangeColor;const hasAnyFallback=hasFallbackValue||hasFallbackChange||hasFallbackColor;const apiBaseMissing=apiBase.trim().length===0;const hasSlugMatch=targetSlug===\"all\"?markets.length>0:displayMarkets.length>0;const liveUnavailable=apiBaseMissing||!!error||markets.length===0||!hasSlugMatch;const shouldUseFallback=liveUnavailable&&hasAnyFallback;if(shouldUseFallback){const fallbackIsNegative=fallbackChange.trim().startsWith(\"-\");const resolvedFallbackChangeColor=fallbackChangeColor||(fallbackIsNegative?negativeColor:positiveColor);return /*#__PURE__*/_jsxs(\"div\",{style:{...style,position:\"relative\",display:\"flex\",gap:itemGap,alignItems:\"baseline\",flexWrap:\"wrap\",padding:`${verticalPadding}px 0`},children:[/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",flexDirection:\"column\",gap:2},children:[showValue&&hasFallbackValue&&/*#__PURE__*/_jsx(\"span\",{style:{...valueFont,fontWeight:600,color:valueColor},children:fallbackValue}),showPercent&&hasFallbackChange&&/*#__PURE__*/_jsxs(\"span\",{style:{...percentFont,fontSize:12,color:resolvedFallbackChangeColor},children:[fallbackChange,showArrow&&/*#__PURE__*/_jsx(\"span\",{style:{fontSize:\"0.95em\",marginLeft:3},children:fallbackIsNegative?\"▼\":\"▲\"})]})]}),showBadge&&/*#__PURE__*/_jsx(\"span\",{style:{fontSize:10,letterSpacing:1.5,opacity:.45},children:\"PAPER / SIMULATED\"})]});}// Diagnostics belong in the console, never on the public board: this used to print\n// `⚠︎ …` / `no market matches \"terbium-oxide\"` to visitors on catalogued rows that have no\n// live market yet and no backup value filled in. Degrade to a neutral placeholder instead.\nif(error){console.warn(`[mecone] index feed error for \"${targetSlug}\": ${error}`);return /*#__PURE__*/_jsx(\"div\",{style:{...style,opacity:.5},children:unavailableText});}if(targetSlug!==\"all\"&&markets.length>0&&displayMarkets.length===0&&!weatherMarket){console.warn(`[mecone] no market matches \"${targetSlug}\" — set a Fallback Value on this CMS item`);return /*#__PURE__*/_jsx(\"div\",{style:{...style,opacity:.5},children:unavailableText});}return /*#__PURE__*/_jsxs(\"div\",{style:{...style,position:\"relative\",display:\"flex\",gap:itemGap,alignItems:\"baseline\",flexWrap:\"wrap\",padding:`${verticalPadding}px 0`},children:[(displayMarkets.length?displayMarkets:weatherMarket?[weatherMarket]:[]).map((m,index)=>{const pct=m.change_24h_pct??0;const up=pct>=0;return /*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",flexDirection:\"column\",gap:2},children:[showLabel&&/*#__PURE__*/_jsx(\"span\",{style:{...labelFont,letterSpacing:.5,opacity:.55,textTransform:\"uppercase\",color:labelColor},children:m.label}),showValue&&/*#__PURE__*/_jsx(\"span\",{style:{...valueFont,fontWeight:600,color:valueColor},children:m.index_fmt}),m.weather&&(showPercent||!showValue)&&/*#__PURE__*/_jsxs(\"span\",{style:{...percentFont,fontSize:12,color:(m.delta_f??0)>=0?positiveColor:negativeColor},children:[typeof m.delta_f===\"number\"?`${m.delta_f>=0?\"+\":\"\"}${m.delta_f.toFixed(1)}\\xb0F`:unavailableText,showArrow&&typeof m.delta_f===\"number\"&&/*#__PURE__*/_jsx(\"span\",{style:{fontSize:\"0.95em\",marginLeft:3},children:m.delta_f>=0?\"▲\":\"▼\"})]}),showPercent&&!m.weather&&/*#__PURE__*/_jsxs(\"span\",{style:{...percentFont,fontSize:12,color:up?positiveColor:negativeColor},children:[up?\"+\":\"\",pct.toFixed(2),\"%\",showArrow&&/*#__PURE__*/_jsx(\"span\",{style:{fontSize:\"0.95em\",marginLeft:3},children:up?\"▲\":\"▼\"})]})]},m.slug??m.title??`market-${index}`);}),showBadge&&/*#__PURE__*/_jsx(\"span\",{style:{fontSize:10,letterSpacing:1.5,opacity:.45},children:\"PAPER / SIMULATED\"})]});}addPropertyControls(IndexTicker,{apiBase:{type:ControlType.String,title:\"API base\",defaultValue:\"https://api.mecone.trade\"},selectedMarket:{type:ControlType.Enum,title:\"Market\",defaultValue:\"all\",options:[\"all\",\"openai-ipo-closing-market-cap\",\"anthropic-ipo-closing-market-cap-979\",\"us-gdp\",\"us-cpi-yoy\",\"us-unemployment\",\"custom\"],optionTitles:[\"All Markets\",\"OpenAI Valuation\",\"Anthropic Valuation\",\"US GDP\",\"US CPI YoY\",\"US Unemployment\",\"Custom slug…\"]},customSlug:{type:ControlType.String,title:\"Custom Slug\",defaultValue:\"\",hidden(props){return props.selectedMarket!==\"custom\";}},showLabel:{type:ControlType.Boolean,title:\"Show Label\",defaultValue:true,enabledTitle:\"Show\",disabledTitle:\"Hide\"},showValue:{type:ControlType.Boolean,title:\"Show Value\",defaultValue:true,enabledTitle:\"Show\",disabledTitle:\"Hide\"},showPercent:{type:ControlType.Boolean,title:\"Show Percent\",defaultValue:true,enabledTitle:\"Show\",disabledTitle:\"Hide\"},showArrow:{type:ControlType.Boolean,title:\"Show Arrow\",defaultValue:true,enabledTitle:\"Show\",disabledTitle:\"Hide\",hidden(props){return!props.showPercent;}},labelFont:{type:ControlType.Font,title:\"Label Font\",controls:\"extended\",defaultFontType:\"sans-serif\",defaultValue:{fontSize:11},hidden(props){return!props.showLabel;}},valueFont:{type:ControlType.Font,title:\"Value Font\",controls:\"extended\",defaultFontType:\"sans-serif\",defaultValue:{variant:\"Semibold\",fontSize:22},hidden(props){return!props.showValue;}},percentFont:{type:ControlType.Font,title:\"Percent Font\",controls:\"extended\",defaultFontType:\"sans-serif\",defaultValue:{fontSize:12},hidden(props){return!props.showPercent;}},positiveColor:{type:ControlType.Color,title:\"Positive Color\",defaultValue:\"#1a7f4b\",hidden(props){return!props.showPercent;}},negativeColor:{type:ControlType.Color,title:\"Negative Color\",defaultValue:\"#b23b3b\",hidden(props){return!props.showPercent;}},labelColor:{type:ControlType.Color,title:\"Label Color\",defaultValue:\"#000000\",hidden(props){return!props.showLabel;}},valueColor:{type:ControlType.Color,title:\"Value Color\",defaultValue:\"#000000\",hidden(props){return!props.showValue;}},itemGap:{type:ControlType.Number,title:\"Item Gap\",defaultValue:28,min:8,max:80,step:2,unit:\"px\"},verticalPadding:{type:ControlType.Number,title:\"V Padding\",defaultValue:0,min:0,max:40,step:1,unit:\"px\"},showBadge:{type:ControlType.Boolean,title:\"Show Badge\",defaultValue:true,enabledTitle:\"Show\",disabledTitle:\"Hide\"},unavailableText:{type:ControlType.String,title:\"Unavailable Text\",description:\"Shown instead of a diagnostic when an index has no live market and no fallback.\",defaultValue:\"—\"},fallbackValue:{type:ControlType.String,title:\"Fallback Value\",defaultValue:\"\"},fallbackChange:{type:ControlType.String,title:\"Fallback Change\",defaultValue:\"\"},fallbackChangeColor:{type:ControlType.Color,title:\"Fallback Change Color\",optional:true}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"IndexTicker\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}"],"mappings":"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"}