{"version":3,"file":"QuickSignalChanges.ChFRG25E.mjs","names":["useState","useMemo","_Fragment","p"],"sources":["https:/framerusercontent.com/modules/BX6IuQH5520CaGMfrVlY/iIPzGWwQrkMZBvvRpSn9/QuickSignalChanges.js"],"sourcesContent":["// Get Started: https://www.framer.com/developers\n//\n// \"Latest updates\" — Lead & Stack (in-place accordion)\n// Drop-in replacement for the QuickSignalChanges code component.\n//\n// Design: linkedinV3/Latest Updates - Lead & Stack.html  (Powder pink + deep red variant)\n// - One DOM node per item that restyles between a collapsed row and an expanded\n//   colour card. Header geometry is CONSTANT between states (logo + title never\n//   resize) so nothing reflows mid-animation. Only the colour card fills in and\n//   the body / read-link fade-and-slide in on a single eased curve, lightly\n//   staggered — the way polished accordions behave.\n// - Accordion: exactly one item is open at all times. First item open by default.\n// - TODAY badge: deep red + white when collapsed, flips to powder pink + red on\n//   the open card.\n// - LEADER HIGHLIGHTS: names from relatedPersonnel that appear in the summary\n//   render as a gradient chip (with optional mini avatar) linking to the\n//   person's profile. Matches full names plus unambiguous surname-only later\n//   mentions. Link fields: in-text mentions open the entity's profileLink;\n//   the follow chips and company pill use profileFollowLink || profileLink,\n//   staying backwards compatible with feeds that only carry profileLink.\n//   Possessives (\"Korsgaard's\") are absorbed so no\n//   stray \"'s\" dangles outside it. Scope prop: Smart (chip on first mention,\n//   quiet underline on repeats — default), First mention only, or Every\n//   mention. Colours default per theme, overridable with a custom gradient.\n// - COMPANY HIGHLIGHTS: same treatment for relatedCompanies. Legal suffixes\n//   are handled both ways — \"Mandatum Oyj\" in the feed matches \"Mandatum\",\n//   \"Mandatum plc\" or \"Mandatum Oyj\" in the text, and whatever suffix the\n//   text uses is absorbed into the chip. Links go to the company profile and\n//   fire the company-follow tracking event.\n// - DATE HIGHLIGHTS: dates in the summary (\"August 17, 2026\", \"May 2025\",\n//   \"January–June 2026\") render as a soft tinted chip with a calendar glyph.\n//   Informational only — not a link. Toggleable via prop; bare years\n//   (\"since 2024\") are deliberately left plain.\n// - KEEP CHIPS WHOLE: optional nowrap on chips so an avatar and its name\n//   never split across a line break — the whole chip wraps instead.\n// - METRIC HIGHLIGHTS: money amounts (\"EUR 71.3 million\") and percentages\n//   (\"21.1%\", \"-2.4%\", \"1,749.3%\") render as tinted chips. In \"trend\" mode the chip is\n//   coloured up/down with a triangle glyph, inferred from a leading minus or\n//   nearby wording within the same sentence (grew/rose/increasing vs\n//   fell/declined/negative). Comparison baselines carry no direction of\n//   their own and stay neutral: \"to EUR 6.0M from EUR 7.5M\" colours only\n//   the 6.0M; \"from EUR 7.5M\", \"up from 2.6%\", \"compared to EUR 21.4M\"\n//   render flat, including \"from a loss of EUR 0.5M\". Value descriptors\n//   (\"a loss of X\") state the sign, not a change, so they aren't cues —\n//   \"improvement, moving from a loss of A to a loss of B\" colours B up.\n//   Heuristic by design — Neutral mode skips the colouring\n//   entirely if it misreads your feed's phrasing.\n// - MONTH PERIODS: month ranges without a year (\"April-June\") count as\n//   dates too; single bare months (\"in August\") stay plain.\n// - CARD INSET: one prop sets the gutter between the white feed edge and\n//   the item cards — equal on all four sides, and the headline + CTA line\n//   up with it, so the frame stays even with or without the header.\n// - SHARP CORNERS: structural surfaces are square — the feed card, the\n//   item rows, the company-follow pill and the CTA button. Chips, badges,\n//   avatars/logos, minis and the small decorative bits keep their radii.\n// - CHIP BACKGROUND: boolean prop (default OFF — plain emphasized text).\n//   On fills the pills; either way the mini avatars, calendar/trend\n//   glyphs, links and up/down colours are kept.\n// - LINKED HOVER: hovering an in-text person/company mention cross-\n//   highlights its follow chip below (soft avatar ring + underline), and\n//   vice versa. Static, no animation loops — appears on hover/focus only.\n// - \"MORE SIGNALS\" FOOTER: reads last7DaysCount from the same feed and\n//   renders it as a tinted tile — count chip, an action line over a muted\n//   context line, and an arrow — with its own link, copy, font and colour\n//   props. Hidden when the count is absent.\n// - KEYWORD HIGHLIGHTS: financial terms (EBITDA, revenue, adjusted operating\n//   profit, …) get a subtle dotted-underline emphasis. The term list is an\n//   editable prop, matched case-insensitively in LIST ORDER — put longer\n//   terms first so \"adjusted operating profit\" wins the span before\n//   \"operating profit\" can partially highlight it.\nimport{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from\"react/jsx-runtime\";import{useEffect,useMemo,startTransition,useState}from\"react\";import{addPropertyControls,ControlType,RenderTarget,useTracking}from\"framer\";//\n// Tracking event names — preserved verbatim from the original QuickSignalChanges\n// component so analytics stay continuous after the swap (yes, \"singals\" is a\n// pre-existing typo; keep it so historical events still match).\n//\nconst TRACK={expand:\"singals-read-more-click\",readFull:\"read-full-signal-click\",cta:\"latest-updates-cta-click\",more:\"latest-updates-more-click\",companyFollow:\"signal-company-click\",leaderFollow:\"signal-personnel-click\"};const EMPTY_LIST=[];const FEED_CACHE_TTL_MS=2*60*1e3;const FEED_FETCH_TIMEOUT_MS=12*1e3;const QUICK_SIGNALS_PROD_URL=\"https://storage.googleapis.com/listeds_media_data/quick-signals-feed-v2.json\";const QUICK_SIGNALS_FONT_HREF=\"https://fonts.googleapis.com/css2?family=Lora:ital,wght@0,400;0,500;0,600;1,400;1,500&family=DM+Sans:opsz,wght@9..40,400;9..40,500;9..40,600;9..40,700&display=swap\";const quickSignalsCache=new Map;const quickSignalsInFlight=new Map;function parseQuickSignalsPayload(raw){const items=raw?.data?.data;if(!Array.isArray(items)){throw new Error(\"Malformed quick signals payload\");}const n=Number(raw?.data?.last7DaysCount);return{items,moreCount:Number.isFinite(n)?n:null};}// The bucket serves the feed with \"Cache-Control: public, max-age=3600\", so a\n// bare URL can come back from the browser or Google's edge cache up to an hour\n// old. Every network request gets a fresh ?v= to always reach the newest feed;\n// reuse across client-side page changes comes from quickSignalsCache, which is\n// keyed by the bare URL.\nfunction withCacheBuster(url){return`${url}${url.includes(\"?\")?\"&\":\"?\"}v=${Date.now()}`;}function fetchQuickSignals(url){const existing=quickSignalsInFlight.get(url);if(existing)return existing;const controller=new AbortController;const timer=setTimeout(()=>{controller.abort();},FEED_FETCH_TIMEOUT_MS);const request=fetch(withCacheBuster(url),{signal:controller.signal}).then(r=>{if(!r.ok){throw new Error(`Quick signals request failed (${r.status})`);}return r.json();}).then(raw=>{const payload=parseQuickSignalsPayload(raw);quickSignalsCache.set(url,{data:payload,fetchedAt:Date.now()});return payload;}).finally(()=>{clearTimeout(timer);quickSignalsInFlight.delete(url);});quickSignalsInFlight.set(url,request);return request;}function canStartModulePrefetch(){if(typeof window===\"undefined\"||typeof document===\"undefined\")return false;try{const target=RenderTarget.current();return target!==RenderTarget.canvas&&target!==RenderTarget.export&&target!==RenderTarget.thumbnail;}catch{return false;}}function ensureQuickSignalsFontsLoaded(){if(typeof document===\"undefined\")return;const id=\"quick-signals-fonts\";if(document.getElementById(id))return;const link=document.createElement(\"link\");link.id=id;link.rel=\"stylesheet\";link.href=QUICK_SIGNALS_FONT_HREF;document.head.appendChild(link);}if(canStartModulePrefetch()){fetchQuickSignals(QUICK_SIGNALS_PROD_URL).catch(()=>{});}// CSS custom-property maps. Typed loosely (string→string) and cast to\n// CSSProperties at the point of use, since React's CSSProperties doesn't model\n// `--foo` keys.\nconst THEMES={olive:{\"--lead-bg\":\"#3E5234\",\"--lead-fg\":\"#ffffff\",\"--lead-sub\":\"rgba(255,255,255,.74)\",\"--lead-accent\":\"#E7E8BB\",\"--device\":\"rgba(231,232,187,.16)\",\"--read\":\"#ffffff\",\"--tick\":\"#3E5234\",\"--hl-from\":\"#DFE6A9\",\"--hl-to\":\"#F2EACB\",\"--hl-fg\":\"#26301b\",\"--pos\":\"#9FE0A8\",\"--neg\":\"#FFAB9E\"},black:{\"--lead-bg\":\"#0d0d0c\",\"--lead-fg\":\"#ffffff\",\"--lead-sub\":\"rgba(242,242,240,.66)\",\"--lead-accent\":\"#E7E8BB\",\"--device\":\"rgba(231,232,187,.12)\",\"--read\":\"#ffffff\",\"--tick\":\"#3E5234\",\"--hl-from\":\"#DFE6A9\",\"--hl-to\":\"#F2EACB\",\"--hl-fg\":\"#26301b\",\"--pos\":\"#9FE0A8\",\"--neg\":\"#FFAB9E\"},lgreen:{\"--lead-bg\":\"#E7E8BB\",\"--lead-fg\":\"#222a18\",\"--lead-sub\":\"rgba(34,42,24,.72)\",\"--lead-accent\":\"#3E5234\",\"--device\":\"rgba(62,82,52,.12)\",\"--read\":\"#2f3d27\",\"--tick\":\"#3E5234\",\"--hl-from\":\"rgba(255,255,255,.95)\",\"--hl-to\":\"rgba(255,255,255,.5)\",\"--hl-fg\":\"#222a18\",\"--pos\":\"#256D33\",\"--neg\":\"#B7141E\"},pink:{\"--lead-bg\":\"#FFD3C8\",\"--lead-fg\":\"#3a1416\",\"--lead-sub\":\"rgba(58,20,22,.68)\",\"--lead-accent\":\"#B7141E\",\"--device\":\"rgba(183,20,30,.1)\",\"--read\":\"#9c1019\",\"--tick\":\"#B7141E\",\"--hl-from\":\"rgba(255,255,255,.95)\",\"--hl-to\":\"rgba(255,255,255,.5)\",\"--hl-fg\":\"#9c1019\",\"--pos\":\"#1E7A3A\",\"--neg\":\"#9C1019\"}};//\n// Scoped stylesheet. Everything lives under .lus so it can't leak into the\n// rest of the Framer page. This carries the pseudo-element dividers, the\n// height (grid-template-rows) reveal, the staggered fades and the blink\n// animation — all of which inline styles can't express.\n//\nconst STYLE=`\n.lus{ --serif:'Lora',Georgia,serif; --sans:'DM Sans',-apple-system,sans-serif;\n  --red:#B7141E; --pink:#FFD3C8; --inset:12px;\n  --more-bg:color-mix(in srgb, var(--lead-bg) 40%, #fff);\n  --more-bg-h:color-mix(in srgb, var(--lead-bg) 70%, #fff);\n  --more-fg:#15140f; --more-n-bg:var(--lead-bg); --more-n-fg:var(--lead-fg);\n  font-family:var(--sans); color:#1b1812; -webkit-font-smoothing:antialiased; }\n.lus *{ box-sizing:border-box; }\n\n.lus .feed{ background:#fff; overflow:hidden; }\n\n.lus .head{ display:flex; align-items:center; justify-content:space-between; padding:26px calc(var(--inset) + 16px) 8px; }\n.lus .head .h{ font-family:var(--serif); font-weight:400; font-size:20px; letter-spacing:-.015em; color:#15140f; }\n.lus .head .live{ display:inline-flex; align-items:center; gap:8px; font-size:10.5px; font-weight:600; letter-spacing:.15em; text-transform:uppercase; color:#8a8a82; }\n.lus .head .live .dot{ width:8px; height:8px; border-radius:50%; background:var(--red); }\n\n.lus .list{ padding:var(--inset); }\n\n.lus .item{ position:relative; overflow:hidden; transition:background .42s cubic-bezier(.4,0,.15,1); background:transparent; }\n.lus .item:not(.open):not(:last-child)::after{ content:\"\"; position:absolute; left:14px; right:14px; bottom:0; height:1px; background:#efeeea; }\n.lus .item.open{ background:var(--lead-bg); }\n.lus .item .device{ position:absolute; right:-52px; bottom:-52px; width:168px; height:168px; border-radius:168px 0 0 0; background:var(--device); pointer-events:none; opacity:0; transition:opacity .4s ease; }\n.lus .item.open .device{ opacity:1; }\n\n.lus .item .header{ position:relative; width:100%; display:grid; grid-template-columns:44px 1fr 18px; gap:12px; align-items:start; background:none; border:0; text-align:left; font-family:inherit; cursor:pointer; padding:16px 16px; }\n.lus .item.open .header{ cursor:pointer; }\n.lus a.title-link{ cursor:pointer; }\n\n.lus .item .logo{ width:44px; height:44px; border-radius:10px; flex:none; display:flex; align-items:center; justify-content:center; font-weight:800; font-size:13px; border:1px solid #eceae2; overflow:hidden; background:#fff; color:#15140f; transition:border-color .35s ease,box-shadow .35s ease; }\n.lus .item.open .logo{ border-color:transparent; box-shadow:0 2px 10px rgba(0,0,0,.16); }\n.lus .item .logo img{ width:100%; height:100%; object-fit:cover; display:block; }\n\n.lus .item .meta{ display:flex; align-items:center; gap:9px; margin-bottom:7px; flex-wrap:wrap; }\n.lus .item .today{ display:inline-flex; align-items:center; gap:5px; font-size:9.5px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:#fff; background:var(--red); padding:3px 8px 3px 7px; border-radius:5px; transition:background .35s ease,color .35s ease; }\n.lus .item .today .pip{ width:5px; height:5px; border-radius:50%; background:rgba(255,255,255,.9); animation:lus-blink 2.4s ease-out infinite; }\n@keyframes lus-blink{ 0%,100%{opacity:.45} 50%{opacity:1} }\n.lus .item.open .today{ background:var(--pink); color:var(--red); }\n.lus .item.open .today .pip{ background:var(--red); }\n.lus .item .tk{ font-size:9.5px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:#9a9a92; transition:color .35s ease; }\n.lus .item .tm{ font-size:9.5px; font-weight:600; letter-spacing:.08em; color:#c0c0b8; transition:color .35s ease; }\n.lus .item.open .tk{ color:var(--lead-sub); }\n.lus .item.open .tm{ color:var(--lead-sub); }\n\n.lus .item .title{ font-family:var(--serif); font-weight:400; font-size:16px; line-height:1.34; letter-spacing:-.006em; margin:0; color:#15140f; text-wrap:pretty; transition:color .35s ease; }\n.lus .item.open .title{ color:var(--lead-fg); }\n.lus .item:not(.open):hover .title{ text-decoration:underline; text-decoration-thickness:1.5px; text-underline-offset:3px; }\n/* open card: the headline is a real link to the signal */\n.lus a.title-link{ text-decoration:none; color:inherit; cursor:pointer; }\n.lus a.title-link:hover{ text-decoration:underline; text-decoration-thickness:1.5px; text-underline-offset:3px; }\n\n/* chevron sits softly visible at rest so collapsed rows read as tappable on\n   touch (no hover there); it deepens + nudges on hover and fades out when open */\n.lus .item .chev{ justify-self:end; align-self:center; display:inline-flex; color:#a7a79d; font-size:15px; transition:transform .3s ease,color .3s ease; }\n.lus .item:not(.open):hover .chev{ color:var(--tick); transform:translateX(3px); }\n/* when open the chevron flips to a top-right collapse control */\n.lus .item.open .chev{ align-self:start; margin-top:3px; color:var(--lead-sub); }\n.lus .item.open .header:hover .chev{ color:var(--lead-fg); }\n\n.lus .item .reveal{ display:grid; grid-template-rows:0fr; transition:grid-template-rows .42s cubic-bezier(.4,0,.15,1); }\n.lus .item.open .reveal{ grid-template-rows:1fr; }\n.lus .item .reveal-inner{ position:relative; z-index:1; min-height:0; overflow:hidden; }\n.lus .item .reveal-pad{ padding:4px 18px 22px 18px; }\n/* staggered reveal: body → follow cluster → footer */\n.lus .item .body,.lus .item .follow-block,.lus .item .card-foot{ opacity:0; transform:translateY(8px); transition:opacity .3s ease,transform .42s cubic-bezier(.4,0,.15,1); }\n.lus .item.open .body{ opacity:1; transform:none; transition-delay:.1s; }\n.lus .item.open .follow-block{ opacity:1; transform:none; transition-delay:.16s; }\n.lus .item.open .card-foot{ opacity:1; transform:none; transition-delay:.22s; }\n.lus .item .body{ font-size:14px; line-height:1.62; color:var(--lead-sub); margin:0; display:-webkit-box; -webkit-box-orient:vertical; overflow:hidden; }\n\n/* leader highlight — gradient chip in the body linking to the person's\n   profile. box-decoration-break keeps the chip looking right when a name\n   wraps across lines. Colours come from --hl-* (theme defaults, or the\n   component's custom-gradient props). */\n.lus .item :is(.body,.title) .lead-hl{ background:linear-gradient(90deg,var(--hl-from),var(--hl-to)); color:var(--hl-fg); font-weight:600; text-decoration:none; padding:1px 6px 2px; border-radius:7px; -webkit-box-decoration-break:clone; box-decoration-break:clone; cursor:pointer; transition:filter .15s ease, box-shadow .18s ease; }\n.lus .item .body a.lead-hl:hover{ text-decoration:underline; text-decoration-thickness:1.5px; text-underline-offset:2.5px; filter:saturate(1.08) brightness(1.03); }\n/* pull the chip against directly-following punctuation (\"Laaksonen,\") so the\n   chip's right padding doesn't read as a stray space before the comma */\n.lus .item :is(.body,.title) .lead-hl.tight-r{ margin-right:-4px; }\n/* mini avatar inside the chip — visually ties the in-text mention to the\n   follow chips below; falls back to initials when there's no avatarUrl */\n.lus .item .body a.lead-hl .mini{ display:inline-block; width:16px; height:16px; border-radius:50%; overflow:hidden; vertical-align:-3px; margin-right:5px; box-shadow:0 0 0 1px rgba(0,0,0,.1); font-size:8px; font-weight:700; letter-spacing:0; line-height:16px; text-align:center; background:var(--hl-fg); color:#fff; }\n.lus .item .body a.lead-hl .mini img{ width:100%; height:100%; object-fit:cover; display:block; }\n/* company minis are rounded-square (like the row logo) so companies read\n   differently from people at a glance */\n.lus .item .body a.lead-hl .mini.co{ border-radius:5px; }\n/* date chip — informational tint with a calendar glyph, not a link */\n.lus .item .body span.lead-hl.date{ background:color-mix(in srgb, var(--lead-fg) 9%, transparent); color:var(--lead-fg); cursor:default; }\n.lus .item .body span.lead-hl.date .cal{ display:inline-block; width:11px; height:11px; vertical-align:-1px; margin-right:4px; opacity:.7; }\n/* metric chip — money amounts & percentages; up/down variants take their\n   colour from the theme's --pos/--neg */\n.lus .item :is(.body,.title) span.lead-hl.metric{ background:color-mix(in srgb, var(--lead-fg) 9%, transparent); color:var(--lead-fg); cursor:default; font-variant-numeric:tabular-nums; }\n.lus .item :is(.body,.title) span.lead-hl.metric.up{ background:color-mix(in srgb, var(--pos) 16%, transparent); color:var(--pos); }\n.lus .item :is(.body,.title) span.lead-hl.metric.down{ background:color-mix(in srgb, var(--neg) 16%, transparent); color:var(--neg); }\n.lus .item :is(.body,.title) span.lead-hl.metric .tr{ display:inline-block; width:9px; height:9px; margin-right:3px; }\n/* keyword terms — subtle glossary-style emphasis, not a chip */\n.lus .item .body span.lead-hl.kw{ background:none; padding:0; margin:0; border-radius:0; color:var(--lead-fg); cursor:default; font-weight:600; text-decoration:underline dotted; text-decoration-thickness:1.5px; text-underline-offset:3px; text-decoration-color:color-mix(in srgb, var(--lead-fg) 45%, transparent); }\n/* keep chips whole (toggle): a chip never splits across lines — the whole\n   chip wraps to the next line instead of orphaning the avatar */\n.lus.hl-nowrap .item :is(.body,.title) .lead-hl:not(.quiet):not(.kw){ white-space:nowrap; }\n/* chip background off: strip the pill fills, keep everything else (avatars,\n   glyphs, links, trend colours) as plain emphasized text */\n.lus.hl-nobg .item :is(.body,.title) .lead-hl{ background:none; padding:0; margin:0; border-radius:0; color:var(--lead-fg); }\n.lus.hl-nobg .item :is(.body,.title) .lead-hl.tight-r{ margin-right:0; }\n.lus.hl-nobg .item .body span.lead-hl.date{ background:none; }\n.lus.hl-nobg .item :is(.body,.title) span.lead-hl.metric{ background:none; }\n.lus.hl-nobg .item :is(.body,.title) span.lead-hl.metric.up{ background:none; color:var(--pos); }\n.lus.hl-nobg .item :is(.body,.title) span.lead-hl.metric.down{ background:none; color:var(--neg); }\n/* linked hover — hovering an in-text mention cross-highlights its follow\n   chip below (and vice versa): calm ring + underline, no motion */\n.lus .item .body .lead-hl.linked:not(:hover){ box-shadow:0 0 0 2px color-mix(in srgb, var(--lead-fg) 32%, transparent); filter:saturate(1.05); }\n.lus .item .body a.lead-hl.quiet.linked:not(:hover){ box-shadow:none; filter:none; text-decoration-color:var(--lead-fg); }\n.lus.hl-nobg .item .body .lead-hl.linked:not(:hover){ box-shadow:none; filter:none; text-decoration:underline; text-decoration-thickness:1.5px; text-underline-offset:2.5px; }\n.lus .item .chip.linked:not(:hover) .av img{ box-shadow:0 0 0 2px color-mix(in srgb, var(--lead-fg) 60%, transparent); }\n.lus .item .chip.linked:not(:hover) .nm{ text-decoration:underline; text-decoration-thickness:1.5px; text-underline-offset:2px; }\n.lus .item .follow-co.linked:not(:hover){ background:color-mix(in srgb, var(--lead-fg) 18%, transparent); }\n/* metrics inside the serif headline read as small sans badges */\n.lus .item .title .lead-hl{ font-family:var(--sans); font-size:.74em; font-weight:600; vertical-align:2px; letter-spacing:0; }\n/* linked-hover effects — Ring is the static base above; Pulse and Shimmer\n   play ONCE when the link appears, then settle into the ring (no loops) */\n@keyframes lus-pulse{ 0%{ box-shadow:0 0 0 1px color-mix(in srgb, var(--lead-fg) 55%, transparent); } 60%{ box-shadow:0 0 0 7px color-mix(in srgb, var(--lead-fg) 0%, transparent); } 100%{ box-shadow:0 0 0 2px color-mix(in srgb, var(--lead-fg) 32%, transparent); } }\n.lus.hl-fx-pulse .item .body .lead-hl.linked:not(:hover),\n.lus.hl-fx-pulse .item .chip.linked:not(:hover) .av img,\n.lus.hl-fx-pulse .item .chip.linked:not(:hover) .av .ini,\n.lus.hl-fx-pulse .item .follow-co.linked:not(:hover){ animation:lus-pulse .55s ease-out; }\n@keyframes lus-shimmer{ 0%{ background-position:160% 0, 0 0; } 100%{ background-position:-60% 0, 0 0; } }\n.lus.hl-fx-shimmer .item .body .lead-hl.linked:not(:hover){ background-image:linear-gradient(105deg, transparent 42%, rgba(255,255,255,.55) 50%, transparent 58%), linear-gradient(90deg,var(--hl-from),var(--hl-to)); background-size:250% 100%, 100% 100%; background-repeat:no-repeat; background-position:-60% 0, 0 0; animation:lus-shimmer .7s ease-out; }\n@keyframes lus-flash{ 0%{ filter:brightness(1); } 35%{ filter:brightness(1.35); } 100%{ filter:brightness(1); } }\n.lus.hl-fx-shimmer .item .chip.linked:not(:hover) .av img,\n.lus.hl-fx-shimmer .item .chip.linked:not(:hover) .av .ini{ animation:lus-flash .7s ease-out; }\n.lus.hl-fx-shimmer .item .follow-co.linked:not(:hover){ background-image:linear-gradient(105deg, transparent 42%, rgba(255,255,255,.45) 50%, transparent 58%); background-size:250% 100%; background-repeat:no-repeat; background-position:-60% 0; animation:lus-shimmer .7s ease-out; }\n/* quiet repeat mentions (Smart scope): no chip, just a confident underline so\n   four \"Korsgaard\"s in one card don't turn into confetti */\n.lus .item .body a.lead-hl.quiet{ background:none; padding:0; margin:0; border-radius:0; color:var(--lead-fg); text-decoration:underline; text-decoration-thickness:1.5px; text-underline-offset:2.5px; text-decoration-color:color-mix(in srgb, var(--lead-fg) 40%, transparent); }\n.lus .item .body a.lead-hl.quiet:hover{ text-decoration-color:var(--lead-fg); filter:none; }\n\n.lus .item .read{ display:inline-flex; align-items:center; gap:8px; font-size:13px; font-weight:600; color:var(--read); cursor:pointer; text-decoration:none; }\n.lus .item .read .arr{ transition:transform .2s; }\n.lus .item .read:hover .arr{ transform:translateX(4px); }\n\n/* expanded card — leaders to follow + company follow */\n.lus .item .follow-block{ margin-top:18px; }\n.lus .item .follow-label{ font-size:10px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--lead-sub); margin:0 0 11px; }\n.lus .item .chips{ display:flex; flex-wrap:wrap; gap:14px 16px; }\n.lus .item .chip{ display:inline-flex; align-items:center; gap:9px; text-decoration:none; }\n.lus .item .chip .av{ position:relative; width:32px; height:32px; border-radius:50%; flex:none; }\n.lus .item .chip .av img{ width:100%; height:100%; border-radius:50%; object-fit:cover; display:block; box-shadow:0 0 0 1px rgba(0,0,0,.08); transition:box-shadow .18s ease; }\n.lus .item .chip .add{ position:absolute; right:-3px; bottom:-3px; width:16px; height:16px; border-radius:50%; background:var(--lead-fg); color:var(--lead-bg); display:flex; align-items:center; justify-content:center; font-size:12px; font-weight:700; line-height:1; border:2px solid var(--lead-bg); transition:transform .15s ease; }\n.lus .item .chip:hover .add{ transform:scale(1.14); }\n.lus .item .chip .nm{ font-size:13px; font-weight:600; color:var(--lead-fg); white-space:nowrap; }\n.lus .item .chip:hover .nm{ text-decoration:underline; text-decoration-thickness:1.5px; text-underline-offset:2px; }\n\n/* soft tonal pill — a low-opacity tint of the brand foreground: present and\n   friendly, with no hard fill competing with the read-full CTA. Flush-left so\n   its box aligns with the leaders label + chips above it. */\n.lus .item .follow-co{ display:inline-flex; align-items:center; gap:8px; padding:10px 16px; border:0; background:color-mix(in srgb, var(--lead-fg) 12%, transparent); color:var(--lead-fg); font-size:15px; font-weight:600; line-height:1; text-decoration:none; cursor:pointer; transition:background .16s ease; }\n.lus .item .follow-co:hover{ background:color-mix(in srgb, var(--lead-fg) 18%, transparent); }\n.lus .item .follow-co .pl{ font-size:16px; line-height:1; font-weight:600; }\n/* separator between the leaders cluster and the company-follow pill */\n.lus .item .follow-sep{ display:block; height:1px; background:var(--lead-fg); opacity:.12; margin:16px 0; }\n\n/* footer: read-full is its own closing CTA, detached by a hairline and pushed\n   to the opposite edge from the follow pill so the two never blend */\n.lus .item .card-foot{ display:flex; flex-direction:column; margin-top:18px; }\n.lus .item .sep{ height:1px; background:var(--lead-fg); opacity:.14; margin-bottom:16px; }\n.lus .item .card-foot .read{ align-self:flex-end; }\n\n/* \"more signals\" footer — reads last7DaysCount from the feed. Count chip\n   leads, action line over a muted context line, arrow nudges on hover. */\n.lus .more{ padding:0 var(--inset) var(--inset); }\n.lus .more a{ display:flex; align-items:center; gap:12px; width:100%; padding:13px 16px; text-decoration:none; background:var(--more-bg); color:var(--more-fg); transition:background .18s ease; }\n.lus .more a:hover{ background:var(--more-bg-h); }\n.lus .more .n{ display:inline-flex; align-items:center; justify-content:center; min-width:26px; height:22px; padding:0 7px; border-radius:6px; background:var(--more-n-bg); color:var(--more-n-fg); font-size:12.5px; font-weight:700; font-variant-numeric:tabular-nums; flex:none; }\n.lus .more .t{ display:flex; flex-direction:column; gap:1px; }\n.lus .more .t .act{ font-size:13.5px; font-weight:600; line-height:1.3; }\n.lus .more .t .sub{ font-size:11.5px; font-weight:500; line-height:1.3; opacity:.62; }\n.lus .more .arr{ margin-left:auto; flex:none; font-size:15px; transition:transform .2s ease; }\n.lus .more a:hover .arr{ transform:translateX(4px); }\n.lus .cta{ padding:0 var(--inset) var(--inset); }\n.lus .cta a{ display:block; text-align:center; text-decoration:none; width:100%; font-family:var(--sans); font-size:15px; font-weight:600; background:#fff; border:1.5px solid #15140f; padding:14px; color:#15140f; cursor:pointer; transition:.16s; }\n.lus .cta a:hover{ background:#15140f; color:#fff; }\n\n/* empty / error state */\n.lus .empty{ padding:26px 18px 34px; text-align:center; color:#8a8a82; font-size:13.5px; line-height:1.5; }\n\n/* skeleton */\n.lus .sk{ background:#e9e8e2; border-radius:6px; animation:lus-sk 1.5s ease-in-out infinite; }\n@keyframes lus-sk{ 0%,100%{opacity:1} 50%{opacity:.45} }\n\n/* keyboard focus — visible on light rows and the coloured open card */\n.lus .header:focus-visible,.lus a.title-link:focus-visible,.lus .item .read:focus-visible,.lus .item .chip:focus-visible,.lus .item .follow-co:focus-visible,.lus .item .body a.lead-hl:focus-visible,.lus .cta a:focus-visible{ outline:2px solid var(--tick); outline-offset:2px; border-radius:8px; }\n\n/* honour the OS \"reduce motion\" setting */\n@media (prefers-reduced-motion: reduce){\n  .lus *,.lus *::before,.lus *::after{ animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; }\n}\n`;//\n// Date / display helpers\n//\nfunction parseDate(dateString){if(!dateString)return null;const t=new Date(dateString).getTime();return Number.isNaN(t)?null:t;}// Drives the highlighted badge: true when the item was published today\n// (local date), regardless of time of day.\nfunction isToday(dateString){const t=parseDate(dateString);if(t===null)return false;const date=new Date(t);const now=new Date;return date.getDate()===now.getDate()&&date.getMonth()===now.getMonth()&&date.getFullYear()===now.getFullYear();}// Human relative time (\"just now\", \"12 min ago\", \"3h ago\"), falling back to an\n// absolute date once an item is a week or more old.\nfunction relativeTime(dateString){const t=parseDate(dateString);if(t===null)return\"\";const mins=Math.round((Date.now()-t)/6e4);if(mins<1)return\"just now\";if(mins<60)return`${mins} min ago`;const hrs=Math.round(mins/60);if(hrs<24)return`${hrs}h ago`;const days=Math.round(hrs/24);if(days<7)return`${days}d ago`;return new Date(t).toLocaleDateString(\"en-US\",{month:\"short\",day:\"numeric\"});}function initials(name){if(!name)return\"•\";const parts=name.trim().split(/\\s+/);if(parts.length===1)return parts[0].slice(0,2).toUpperCase();return(parts[0][0]+parts[1][0]).toUpperCase();}function isWordChar(ch){return!!ch&&RegExp(\"[\\\\p{L}\\\\p{N}]\",\"u\").test(ch);}// Legal-form words: stripped from registered names to derive the base token,\n// and absorbed into a match when they directly follow it in the text.\n// Case-sensitive on purpose — lowercase \"as\"/\"ab\" are ordinary words.\nconst COMPANY_SUFFIXES=new Set([\"Oyj\",\"OYJ\",\"Oy\",\"OY\",\"Plc\",\"PLC\",\"plc\",\"Abp\",\"ABP\",\"AB\",\"Ab\",\"ASA\",\"A/S\",\"AS\",\"Inc\",\"Inc.\",\"Ltd\",\"Ltd.\",\"Corp\",\"Corp.\",\"Corporation\",\"LLC\",\"GmbH\",\"SA\",\"SE\",\"NV\"]);function stripCompanySuffix(name){const parts=name.trim().split(/\\s+/);while(parts.length>1&&COMPANY_SUFFIXES.has(parts[parts.length-1]))parts.pop();return parts.join(\" \");}// Date matching — \"August 17, 2026\", \"May 2025\", \"January–June 2026\",\n// \"17 August 2026\". Bare years (\"since 2024\") are deliberately not matched\n// to avoid highlighting every four-digit number.\nconst MONTHS=\"(?:January|February|March|April|May|June|July|August|September|October|November|December)\";const DATE_RE=new RegExp(\"\\\\b(?:\"+MONTHS+\"(?:\\\\s*[–—-]\\\\s*\"+MONTHS+\")?\"+\"(?:\\\\s+\\\\d{1,2}(?:st|nd|rd|th)?)?\"+\",?\\\\s+\\\\d{4}\"+\"|\\\\d{1,2}(?:st|nd|rd|th)?\\\\s+\"+MONTHS+\",?\\\\s+\\\\d{4}\"+// month period without a year: \"April-June\"\n\"|\"+MONTHS+\"\\\\s*[–—-]\\\\s*\"+MONTHS+\")\\\\b\",\"g\");// Metric matching — money amounts with a currency marker (\"EUR 71.3 million\",\n// \"EUR 115,000\", \"€2.3bn\") and percentages (\"21.1%\", \"-2.4%\"). Plain numbers\n// without a currency or % are deliberately not matched.\nconst MONEY_RE=/(?:EUR|USD|GBP|SEK|NOK|DKK|CHF|€|\\$|£)\\s?-?\\d+(?:[ ,]\\d{3})*(?:\\.\\d+)?(?:\\s?(?:million|billion|thousand|mn|bn|m|k))?\\b/gi;const PERCENT_RE=/-?\\d+(?:[ ,]\\d{3})*(?:\\.\\d+)?\\s?%/g;// Trend heuristic: an explicit minus wins; otherwise the nearest directional\n// cue *before* the number within the same sentence decides. Deliberately\n// simple — \"plain\" metrics mode skips it entirely.\nconst POS_CUES=/\\b(grew|grow(?:s|th|ing)?|increase[sd]?|increasing|rose|rise(?:s|n)?|up|improv\\w*|gain(?:ed|s)?|strengthen(?:ed|ing)?|higher|doubled|tripled|exceed(?:ed|ing)?|positive)\\b/gi;const NEG_CUES=/\\b(fell|fall(?:s|en|ing)?|decline[sd]?|declining|decrease[sd]?|decreasing|drop(?:ped|ping|s)?|down|negative|weaken(?:ed|ing)?|lower(?:ed|ing)?|loss|losses|below|worse|worsen(?:ed|ing)?)\\b/gi;// Keyword list parsing — one term per line or comma-separated. Order in the\n// list IS the match priority.\nfunction parseKeywords(list){return(list||\"\").split(/[\\n,]/).map(t=>t.trim()).filter(Boolean);}// Values introduced as a comparison baseline (\"… to EUR 6.0 million from\n// EUR 7.5 million\", \"up from 2.6%\", \"compared to EUR 21.4 million\") describe\n// the prior period, not the change — they carry no direction of their own.\nfunction isBaseline(text,start){const before=text.slice(Math.max(0,start-40),start).trimEnd();if(/(^|[\\s(])from$/i.test(before))return true;// \"from a loss of EUR 0.5M\", \"from the level of …\"\nif(RegExp(\"(^|[\\\\s(])from(?:\\\\s+[\\\\p{L}]+){1,3}\\\\s+of$\",\"iu\").test(before))return true;if(/compared\\s+(to|with)$/i.test(before))return true;if(/(^|[\\s(])(versus|vs\\.?|against)$/i.test(before))return true;// chained apposition of a baseline: \"from EUR 1.6 million or 7.3%\"\nif(/(^|[\\s(])or$/i.test(before)&&/\\bfrom\\b/i.test(before))return true;return false;}function detectTrend(text,start,matched){if(/-\\s?\\d/.test(matched))return\"down\";if(isBaseline(text,start))return\"flat\";let ctx=text.slice(Math.max(0,start-90),start);const cut=Math.max(ctx.lastIndexOf(\". \"),ctx.lastIndexOf(\"; \"),ctx.lastIndexOf(\"\\n\"));if(cut>=0)ctx=ctx.slice(cut+1);// \"a loss of X\" / \"a gain of X\" describe the value's sign, not a change\n// of direction — drop them so they can't masquerade as cues\nctx=ctx.replace(/\\b(?:(?:a|an|the)\\s+)?(?:loss|profit|gain|deficit)\\s+of\\b/gi,\" \");let posIdx=-1;let negIdx=-1;let m;POS_CUES.lastIndex=0;while((m=POS_CUES.exec(ctx))!==null)posIdx=m.index;NEG_CUES.lastIndex=0;while((m=NEG_CUES.exec(ctx))!==null)negIdx=m.index;if(posIdx<0&&negIdx<0)return\"flat\";return posIdx>negIdx?\"up\":\"down\";}function buildHighlightTokens(leaders,companies){const tokens=[];// people: full name + unambiguous surname\nconst surnameCount=new Map;for(const p of leaders){const parts=(p?.fullName||\"\").trim().split(/\\s+/);if(parts.length>1){const last=parts[parts.length-1];if(last.length>=3)surnameCount.set(last,(surnameCount.get(last)||0)+1);}}for(const p of leaders){const name=(p?.fullName||\"\").trim();if(!name||!p?.profileLink&&!p?.profileFollowLink)continue;tokens.push({token:name,entity:p,kind:\"person\"});const parts=name.split(/\\s+/);if(parts.length>1){const last=parts[parts.length-1];if(last.length>=3&&surnameCount.get(last)===1)tokens.push({token:last,entity:p,kind:\"person\"});}}// companies: registered name + suffix-stripped base + unambiguous,\n// distinctive first word (\"Nordea\" for \"Nordea Bank Abp\")\nconst firstWordCount=new Map;for(const c of companies){const first=stripCompanySuffix(c?.fullName||\"\").split(/\\s+/)[0];if(first&&first.length>=4)firstWordCount.set(first,(firstWordCount.get(first)||0)+1);}for(const c of companies){const name=(c?.fullName||\"\").trim();if(!name||!c?.profileLink&&!c?.profileFollowLink)continue;const pushed=new Set;const push=t=>{if(t&&!pushed.has(t)){pushed.add(t);tokens.push({token:t,entity:c,kind:\"company\"});}};push(name);const base=stripCompanySuffix(name);push(base);const first=base.split(/\\s+/)[0];if(first.length>=4&&firstWordCount.get(first)===1)push(first);}// longest first so full names win over surnames and first words\ntokens.sort((a,b)=>b.token.length-a.token.length);return tokens;}function segmentSummary(text,leaders,companies,dates,metrics,keywords,scope){if(!text||!leaders?.length&&!companies?.length&&!dates&&metrics===\"off\"&&!keywords.length)return[text||\"\"];const tokens=buildHighlightTokens(leaders||[],companies||[]);if(!tokens.length&&!dates&&metrics===\"off\"&&!keywords.length)return[text];const taken=new Array(text.length).fill(false);const matches=[];for(const{token,entity,kind}of tokens){let i=0;while((i=text.indexOf(token,i))!==-1){let end=i+token.length;// company matches absorb a directly-following legal-form word,\n// so \"Mandatum plc\" chips as one even though the feed name is\n// \"Mandatum Oyj\"\nif(kind===\"company\"&&text[end]===\" \"){let j=end+1;let w=\"\";while(j<text.length&&/[A-Za-z./]/.test(text[j])){w+=text[j];j++;}if(COMPANY_SUFFIXES.has(w)&&!isWordChar(text[j]))end=j;}// absorb a trailing possessive so \"Korsgaard's\" is one chip\nif((text[end]===\"'\"||text[end]===\"’\")&&(text[end+1]===\"s\"||text[end+1]===\"S\")&&!isWordChar(text[end+2]))end+=2;const boundaryOk=!isWordChar(text[i-1])&&!isWordChar(text[end]);let overlaps=false;for(let k=i;k<end;k++){if(taken[k]){overlaps=true;break;}}if(boundaryOk&&!overlaps){matches.push({start:i,end,entity,kind});for(let k=i;k<end;k++)taken[k]=true;}i=end;}}// dates scan after entities so an entity match always wins the span\nif(dates){DATE_RE.lastIndex=0;let dm;while((dm=DATE_RE.exec(text))!==null){const s=dm.index;const e=s+dm[0].length;let overlaps=false;for(let k=s;k<e;k++){if(taken[k]){overlaps=true;break;}}if(!overlaps){matches.push({start:s,end:e,entity:null,kind:\"date\"});for(let k=s;k<e;k++)taken[k]=true;}}}// metrics scan last — entity and date matches always win the span\nif(metrics!==\"off\"){for(const re of[MONEY_RE,PERCENT_RE]){re.lastIndex=0;let mm;while((mm=re.exec(text))!==null){const s=mm.index;const e=s+mm[0].length;let overlaps=false;for(let k=s;k<e;k++){if(taken[k]){overlaps=true;break;}}if(!overlaps){matches.push({start:s,end:e,entity:null,kind:\"metric\",trend:metrics===\"trend\"?detectTrend(text,s,mm[0]):\"flat\"});for(let k=s;k<e;k++)taken[k]=true;}}}}// keywords scan last (lowest priority overall); within the list, order\n// is priority — earlier terms claim their spans first via the taken map\nif(keywords.length){const lower=text.toLowerCase();for(const kw of keywords){const kwLower=kw.toLowerCase();let i=0;while((i=lower.indexOf(kwLower,i))!==-1){const e=i+kw.length;const boundaryOk=!isWordChar(text[i-1])&&!isWordChar(text[e]);let overlaps=false;for(let k=i;k<e;k++){if(taken[k]){overlaps=true;break;}}if(boundaryOk&&!overlaps){matches.push({start:i,end:e,entity:null,kind:\"keyword\"});for(let k=i;k<e;k++)taken[k]=true;}i=e;}}}matches.sort((a,b)=>a.start-b.start);const seen=new Set;const kept=[];for(const m of matches){if(m.kind===\"date\"||m.kind===\"metric\"||m.kind===\"keyword\"){// informational chips: every occurrence is highlighted — a date\n// or figure is useful wherever it appears. Scope and dedup only\n// apply to people and companies.\nkept.push({...m,quiet:false});continue;}const key=`${m.kind}:${m.entity.id||m.entity.fullName}`;const first=!seen.has(key);if(first)seen.add(key);if(scope===\"all\")kept.push({...m,quiet:false});else if(scope===\"first\"){if(first)kept.push({...m,quiet:false});}else kept.push({...m,quiet:!first})// smart\n;}const segs=[];let pos=0;for(const m of kept){if(m.start>pos)segs.push(text.slice(pos,m.start));const next=text[m.end]||\"\";segs.push({text:text.slice(m.start,m.end),entity:m.entity,kind:m.kind,quiet:m.quiet,trend:m.trend,// chips followed directly by punctuation get pulled tight so the\n// padding doesn't read as a space before the comma\ntightRight:!m.quiet&&m.kind!==\"keyword\"&&/[,.;:!?)'\\u2019\\u201d\"]/.test(next)});pos=m.end;}if(pos<text.length)segs.push(text.slice(pos));return segs;}//\n// One feed row — collapses to a row, expands to the colour card.\n//\nfunction FeedItem({item,open,baseUrl,readFullText,bodyLines,preserveLineBreaks,bodyMaxCh,freshLabel,timeDisplay,showFollow,followLabel,followVerb,highlightLeaders,highlightCompanies,highlightDates,highlightMetrics,highlightTitleMetrics,keywords,linkedHover,highlightScope,highlightLeaderAvatars,highlightCompanyAvatars,onToggle,onReadFull,onFollowCompany,onFollowLeader}){const company=item.relatedCompanies?.[0];const tickerName=company?.ticker||company?.fullName||item.ticker||\"\";const avatar=company?.avatarUrl;const fresh=isToday(item.publishedAt);const when=relativeTime(item.publishedAt);const signalLink=`https://${baseUrl}/app/companies/signals?ids=[\"${item.id}\"]`;const leaders=item.relatedPersonnel??EMPTY_LIST;const personFallback=`https://${baseUrl}/statics/img/person-no-avatar.png`;const hasFollow=showFollow&&(leaders.length>0||!!company);// Linked hover: hovering an in-text mention cross-highlights the matching\n// follow chip below, and vice versa (also on keyboard focus).\nconst[hoverEid,setHoverEid]=useState(null);const eid=e=>e?.id||e?.fullName;// In-text mentions open the profile; follow chips and the company pill\n// use the follow deep link, falling back to profileLink for older feeds.\nconst entityLink=e=>e?.profileLink||e?.profileFollowLink;const followLink=e=>e?.profileFollowLink||e?.profileLink;const linkedCls=e=>linkedHover&&hoverEid!=null&&hoverEid===eid(e)?\" linked\":\"\";const linkHandlers=e=>linkedHover?{onMouseEnter:()=>setHoverEid(eid(e)),onMouseLeave:()=>setHoverEid(null),onFocus:()=>setHoverEid(eid(e)),onBlur:()=>setHoverEid(null)}:{};// Body segments: plain text interleaved with linked highlight chips for\n// leaders, related companies, dates and financial metrics.\nconst segments=useMemo(()=>{return highlightLeaders||highlightCompanies||highlightDates||highlightMetrics!==\"off\"||keywords.length>0?segmentSummary(item.summary||\"\",highlightLeaders?leaders:[],highlightCompanies?item.relatedCompanies??EMPTY_LIST:[],highlightDates,highlightMetrics,keywords,highlightScope):[item.summary||\"\"];},[item.summary,item.relatedCompanies,leaders,highlightLeaders,highlightCompanies,highlightDates,highlightMetrics,keywords,highlightScope]);// Headline metrics (optional): money & percentages only — entities,\n// dates and keywords stay out of the title. Uses the Metric Highlights\n// style, falling back to neutral chips when that is Off.\nconst titleSegments=useMemo(()=>{return highlightTitleMetrics?segmentSummary(item.title||\"\",[],[],false,highlightMetrics===\"off\"?\"plain\":highlightMetrics,[],highlightScope):[item.title||\"\"];},[item.title,highlightTitleMetrics,highlightMetrics,highlightScope]);const titleNodes=titleSegments.map((seg,i)=>typeof seg===\"string\"?/*#__PURE__*/_jsx(\"span\",{children:seg},i):/*#__PURE__*/_jsxs(\"span\",{className:`lead-hl metric${seg.trend===\"up\"?\" up\":seg.trend===\"down\"?\" down\":\"\"}${seg.tightRight?\" tight-r\":\"\"}`,children:[seg.trend===\"up\"&&/*#__PURE__*/_jsx(\"svg\",{className:\"tr\",viewBox:\"0 0 10 10\",fill:\"currentColor\",\"aria-hidden\":\"true\",children:/*#__PURE__*/_jsx(\"path\",{d:\"M5 1.5l4.2 7H0.8z\"})}),seg.trend===\"down\"&&/*#__PURE__*/_jsx(\"svg\",{className:\"tr\",viewBox:\"0 0 10 10\",fill:\"currentColor\",\"aria-hidden\":\"true\",children:/*#__PURE__*/_jsx(\"path\",{d:\"M5 8.5L0.8 1.5h8.4z\"})}),seg.text]},i));// The header is the row's hit target (a div with button semantics so the\n// open card's title can be a real <a> — anchors can't nest in a <button>).\n// Clicking toggles: opening a collapsed row, or collapsing the open one so\n// the feed can reach a fully-collapsed state.\nconst handleKey=e=>{if(e.key===\"Enter\"||e.key===\" \"){e.preventDefault();onToggle();}};return /*#__PURE__*/_jsxs(\"div\",{className:`item${open?\" open\":\"\"}`,children:[/*#__PURE__*/_jsx(\"div\",{className:\"device\"}),/*#__PURE__*/_jsxs(\"div\",{className:\"header\",role:\"button\",\"aria-expanded\":open,tabIndex:0,onClick:onToggle,onKeyDown:handleKey,children:[/*#__PURE__*/_jsx(\"div\",{className:\"logo\",children:avatar?/*#__PURE__*/_jsx(\"img\",{src:avatar,alt:tickerName}):initials(tickerName)}),/*#__PURE__*/_jsxs(\"div\",{className:\"txt\",children:[/*#__PURE__*/_jsxs(\"div\",{className:\"meta\",children:[timeDisplay!==\"relative\"&&fresh&&/*#__PURE__*/_jsxs(\"span\",{className:\"today\",children:[/*#__PURE__*/_jsx(\"span\",{className:\"pip\",\"aria-hidden\":\"true\"}),freshLabel]}),tickerName&&/*#__PURE__*/_jsx(\"span\",{className:\"tk\",children:tickerName}),timeDisplay!==\"badge\"&&when&&/*#__PURE__*/_jsx(\"span\",{className:\"tm\",children:when})]}),open?/*#__PURE__*/_jsx(\"a\",{className:\"title title-link\",href:signalLink,target:\"_blank\",rel:\"noreferrer\",onClick:e=>{e.stopPropagation()// navigate, don't collapse\n;onReadFull();},children:titleNodes}):/*#__PURE__*/_jsx(\"h3\",{className:\"title\",children:titleNodes})]}),/*#__PURE__*/_jsx(\"div\",{className:\"chev\",\"aria-hidden\":\"true\",children:open?/*#__PURE__*/_jsx(\"svg\",{width:\"16\",height:\"16\",viewBox:\"0 0 24 24\",fill:\"none\",stroke:\"currentColor\",strokeWidth:\"2.5\",strokeLinecap:\"round\",strokeLinejoin:\"round\",children:/*#__PURE__*/_jsx(\"path\",{d:\"M18 15l-6-6-6 6\"})}):\"→\"})]}),/*#__PURE__*/_jsx(\"div\",{className:\"reveal\",\"aria-hidden\":!open,children:/*#__PURE__*/_jsx(\"div\",{className:\"reveal-inner\",children:/*#__PURE__*/_jsxs(\"div\",{className:\"reveal-pad\",children:[/*#__PURE__*/_jsx(\"p\",{className:\"body\",style:{WebkitLineClamp:bodyLines,whiteSpace:preserveLineBreaks?\"pre-line\":\"normal\",maxWidth:`${bodyMaxCh}ch`},children:segments.map((seg,i)=>typeof seg===\"string\"?/*#__PURE__*/_jsx(\"span\",{children:seg},i):seg.kind===\"keyword\"?/*#__PURE__*/_jsx(\"span\",{className:\"lead-hl kw\",children:seg.text},i):seg.kind===\"metric\"?/*#__PURE__*/_jsxs(\"span\",{className:`lead-hl metric${seg.trend===\"up\"?\" up\":seg.trend===\"down\"?\" down\":\"\"}${seg.tightRight?\" tight-r\":\"\"}`,children:[seg.trend===\"up\"&&/*#__PURE__*/_jsx(\"svg\",{className:\"tr\",viewBox:\"0 0 10 10\",fill:\"currentColor\",\"aria-hidden\":\"true\",children:/*#__PURE__*/_jsx(\"path\",{d:\"M5 1.5l4.2 7H0.8z\"})}),seg.trend===\"down\"&&/*#__PURE__*/_jsx(\"svg\",{className:\"tr\",viewBox:\"0 0 10 10\",fill:\"currentColor\",\"aria-hidden\":\"true\",children:/*#__PURE__*/_jsx(\"path\",{d:\"M5 8.5L0.8 1.5h8.4z\"})}),seg.text]},i):seg.kind===\"date\"?/*#__PURE__*/_jsxs(\"span\",{className:`lead-hl date${seg.tightRight?\" tight-r\":\"\"}`,children:[/*#__PURE__*/_jsxs(\"svg\",{className:\"cal\",viewBox:\"0 0 24 24\",fill:\"none\",stroke:\"currentColor\",strokeWidth:\"2\",strokeLinecap:\"round\",strokeLinejoin:\"round\",\"aria-hidden\":\"true\",children:[/*#__PURE__*/_jsx(\"rect\",{x:\"3\",y:\"4\",width:\"18\",height:\"18\",rx:\"2\"}),/*#__PURE__*/_jsx(\"line\",{x1:\"16\",y1:\"2\",x2:\"16\",y2:\"6\"}),/*#__PURE__*/_jsx(\"line\",{x1:\"8\",y1:\"2\",x2:\"8\",y2:\"6\"}),/*#__PURE__*/_jsx(\"line\",{x1:\"3\",y1:\"10\",x2:\"21\",y2:\"10\"})]}),seg.text]},i):/*#__PURE__*/_jsxs(\"a\",{className:`lead-hl${seg.quiet?\" quiet\":\"\"}${seg.tightRight?\" tight-r\":\"\"}${linkedCls(seg.entity)}`,...linkHandlers(seg.entity),href:entityLink(seg.entity),target:\"_blank\",rel:\"noreferrer\",tabIndex:open?0:-1,title:\"Follow to get timely updates\",onClick:seg.kind===\"company\"?onFollowCompany:onFollowLeader,children:[!seg.quiet&&(seg.kind===\"company\"?highlightCompanyAvatars:highlightLeaderAvatars)&&/*#__PURE__*/_jsx(\"span\",{className:`mini${seg.kind===\"company\"?\" co\":\"\"}`,\"aria-hidden\":\"true\",children:seg.entity.avatarUrl?/*#__PURE__*/_jsx(\"img\",{src:seg.entity.avatarUrl,alt:\"\"}):initials(seg.entity.fullName)}),seg.text]},i))}),hasFollow&&/*#__PURE__*/_jsxs(\"div\",{className:\"follow-block\",children:[leaders.length>0&&/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"div\",{className:\"follow-label\",children:followLabel}),/*#__PURE__*/_jsx(\"div\",{className:\"chips\",children:leaders.map(p=>/*#__PURE__*/_jsxs(\"a\",{className:`chip${linkedCls(p)}`,...linkHandlers(p),href:followLink(p),target:\"_blank\",rel:\"noreferrer\",tabIndex:open?0:-1,title:\"Follow to get timely updates\",onClick:onFollowLeader,children:[/*#__PURE__*/_jsxs(\"span\",{className:\"av\",children:[/*#__PURE__*/_jsx(\"img\",{src:p.avatarUrl||personFallback,alt:p.fullName}),/*#__PURE__*/_jsx(\"span\",{className:\"add\",\"aria-hidden\":\"true\",children:\"+\"})]}),/*#__PURE__*/_jsx(\"span\",{className:\"nm\",children:p.fullName})]},p.id))})]}),leaders.length>0&&company&&/*#__PURE__*/_jsx(\"span\",{className:\"follow-sep\",\"aria-hidden\":\"true\"}),company&&/*#__PURE__*/_jsxs(\"a\",{className:`follow-co${linkedCls(company)}`,...linkHandlers(company),href:followLink(company),target:\"_blank\",rel:\"noreferrer\",tabIndex:open?0:-1,title:\"Follow to get timely updates\",onClick:onFollowCompany,children:[followVerb,\" \",company.fullName,/*#__PURE__*/_jsx(\"span\",{className:\"pl\",\"aria-hidden\":\"true\",children:\"+\"})]})]}),/*#__PURE__*/_jsxs(\"div\",{className:\"card-foot\",children:[hasFollow&&/*#__PURE__*/_jsx(\"span\",{className:\"sep\",\"aria-hidden\":\"true\"}),/*#__PURE__*/_jsxs(\"a\",{className:\"read\",href:signalLink,target:\"_blank\",rel:\"noreferrer\",tabIndex:open?0:-1,onClick:onReadFull,children:[readFullText,\" \",/*#__PURE__*/_jsx(\"span\",{className:\"arr\",\"aria-hidden\":\"true\",children:\"→\"})]})]})]})})})]});}//\n// Loading placeholder — mirrors the collapsed row geometry.\n//\nfunction LoadingSkeleton(){return /*#__PURE__*/_jsx(_Fragment,{children:[0,1,2].map(i=>/*#__PURE__*/_jsxs(\"div\",{style:{display:\"grid\",gridTemplateColumns:\"44px 1fr\",gap:12,padding:\"16px 16px\",alignItems:\"start\"},children:[/*#__PURE__*/_jsx(\"div\",{className:\"sk\",style:{width:44,height:44,borderRadius:10}}),/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",flexDirection:\"column\",gap:8},children:[/*#__PURE__*/_jsx(\"div\",{className:\"sk\",style:{width:90,height:10}}),/*#__PURE__*/_jsx(\"div\",{className:\"sk\",style:{width:\"100%\",height:14}}),/*#__PURE__*/_jsx(\"div\",{className:\"sk\",style:{width:\"75%\",height:14}})]})]},i))});}export default function LatestUpdatesLeadStack(props){const track=useTracking();const{mode,theme,limit,padding,cardInset,defaultExpanded,showHeadline,headlineText,headlineFont,headlineSize,headlineWeight,showLive,liveText,readFullText,bodyLines,preserveLineBreaks,bodyMaxCh,timeDisplay,freshLabel,showFollow,followLabel,followVerb,highlightLeaders,highlightCompanies,highlightDates,highlightMetrics,highlightTitleMetrics,highlightKeywords,keywordList,highlightScope,highlightLeaderAvatars,highlightCompanyAvatars,highlightNowrap,highlightChipBg,linkedHover,linkedEffect,highlightCustom,highlightFrom,highlightTo,highlightText,showMore,moreText,moreSubText,moreFont,moreFontSize,moreUseTheme,moreBg,moreBgHover,moreTextColor,moreCountBg,moreCountColor,moreLink,moreNewTab,emptyText,showCta,ctaText,ctaLink,ctaNewTab}=props;const baseUrl=mode===\"production\"?\"platform.listeds.com\":\"dev.listeds.com\";const bucket=mode===\"production\"?\"listeds_media_data\":\"listeds_website_data\";const[data,setData]=useState(null);const[moreCount,setMoreCount]=useState(null);const[loadError,setLoadError]=useState(false);// undefined = untouched (follow the defaultExpanded config); a string = that\n// item is open; null = the user explicitly collapsed everything.\nconst[openId,setOpenId]=useState(undefined);useEffect(()=>{ensureQuickSignalsFontsLoaded();},[]);useEffect(()=>{let active=true;const feedUrl=`https://storage.googleapis.com/${bucket}/quick-signals-feed-v2.json`;const cached=quickSignalsCache.get(feedUrl);const now=Date.now();if(!cached){startTransition(()=>{setData(null);setMoreCount(null);setLoadError(false);});}else{startTransition(()=>{setData(cached.data.items);setMoreCount(cached.data.moreCount);setLoadError(false);});}const isFresh=!!cached&&now-cached.fetchedAt<FEED_CACHE_TTL_MS;if(isFresh)return;fetchQuickSignals(feedUrl).then(payload=>{if(!active)return;startTransition(()=>{setData(payload.items);setMoreCount(payload.moreCount);setLoadError(false);});}).catch(()=>{if(!active)return;startTransition(()=>{if(!cached){setData([]);setMoreCount(null);}setLoadError(true);});});return()=>{active=false;};},[bucket]);const items=(data||[]).slice(0,limit);// Active item is fully derived from openId — no syncing effect needed:\n// - untouched (undefined): follow the config — first item, or none.\n// - a string: that item, unless it's no longer in the feed (clamp to none).\n// - null: the user collapsed everything.\nconst initialId=defaultExpanded===\"none\"?null:items[0]?.id??null;const activeId=openId===undefined?initialId:items.some(i=>i.id===openId)?openId:null;const themeVars=THEMES[theme]||THEMES.pink;// Keyword terms, parsed once per render; empty when the toggle is off.\nconst keywords=useMemo(()=>highlightKeywords?parseKeywords(keywordList):[],[highlightKeywords,keywordList]);// Custom leader-highlight gradient overrides the theme's --hl-* defaults.\nconst highlightVars=highlightCustom?{\"--hl-from\":highlightFrom,\"--hl-to\":highlightTo,\"--hl-fg\":highlightText}:null;// Footer tile colours: theme-derived by default, prop-driven on Custom.\nconst moreVars=moreUseTheme?{}:{\"--more-bg\":moreBg,\"--more-bg-h\":moreBgHover,\"--more-fg\":moreTextColor,\"--more-n-bg\":moreCountBg,\"--more-n-fg\":moreCountColor};// Strip any trailing arrow the editor may have left in the prop value (the\n// component renders its own animated arrow) so we never show two.\nconst readFullClean=(readFullText||\"\").replace(/[\\s→·>]+$/,\"\").trim();// Toggle: open a collapsed row (closing whichever was open), or collapse the\n// open one so the feed can sit fully collapsed.\nconst toggle=id=>{const willOpen=id!==activeId;setOpenId(willOpen?id:null);if(willOpen)track(TRACK.expand);};return /*#__PURE__*/_jsxs(\"div\",{className:`lus${highlightNowrap?\" hl-nowrap\":\"\"}${!highlightChipBg?\" hl-nobg\":\"\"}${linkedEffect&&linkedEffect!==\"ring\"?` hl-fx-${linkedEffect}`:\"\"}`,style:{...themeVars,...highlightVars||{},\"--inset\":`${cardInset}px`,...moreVars,padding},children:[/*#__PURE__*/_jsx(\"style\",{dangerouslySetInnerHTML:{__html:STYLE}}),/*#__PURE__*/_jsxs(\"div\",{className:\"feed\",children:[(showHeadline||showLive)&&/*#__PURE__*/_jsxs(\"div\",{className:\"head\",style:{justifyContent:showHeadline?\"space-between\":\"flex-end\"},children:[showHeadline&&/*#__PURE__*/_jsx(\"span\",{className:\"h\",style:{fontFamily:headlineFont?.fontFamily,fontSize:headlineSize,fontWeight:headlineWeight},children:headlineText}),showLive&&/*#__PURE__*/_jsxs(\"span\",{className:\"live\",children:[/*#__PURE__*/_jsx(\"span\",{className:\"dot\",\"aria-hidden\":\"true\"}),liveText]})]}),/*#__PURE__*/_jsx(\"div\",{className:\"list\",children:!data?/*#__PURE__*/_jsx(LoadingSkeleton,{}):items.length===0?/*#__PURE__*/_jsx(\"div\",{className:\"empty\",children:loadError?`${emptyText} (Connection issue while loading latest updates.)`:emptyText}):items.map(item=>/*#__PURE__*/_jsx(FeedItem,{item:item,open:item.id===activeId,baseUrl:baseUrl,readFullText:readFullClean,bodyLines:bodyLines,preserveLineBreaks:preserveLineBreaks,bodyMaxCh:bodyMaxCh,timeDisplay:timeDisplay,freshLabel:freshLabel,showFollow:showFollow,followLabel:followLabel,followVerb:followVerb,highlightLeaders:highlightLeaders,highlightCompanies:highlightCompanies,highlightDates:highlightDates,highlightMetrics:highlightMetrics,highlightTitleMetrics:highlightTitleMetrics,keywords:keywords,linkedHover:linkedHover,highlightScope:highlightScope,highlightLeaderAvatars:highlightLeaderAvatars,highlightCompanyAvatars:highlightCompanyAvatars,onToggle:()=>toggle(item.id),onReadFull:()=>track(TRACK.readFull),onFollowCompany:()=>track(TRACK.companyFollow),onFollowLeader:()=>track(TRACK.leaderFollow)},item.id))}),showMore&&moreCount?/*#__PURE__*/_jsx(\"div\",{className:\"more\",children:/*#__PURE__*/_jsxs(\"a\",{href:moreLink||`https://${baseUrl}/app/companies/signals`,target:moreNewTab?\"_blank\":\"_self\",rel:moreNewTab?\"noreferrer\":undefined,onClick:()=>track(TRACK.more),style:{fontFamily:\"var(--sans)\",fontWeight:600,...moreFont?.fontFamily?{fontFamily:moreFont.fontFamily}:{},...moreFont?.fontWeight?{fontWeight:moreFont.fontWeight}:{}},children:[/*#__PURE__*/_jsx(\"span\",{className:\"n\",children:moreCount}),/*#__PURE__*/_jsxs(\"span\",{className:\"t\",children:[/*#__PURE__*/_jsx(\"span\",{className:\"act\",style:{fontSize:moreFontSize},children:(moreText||\"\").replace(\"{count}\",String(moreCount))}),!!moreSubText&&/*#__PURE__*/_jsx(\"span\",{className:\"sub\",children:moreSubText.replace(\"{count}\",String(moreCount))})]}),/*#__PURE__*/_jsx(\"span\",{className:\"arr\",\"aria-hidden\":\"true\",children:\"→\"})]})}):null,showCta&&ctaText?/*#__PURE__*/_jsx(\"div\",{className:\"cta\",children:/*#__PURE__*/_jsx(\"a\",{href:ctaLink||`https://${baseUrl}/app/companies/signals`,target:ctaNewTab?\"_blank\":\"_self\",rel:ctaNewTab?\"noreferrer\":undefined,onClick:()=>track(TRACK.cta),children:ctaText})}):null]})]});}//\n// PROPERTY CONTROLS\n//\naddPropertyControls(LatestUpdatesLeadStack,{mode:{title:\"Mode\",type:ControlType.Enum,defaultValue:\"production\",options:[\"production\",\"dev\"],optionTitles:[\"Production\",\"Development\"]},theme:{title:\"Theme\",type:ControlType.Enum,defaultValue:\"lgreen\",options:[\"pink\",\"olive\",\"black\",\"lgreen\"],optionTitles:[\"Powder pink + red\",\"Olive + light green\",\"Black + light green\",\"Light green + olive\"]},padding:{title:\"Padding\",type:ControlType.Padding,defaultValue:\"0px\"},cardInset:{title:\"Card Inset\",type:ControlType.Number,defaultValue:2,min:0,max:48,step:1,unit:\"px\",description:\"Gutter between the feed's white edge and the item cards — applied equally on all four sides; the headline and CTA align to it.\"},defaultExpanded:{title:\"On Load\",type:ControlType.Enum,defaultValue:\"first\",options:[\"first\",\"none\"],optionTitles:[\"Expand first item\",\"All collapsed\"],displaySegmentedControl:true},showHeadline:{title:\"Show Headline\",type:ControlType.Boolean,defaultValue:true},headlineText:{title:\"Headline\",type:ControlType.String,defaultValue:\"Latest signals\"},headlineFont:{title:\"Headline Font\",type:ControlType.Font,defaultValue:{fontFamily:\"Lora\"}},headlineSize:{title:\"Headline Size\",type:ControlType.Number,defaultValue:16,min:12,max:40,step:1},headlineWeight:{title:\"Headline Weight\",type:ControlType.Enum,options:[300,400,500,600,700],optionTitles:[\"300\",\"400\",\"500\",\"600\",\"700\"],defaultValue:400},showLive:{title:\"Show Live\",type:ControlType.Boolean,defaultValue:true},liveText:{title:\"Live Text\",type:ControlType.String,defaultValue:\"Live feed\"},readFullText:{title:\"Read Full Text\",type:ControlType.String,defaultValue:\"Read full signal\"},bodyLines:{title:\"Body Lines\",type:ControlType.Number,defaultValue:100,min:1,max:100,step:1,description:\"Lines of body text shown in the expanded card before truncating.\"},preserveLineBreaks:{title:\"Keep Line Breaks\",type:ControlType.Boolean,defaultValue:false,enabledTitle:\"Preserve\",disabledTitle:\"Collapse\",description:\"Preserve line breaks from the original summary text (pre-line).\"},bodyMaxCh:{title:\"Body Width\",type:ControlType.Number,defaultValue:60,min:20,max:120,step:1,unit:\"ch\",description:\"Max measure (line length) of the body text, in characters.\"},highlightLeaders:{title:\"Leader Highlights\",type:ControlType.Boolean,defaultValue:true,description:\"Highlight leader names inside the summary and link them to their profiles.\"},highlightCompanies:{title:\"Company Highlights\",type:ControlType.Boolean,defaultValue:true,description:\"Highlight related company names inside the summary and link them to their profiles.\"},highlightDates:{title:\"Date Highlights\",type:ControlType.Boolean,defaultValue:true,description:\"Highlight dates in the summary as a soft chip with a calendar icon (not linked).\"},highlightMetrics:{title:\"Metric Highlights\",type:ControlType.Enum,defaultValue:\"trend\",options:[\"off\",\"plain\",\"trend\"],optionTitles:[\"Off\",\"Neutral\",\"Trend colors\"],displaySegmentedControl:true,description:\"Highlight money amounts and percentages. Trend colors reads the surrounding wording (grew, fell, …) and colours the chip up/down with a triangle.\"},highlightTitleMetrics:{title:\"Title Metrics\",type:ControlType.Boolean,defaultValue:false,description:\"Also highlight money amounts and percentages inside the headline (uses the Metric Highlights style; neutral when that is Off).\"},highlightKeywords:{title:\"Keyword Highlights\",type:ControlType.Boolean,defaultValue:true,description:\"Emphasize financial terms (EBITDA, revenue, …) with a subtle dotted underline.\"},keywordList:{title:\"Keywords\",type:ControlType.String,displayTextArea:true,defaultValue:\"comparable operating profit margin\\nadjusted operating profit\\ncomparable operating profit\\noperating profit margin\\noperating profit\\norganic revenue growth\\nrevenue growth\\nadjusted EBITA\\nEBITDA\\nEBITA\\nEBIT\\nnet sales\\nnet debt\\norder book\\norders received\\nearnings per share\\nnet profit\\ngross margin\\ncash flow\\nrevenue\\nguidance\",hidden:p=>!p.highlightKeywords,description:\"One term per line or comma-separated. List order = match priority: put longer terms first ('adjusted operating profit' before 'operating profit') so they win the overlap.\"},highlightScope:{title:\"Highlight Scope\",type:ControlType.Enum,defaultValue:\"smart\",options:[\"smart\",\"first\",\"all\"],optionTitles:[\"Smart\",\"First mention\",\"Every mention\"],displaySegmentedControl:true,hidden:p=>!p.highlightLeaders&&!p.highlightCompanies,description:\"Smart: chip on the first mention of each person/company, quiet underline link on repeats. Or chip only the first mention, or chip every mention.\"},highlightLeaderAvatars:{title:\"Leader Avatars\",type:ControlType.Boolean,defaultValue:true,hidden:p=>!p.highlightLeaders,description:\"Show a mini avatar (or initials) inside first-mention leader chips.\"},highlightCompanyAvatars:{title:\"Company Logos\",type:ControlType.Boolean,defaultValue:true,hidden:p=>!p.highlightCompanies,description:\"Show a mini logo (or initials) inside first-mention company chips.\"},highlightNowrap:{title:\"Keep Chips Whole\",type:ControlType.Boolean,defaultValue:true,hidden:p=>!p.highlightLeaders&&!p.highlightCompanies&&!p.highlightDates&&p.highlightMetrics===\"off\",description:\"Prevent a chip from splitting across lines — the whole chip moves to the next line instead of orphaning the avatar.\"},highlightChipBg:{title:\"Chip Background\",type:ControlType.Boolean,defaultValue:false,enabledTitle:\"On\",disabledTitle:\"Off\",hidden:p=>!p.highlightLeaders&&!p.highlightCompanies&&!p.highlightDates&&p.highlightMetrics===\"off\",description:\"Off removes the pill/background fills — highlights render as plain emphasized text while keeping avatars, icons, links and trend colours.\"},linkedHover:{title:\"Linked Hover\",type:ControlType.Boolean,defaultValue:true,hidden:p=>!p.highlightLeaders&&!p.highlightCompanies,description:\"Hovering an in-text name cross-highlights its follow chip below, and vice versa.\"},linkedEffect:{title:\"Hover Effect\",type:ControlType.Enum,defaultValue:\"ring\",options:[\"ring\",\"pulse\",\"shimmer\"],optionTitles:[\"Ring\",\"Pulse\",\"Shimmer\"],displaySegmentedControl:true,hidden:p=>!p.highlightLeaders&&!p.highlightCompanies||!p.linkedHover,description:\"Ring: static ring + underline. Pulse: one-shot ripple that settles into the ring. Shimmer: one light sweep, then the ring. None of them loop.\"},highlightCustom:{title:\"Highlight Colors\",type:ControlType.Boolean,defaultValue:false,enabledTitle:\"Custom\",disabledTitle:\"Theme\",hidden:p=>!p.highlightLeaders&&!p.highlightCompanies,description:\"Theme picks a matching gradient automatically; Custom exposes the colors below.\"},highlightFrom:{title:\"Gradient From\",type:ControlType.Color,defaultValue:\"#C9B8FF\",hidden:p=>!p.highlightLeaders&&!p.highlightCompanies||!p.highlightCustom},highlightTo:{title:\"Gradient To\",type:ControlType.Color,defaultValue:\"#F0B7F6\",hidden:p=>!p.highlightLeaders&&!p.highlightCompanies||!p.highlightCustom},highlightText:{title:\"Highlight Text\",type:ControlType.Color,defaultValue:\"#241447\",hidden:p=>!p.highlightLeaders&&!p.highlightCompanies||!p.highlightCustom},timeDisplay:{title:\"Timestamp\",type:ControlType.Enum,defaultValue:\"both\",options:[\"badge\",\"relative\",\"both\"],optionTitles:[\"Badge only\",\"Time ago\",\"Both\"],description:\"Show the freshness badge, the relative time (e.g. 3h ago), or both.\"},freshLabel:{title:\"Today Badge\",type:ControlType.String,defaultValue:\"Today\",description:\"Badge shown on items published today.\"},showFollow:{title:\"Show Follow\",type:ControlType.Boolean,defaultValue:true,description:\"Show related leaders to follow and a company follow button in the expanded card.\"},followLabel:{title:\"Leaders Label\",type:ControlType.String,defaultValue:\"Leaders to follow\"},followVerb:{title:\"Follow Verb\",type:ControlType.String,defaultValue:\"Follow\",description:\"Prefixes the company name, e.g. “Follow Digia Oyj”.\"},showMore:{title:\"Show More Link\",type:ControlType.Boolean,defaultValue:true,description:\"Footer link driven by last7DaysCount in the feed. Hidden automatically when the count is missing or zero.\"},moreText:{title:\"More Action\",type:ControlType.String,defaultValue:\"See more\",hidden:p=>!p.showMore,description:\"The clickable line — lead with a verb. Use {count} to place the number inside it; the chip already shows the count.\"},moreSubText:{title:\"More Subtext\",type:ControlType.String,defaultValue:\"{count} signals in the last 7 days\",hidden:p=>!p.showMore,description:\"Quiet context line under the action. Leave empty for a single line.\"},moreFont:{title:\"More Font\",type:ControlType.Font,defaultValue:{fontFamily:\"DM Sans\",fontWeight:600,fontStyle:\"normal\"},hidden:p=>!p.showMore},moreFontSize:{title:\"More Size\",type:ControlType.Number,defaultValue:13.5,min:10,max:24,step:.5,hidden:p=>!p.showMore},moreUseTheme:{title:\"More Colors\",type:ControlType.Boolean,defaultValue:true,enabledTitle:\"Theme\",disabledTitle:\"Custom\",hidden:p=>!p.showMore,description:\"Theme tints the tile from the active card colour; Custom exposes the colours below.\"},moreBg:{title:\"More Background\",type:ControlType.Color,defaultValue:\"#F2F2F0\",hidden:p=>!p.showMore||p.moreUseTheme},moreBgHover:{title:\"More Bg Hover\",type:ControlType.Color,defaultValue:\"#E7E8BB\",hidden:p=>!p.showMore||p.moreUseTheme},moreTextColor:{title:\"More Text Color\",type:ControlType.Color,defaultValue:\"#15140f\",hidden:p=>!p.showMore||p.moreUseTheme},moreCountBg:{title:\"Count Background\",type:ControlType.Color,defaultValue:\"#3E5234\",hidden:p=>!p.showMore||p.moreUseTheme},moreCountColor:{title:\"Count Text\",type:ControlType.Color,defaultValue:\"#ffffff\",hidden:p=>!p.showMore||p.moreUseTheme},moreLink:{title:\"More Link\",type:ControlType.Link,defaultValue:\"https://platform.listeds.com/?next=%2Fapp%2Fcompanies%2Fsignals\",hidden:p=>!p.showMore},moreNewTab:{title:\"More New Tab\",type:ControlType.Boolean,defaultValue:true,enabledTitle:\"New Tab\",disabledTitle:\"Same Tab\",hidden:p=>!p.showMore},emptyText:{title:\"Empty Text\",type:ControlType.String,defaultValue:\"No updates right now.\"},showCta:{title:\"Show CTA\",type:ControlType.Boolean,defaultValue:false},ctaText:{title:\"CTA Text\",type:ControlType.String,defaultValue:\"Get full access\"},ctaLink:{title:\"CTA Link\",type:ControlType.Link},ctaNewTab:{title:\"CTA New Tab\",type:ControlType.Boolean,defaultValue:true,enabledTitle:\"New Tab\",disabledTitle:\"Same Tab\"},limit:{title:\"Limit\",type:ControlType.Number,defaultValue:2,min:1,max:12,step:1}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"LatestUpdatesLeadStack\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./QuickSignalChanges.map"],"mappings":"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"}